Coder Social home page Coder Social logo

dev-tools's Introduction

Wrye Bash

Wrye Bash CI License: GPL v3 Translation status

About

Wrye Bash is a mod management utility for games based on Bethesda's Creation Engine, with a rich set of features. This is a fork of the Wrye Bash related code from the SVN 3177 trunk revision. We are in the process of refactoring the code to eventually support more games, offering the same feature set for all of them. Please see our Contributing.md if interested in contributing.

Supported Games

Here is a list of supported games with the minimal patch version that Bash was tested on (previous versions or latest versions may or may not work):

  • Enderal (patch 1.6.4.0)
  • Enderal: Special Edition (patch 2.0.12.4)
  • Fallout 3 (patch 1.7.0.3)
  • Fallout 4 (patch 1.10.163.0)
  • Fallout 4 VR (patch 1.2.72.0)
  • Fallout New Vegas (patch 1.4.0.525)
  • Morrowind (very early support, patch 1.6.1820.0)
  • Nehrim (patch 2.0.2.4)
  • Oblivion (patch 1.2.0.416)
  • Skyrim (patch 1.9.36.0)
  • Skyrim Special Edition (patch 1.6.1130.0)
  • Skyrim VR (patch 1.4.15.0)
  • Starfield (patch 1.7.23.0)

Download

Windows

Linux

Docs are included in the download, but we are also setting them up online here.

Installation

  • Short version: just use the installer, and install everything to their default locations.
  • Long version: see the General Readme for information, and the Advanced Readme for even more details.

To run Wrye Bash from the latest dev code (download from here) you need:

  • A game to manage from the supported games.
  • Python 3.12 64-bit (latest 3.12 is recommended)

NB: the 64-bit version is required. 32-bit operating systems are no longer supported.

Once you have those, install the required packages by running:

py -3 -m pip install -r requirements.txt

Note: you will have to use a more specific version for py -3 if you have multiple versions of Python 3 installed.

Refer to the readmes linked above for detailed instructions. In short:

  1. Install one of the supported games (Oblivion, Skyrim, Fallout).
  2. Install Python and plugins above.
  3. Extract the downloaded Wrye Bash archive into your game folder.
  4. Run Wrye Bash by double-clicking "Wrye Bash Launcher.pyw" in the new Mopy folder.

WINE

Since 306, Wrye Bash runs on WINE - with some hiccups. Please see our wiki article for a detailed guide.

Relevant issue: #240

Questions ? Feedback ?

We are currently monitoring this thread at the AFK Mods forum and the Wrye Bash Discord. Please be sure to ask there first before reporting an issue here. If asking for help please provide the info detailed in our Reporting a bug wiki page. In particular, it is essential you produce a bashbugdump.log.

Latest betas

In the second post of the AFK Mods thread, as well as in the #wip-builds channel on Discord, there are links to the latest python and standalone (exe) builds. Be sure to check those out for bleeding edge bugfixes and enhancements. Feedback appreciated!

Contributing

Please see our dedicated Contributing.md document for information on how to contribute.

Translations for Wrye Bash are done through Weblate. Please ask on our Discord if you have questions regarding weblate and translations.

Main Branches

  • dev: The main development branch - approved commits end up here. Do not directly push to this branch - push to your branches and contact a maintainer in the relevant issue.
  • master: The production branch, contains stable releases. Use it only as reference.
  • nightly: Bleeding edge branch. Commits land here for testing.

dev-tools's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

clayne

dev-tools's Issues

Clean Up Repository

This repository was created, with a whole bunch of branches, from the wrye-bash-refactoring repository. Most of these branches are probably identical, so should be pruned.

Fallout 4 Threads and Nexus pages

Once/as we do an official release with Fallout 4 support, we'll need to update the scripts a bit to generate those posts as well. It looks like all that will be needed is getting the information needed to fill out the _Game parameters in scripts\globals.py

Clean Up Repository

This repository was created, with a whole bunch of branches, from the wrye-bash-refactoring repository. Most of these branches are probably identical, so should be pruned.

Ini file for the scripts

In the laudable tradition of Bash I suggest we have a default ini which contains

editor_path=C:\program Files\notepad++\notepad++.exe
skyrim_latest_thread=897896708
skyrim_prev_thread=876876869
oblivion_latest_thread=7777
oblivion_prev_thread=6666
# etc

And other such options for easy editing - those options would be awkward to pass as arguments to the scripts. I would appreciate someone writing (and committing in a branch) a kickoff module for reading this ini. The options would be overridden in a user ini and read from the default ONLY if the user hasn't overridden them.

The more I work with the scripts the more an ini such as this becomes a necessity - that's why I tag this bug.

Offline flag

Most of the scripts should work offline (all apart the changelogs/second posts)

Common changelog for all games

So instead of having special switches to generate changelogs for oblivion, skyrim etc have a common script that prepends [Oblivion], etc in the bug description (if not already there)

Move generate_changelog to main repo?

Since the py3 upgrade, this is now the only remaining script here. It feels weird having this script, which is central to releases, sitting around in some random repo, while everything else a developer needs to build and create a release is in the main repo.
Moving it to the main repo would also go well with our 'clone one repo and you're ready' workflow.

Paging @wrye-bash/bashers for discussion

Update links to point at git

All the meta-data needs to be updated to point at the GitHub site, rather than the old SourceForge repository

So from what I see we have:

  • Update links in Forum Starter post for Skyrim
  • Update links in Forum Starter post for Oblivion
  • Update links in Second Post templates (will be handled by script to generate second post)
  • Update links in the Nexus description pages

Standardize the changelog/issues format

We should agree on the changelog and issues display format and automate their creation for the various text formats we use

  • Nexus, First post, second post (issues open/closed) - bbcode
  • Version history - html
  • master changelog - markdown
  • release changelog - markdown

Discussion in the form of patches to scripts/html.py and scripts/generate_changelog.py

For a variety of formats see the first posts on the forums - in all:

[Bug enhancement ?][issue number ?][Game ?] Title [assignee]

Extend the scripts (changelog, automatic version history, second post etc)

@lojack5 I managed to write a changelog thingy which does not do much but it's a start: https://github.com/wrye-bash/meta/tree/utumno-changelog/SecondPosts. Output (edit 2014.03.28):

<h2>304.4 [2014/03/28] ['Various community members']</h2>
<ul>
    <li>Optimize PNGs [Metallicow]</li>
    <li>Remove the auto-updater [lojack5]</li>
    <li>Skip .bsl files for BAIN [lojack5]</li>
    <li>BOSSv3 support, installer and readme updates [WrinklyNinja]</li>
    <li>Installer Improvements [WrinklyNinja]</li>
    <li>Installer MSVC 2013 Redist Support [WrinklyNinja]</li>
    <li>Missing context menu items [WrinklyNinja]</li>
    <li>Show BSA Conflicts undocumented [WrinklyNinja]</li>
</ul>

I broke your code in modules to reuse it

  • the github_wrapper module is fine, maybe rethinking skip_labels parameters - could be the labels we are interested in -> we need a builder for issue lists, see code comments in getIssues()
  • the html module is fine too I think - maybe rename to formatting ?
  • the globals module has our wrye-bash/wrye-bash specific info and wraps the github for our repo - I marked its functions as _private (so subject to change)
  • if we go down that road we will need a templates/ subdir (to put stuff like generate_second_posts_lines.txt and .usr)
  • I am sure I did unpythonisms (and I miss toString())

What you say in all ?

(that's 305+ really)

EDIT:
These steps from the release guide(https://github.com/wrye-bash/wrye-bash/wiki/%5Bgithub%5D-Making-A-Release):

  • Update Wrye Bash Version History.html with this change log.
  • Update the same file in the Online Readme
  • Update the Skyrim/Oblivion/etc first posts with the new change log and version in the meta repository.
  • Update the Skyrim/Oblivion/etc Nexus Description page templates in meta with the new change log and version.
  • master commit message / release changelog --> that's the generate_cahngelog.writeChangelogBBcode() method

need automation.

Also

  • CLI Parser module

One thread starter

Bethesda forums are going down - so will go down the thread starter script for each subforum - keep the Oblivion one.

Do we need this repo ?

Wanted to push the editor files I am ripping from wrye-Bash somewhere and before I open a branch here (and make dirs like editors/eclipse-pydev, editors/pycharm etc) I want us to discuss a bit what's to be in here - and do we really need this repo ? Or could we just make a dev-tools folder in the meta repo and be done with it ? Not sure, but I'd say merge those two and be done with it - but I might be missing something

Scripts enhancements

  • internal API for issues needs revamp - problem is how much will go to github_wrapper and how much to html - but as it is it is bad, bad, bad (try generating master changelog)
  • cache needs rewrite - I had seen somewhere try except KeyError but lost the page. Anyway (apart from pythonisms I'd like to add) there must be an exhaustive search in existing items to see if we can filter instead of hitting github - but I want to avoid the ifelseheimer - I need some OO trick there
  • nexus pages must be autogenerated too issue wrye-bash/meta#14
  • get all labels and throw if they are not up to date they won't change this often (edit the main repo Labels wiki too)

Assigning to me but if anyone (Lo ?) wants to lend a patch...

Marking this bug btw just to bump the priority (in this repo makes sense to label bug high priority items and enhancement lower ones)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.