Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collaborators #400

Open
Utumno opened this issue Dec 3, 2017 · 549 comments
Open

Collaborators #400

Utumno opened this issue Dec 3, 2017 · 549 comments
Labels
C-discussion Category: Discussion (among developers trying to find consensus on a design etc.)

Comments

@Utumno
Copy link
Member

Utumno commented Dec 3, 2017

Opening this up to try and centralize the various bits of info that are spread in forums and github repos/commit comments/issues - kind of a 308 wip thread - technical thread. Messages may be edited or deleted - this thread is meant to have condensed info on ongoing refactoring and bugfixing.

@Utumno
Copy link
Member Author

Utumno commented Dec 29, 2017

@nycz I rebased your top branch on current dev: https://github.com/wrye-bash/wrye-bash/compare/nycz-wx-begone-DEV. I would like the linux stable support in, as well as the iewin work. Please have a look and let me know when we could start. I need to refactor balt a bit too and this will cause nasty conflicts with your branch, so this is rather urgent. An immediate refactoring is change the size keyword argument of balt functions/'constructors' to dims. Could you do this (should be easy on PyCharm) and rebase your branch onto that commit ? Don't forget to count size occurrences chopped of ;)

@BeermotorWB
Copy link
Collaborator

BeermotorWB commented Dec 30, 2017

From the AFK Mods thread - topics noted as "will revisit":

Fallout 4 BA2 localization strings handling:
Nvidia Fog Fix:
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=170367
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&page=40&tab=comments#comment-170687

Related: BSA/BA2 backslashes:
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=170405

Locale settings raising bugcheck when wxPython 3.02 is used:
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=167933

Save handling quirks for SKSE cosaves:
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=168516
#236
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=170271
Also: #338

Skip Bethesda Content revisit (most likely for 309 cycle but pick-up if we get time):
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&page=31&tab=comments#comment-169587
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&page=31&tab=comments#comment-169596

Extended Profiles support (WarmFrost85):
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=171019
Related: #250

FOMOD installer handler -> converter:
#380
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&page=45&tab=comments#comment-171040
https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=171043
https://www.afkmods.com/index.php?/topic/5114-wrye-bash-wish-list

@Utumno
Copy link
Member Author

Utumno commented Dec 31, 2017

@wrye-bash/devs @Sharlikran - the fallout3/nv branch is once again out of sync with the dev branch - needs be rebased onto dev and RecordHeader and canEditMasters changes be applied there (in clear commits we will later squash). I do hope this is the last time we have to do this, as I would like to see it merged for 307 proper. Code quality in there is inferior to main tree - warnings count increases by couple hundreds, long lines and ravioli code (I try to deraviolize in some commits in there the patcher but more work to do). Plus I personally can't offer any support and as it's well known we do not offer all the functionality @valda 's fork offers. However it's two major games, the code is there and since we have to refactor game handling and eventually the patcher, we need to merge. Remaining issues, forum reports as detailed in posts above (the bug ones not design/feature ones) and merging the fo3 branch is what we need to concentrate to.

Branch: https://github.com/wrye-bash/wrye-bash/commits/feature-sharlikran-valda-fallout

@Sharlikran I think this is for you :)

Please reply to me at #150

@Sharlikran
Copy link
Contributor

Sorry I have permanently retired from anything computer related to work on my marriage and care for my mom in her last days.

@Utumno
Copy link
Member Author

Utumno commented Apr 19, 2018

@Infernio
Copy link
Member

So, the 'resizing status bar icons' part of this came up again. We no longer crash, but resizing icons does not work correctly.
However, as far as I can tell, there is no way to actually change status bar height in wxPython.
This question mentions using SetMinHeight: https://stackoverflow.com/questions/24716600/changing-height-of-status-bar-in-wxpython-on-mac
But if I try that, I get something that looks like this:

BrokenStatusBar

I've asked on Discord if this has ever worked, in any previous version, and no one knew of any... maybe it worked due to some undocumented behavior in an ancient wx version?
I don't understand why SetMinHeight doesn't work though, that looks a lot like it's intended to change status bar height...

@Utumno
Copy link
Member Author

Utumno commented Oct 22, 2019

The StatusBar mixin is a hack - IIRC it does not work on phoenix at all - maybe we should bug the wx guys directly for this

@lojack5
Copy link
Member

lojack5 commented Nov 9, 2019

@Utumno / @Infernio (since you two seem to be the most active) 2 questions for you:

  1. Do you guys have a place setup for random questions other than forums? If not I'd suggest setting up a gitter for this repo, could be pretty useful for one off questions and idle chat, especially for the more technical minded (ie: contributors).

Main reason I ask this is I couldn't find a good related open issue to ask the following question, and forum posts feel like they mix users' posts with dev talk.

  1. Said related question: I have a small fix for the startup code, to fix an edge case (that I've run into while tinkering) where the exception that causes startup to fail gets hidden by an exception triggered in the code to display the error. What's your current policy on minor fixes like this? Push to nightly? Make a branch and ping one of you two? Make a fork and open a PR (seems like this one is not the right answer for you guys).

I'm not really getting back into active development, just want somethings to toy around with to scratch that coding itch, without much pressure. Feel free to delete this comment after you answer my Q's.

@Utumno
Copy link
Member Author

Utumno commented Nov 9, 2019

Here is the place :)

Lo you have all the rights in the world, hash up a branch over dev - usually Infernio handles nightly but I will too (I messed a regex up) and I can cherry pick. You can in theory push to nightly but needs some little coordination

@GandaG
Copy link
Member

GandaG commented Nov 9, 2019

one off questions and idle chat

There's also a dev chat on discord, even though Utumno hates it :P But any actual discussion should stay on github

@Utumno
Copy link
Member Author

Utumno commented Nov 9, 2019

Let's use this issue for now and will have a look at gitter

lojack5 referenced this issue Nov 9, 2019
If an exception occurs when importing `bolt`, the code used to give a
bugdump errors when it tries to access `bolt.scandir`, resulting in
the following traceback, which hides the original traceback.

Launching Wrye Bash 307 in debug mode
fail bash\bolt.py
Traceback (most recent call last):
  File "Wrye Bash Launcher.pyw", line 89, in <module>
    bash.main(opts)
  File "bash\bash.py", line 181, in main
    _import_bolt(opts)
  File "bash\bash.py", line 57, in _import_bolt
    msg = u'\n'.join([dump_environment(), u'', u'Unable to load bolt:',
  File "bash\bash.py", line 162, in dump_environment
    if bolt.scandir is not None:
AttributeError: 'NoneType' object has no attribute 'scandir'
Infernio referenced this issue Dec 15, 2019
… EEE

 - ugly but can't use MI

 EEE SSS     SpecialPatcher(CBash_Patcher):

EEE FIXME:

@@ -1301,3 +1301,3 @@ def scan(self,modFile,record,bashTags):
                 if u'R.ChangeSpells' in tags:
-                    spells = curSpells
+                    spells = curSpells # FIXME noop
                 elif u'R.AddSpells' in tags:

Revisit isActive/isEnabled for this patcher. allowUnloaded == False??

SpecialPatcher erosion

only CBash patchers use scan_more - RacePatcher just used those overrides??

More initDataPruning - tweaks not done yet SSS RACE
@Infernio Infernio added this to the 308 milestone Jan 23, 2020
@Infernio
Copy link
Member

Infernio commented Feb 25, 2020

Posting an archive of images and documentation from this post from the old forums here so it doesn't get lost when they shut down in March:
discrepancies.zip

This is about CBash/PBash discrepancies, as the name implies :)
SVN issue: https://sourceforge.net/p/oblivionworks/bugs/131/

@leandor
Copy link
Contributor

leandor commented Apr 18, 2020

Following from Utumno comment at #380 regarding my question of where to put the rest of the issues/requests I wanted to report, I'll paste in here my notes of all the things I thought during these last 5 months using Bash for SSE.

Raw unfiltered notes :)

All these reported issues apply to v307.202003151850, where it matters.

General issues:

  • (ENHACEMENT) Allow extra instances to open, one per-game/installation.
    You could previously open one bash for each game installation separatedly, but now that option seem to have been removed.
    I often used to open Skyrim's and Oblivion's ones at the same time, now I can't... have to close one before I can open the other. I assume you're using some kind of MUTEX trick or something like that, in that case the name of the MUTEX could be made in such way that you could HASH game name and installation directory as part if the uniqueness check.

UI related

  • (BUG?) Main Window hides behind the next top level window in focus order.
    The UI often (fairly commonly) flashes and then the main window loses focus at the end of busy operations and then it hides behind next top level app window in focus order and doesn't come back on its own -> have to alt-tab to refocus.
    Related to operations that trigger progress report, I think.
    Sometimes it refocus correctly, others it just stays behind flashing in the task bar.

  • (BUG?) Stack dump when click on busy UI happens at the wrong time.
    If I click on the UI (try to resize, or move, or change pane, for example) while it's busy (it often happens that the UI is busy but there's no visible sign of that state,) sometimes I get a stack dump related to failure to mouse capture, which leaves the UI completely unresponsive.
    It's easily fixed by alt-tabbing away and then back.
    It almost always happens after finishing several downloads inside Bash Installers and on focus while Bash is trying to refresh them, and I'm trying to do something with the UI.
    It's maybe related to quickly doing an alt-tab out from Bash while it's in that busy state, but I may be wrong in that.

  • (FEATURE REQUEST) Color highlighting in the mods pane
    In the Mods pane: Highlight with background color and/or bold font other mods that have the selected plugin as master (helps in finding out with mods would be affected if you decide to remove a given mod.)
    Also, highlight with a different color the masters of such plugin.
    And highlight with very visible background color delinquent masters (i.e. mater mods that are below any given mod.)

For mod list:

  • (ENHACEMENT) Show the ESL mod index with FE:### as it was before?
    I could've sworn it was already implemented sometime ago, I swear I saw the mod index show the correct identification, but latest versions (i.e. 307.20200315 atm of writing this...) seem to only have a plain linear mod index irrespective of ESL status.
    Thing is when debugging and diagnosing problems in logs and FORMIDs in-game, they show the actual real mod index and that doesn't match Bash's indexes anymore, which makes pointing out which mod is responsible for something quite a pain.
    I.e. if I see a broken object in game and console click on it, the game might show me a form id 4bxxxxxx, but that 4b is no longer directly mappable to a MOD index shown in bash, because that's the index of a mod in the list of ESPs that are not ESLs... as the ESLs are listed in a separated list, while BASH shows all of them mixed together.

  • (FEATURE REQUEST) Add shortcut way to open the plugins.txt file and/or also the %LOCALAPPDATA%\<GAME> folder for games where it applies.

  • (FEATURE REQUEST) xEDIT preset generator from selected mods?
    I.e. call xEDIT with a preset list of mods, or save a named profile given a pre-selected list of mods.
    Depends on adding an entry to the Plugins.settings file in %LOCALAPPDATA%\<GAME>
    It'd be helpful in running xEdit scripts that require specific mods to be selected before hand (i.e. Joy of Perspective.)
    Also, you normally want to run those scripts just after installing a (group of) mod(s), and at that time they are easily visible at the end of the load order in bash, so you could take the opportunity to select them and save a profile, then run LOOT and then launch SSE with the saved profile not having to require searching and selecting them again.
    The profiles are just in INI format and stored inside the mentioned file located in the %LOCALAPPDATA%\<GAME> folder, they hold a VALUE=<QUOTED LIST OF MODS>, where each mod in the list is quoted with double-quotes (") and separated by comma.

  • (FEATURE REQUEST) WARN when a mod that was ESL is updated with new ESP that isn't ESL?
    And vice-versa too?

    Maybe this is something that has to be shown at SAVE's masters level too!
    That action can cause extensive game-breakage... specific use case for mods where the user ESLified and then and update is released, or when there are two different packages for a mod and user forgets to install the correct one, so the update would require extra-care in handling.
    In this case it might be also useful but perhaps out of scope to highlight any other mods that have the affected ESP as master, as those will also require massaging.

Usability requests:

  • (FEATURE REQUEST) Installers tab: Sort newly added files at the end of a Marker
    When using Move To for some packages while having selected a Marker item in their midst, change the behaviour to sort the selected packages at the end of the list of all files contained inside that marker (similar to Move To Last but restricted to operate inside a Marker.)
    That would help tremendously with managing big install pools.

  • (FEATURE REQUEST) Installers tab: Always allow Has Extra Directories
    Permit enabling Has Extra Directories when the package is grayed out (sometimes you ONLY want those extra directories, and you're forced to put inside a dummy ESP so the package is recognized. This would perhaps also solve the unrecognized FOMOD installer issue.)

  • (FEATURE REQUEST) Installers tab: More permissive stance on DLL plugins (On user's choice, perhaps)
    Allow DLL plugins in subdirectories other than SKSE -> i.e. NetScriptFramework plugins.
    Currently they are completely ignored and with no recourse to enable them, leaving only manual installation for them.

  • (FEATURE REQUEST) Installers tab: More permissive stance for some EXE tools required for modding (Again, on user's choice, ideally)
    Legalize (i.e. permit copying EXEs) modding tools that install inside Data directory -> CalienteTools\BodySlide\ for BodySlide, tools\GenerateFNIS_for_{Modders|Users}\ for FNIS, etc.
    They are widely used and required for mayor popular mods. Updating them is always a pain!
    Also the new Nemesis engine is a newcomer but I expect it to become quite popular whenever it's out of beta and finally added to the Nexus site.
    Maybe store a CRC hash table of known released EXEs? I recon it could prove difficult to maintain, but in the end, IMHO it should be left at the user's choice, perhaps only can be enabled by editing the bash.ini, and having the user type a keyword that's only found in the BASH docs, where the security implications and disclaimers can be specified.

  • (FEATURE REQUEST) Installers Packages: Accept .\Source\ as valid directory inside packages (it's automatically skipped atm.)
    As it seems many modders have adopted Data\Source\Scripts as target for PSC files instead of Data\Scripts\Source.
    Perhaps, optionally, auto-redirect it so all sorces end up in the same folder if it's even feasible?

  • (BUG?) Installers tab: Overzealous scanning of non-targettable folders
    Data scanning often is overzealous when it scans the Data\ folder and can find archives (7z, zip, etc) as part of the Data scan inside Data\Bash Data\Mod Data\Hidden too and then also calculates their CRC which makes some refresh operations take longer than normal. Thing that puzzles me is that it doesn't always happen in ALL scans.
    Maybe allow to add ignores in BASH.ini for folders inside data same as you can ignore folders inside Bash Installers? And include Bash Data as default there?

Tweak Settings:

  • (FEATURE REQUEST) Colors for BAIN items
    Allow to change the default background colors for certain items, like Markers or Projects, so they highlight more (i.e. I'd want to give them a darker color as background so I can find them easier!)

  • (FEATURE REQUEST) Allow to have bash.ini outside of the Mopy folder, i.e. like at the root of the game's root folder, or, equivalently or alternatively in the parent folder to Mopy (which I think could be the best option for implementing this quickly,) or at least be able to specify it via command line arguments when you launch Bash.
    As it is now, many clones of Bash sources are required, one for each game so we can have different settings for each one, when the only practical difference is the bash INI folder settings (which is required to specify Bash Installers directory in cases where the mod repository is in a different drive, for example... thus no way of exploiting any relative paths to reach it.)

  • (FEATURE REQUEST) Provide substitution values for things like ${GAME} (it's the only thing that comes to mind as helpful atm., but perhaps there are others... not sure... perhaps folder variables, like ${ROOT}, ${SAVES}, etc.) to be used inside BASH.ini to help define common folder layout for all games/installations, and thus being able to manage more than one game with a single Bash clone.

Screenshots:

  • (FEATURE REQUEST) Allow for extra folders for scanning screenshots, i.e. Game's own Screenshots, Steam's screenshot gallery, stored per-character at the Saves\ maybe related to profile active, and in addition, if possible, enabling support for subfolders inside each one of those (either visible in the UI or silently scanned for pics.)

Character Save/Profile Management:

  • (BUG? / ENHACEMENT?) What triggers Bash to copy the plugins.txt to each new save profile? And when does it update it with changes?
    I've had issues with creating a profile for a new character and when switching profiles, my active load order would get all screwed... so I started copying the plugins.txt file to new profiles and keeping it updated on existing ones all by hand from then onward.

Extra Stupid requests, one can dream, right? :)

  • (FEATURE REQUEST) ControlMap handling/support?
    Add ControlMap_Custom.txt and/or Data\interface\Controls\PC\controlmap.txt patching/tracking/editing support.
    Not sure on how both files relate at all, I assume one is generated from the other.
    Data\interface\Controls\PC\controlmap.txt is a text file and I know for a fact that you can edit it and have stuff added/changed to suit your needs, while ControlMap_Custom.txt (which is located in the EXE folder) is a binary file that I assume the game generates updates automatically, or else the presence of a controlmap.txt overrides the binary file.
    AFAIK, this applies to Skyrim, Skyrim SE, Fallout 4, and probably VR?.
    Some mods require changes made to that file and otherwise different mods are incompatibles with one another even if their change could be potentially entirely mergeable.
    Examples: AH Hotkeys requires patching a couple of entries in order for the auto-cast of spells to work.

  • (FEATURE REQUEST) PSC Script browser/manager TAB!
    Reason: for helping in debugging of mods, better navigation of scripts and perhaps even, optionally, recompilation of scripts? (i.e. automating the call to PapyrusCompiler, with that maybe as a secret functionality, i.e. must-be-enabled-first thing, for power users/modders)
    Could Apply to old games too that don't have PSC files (Oblivion, FO3, FONV, etc.) but with caveats/limitations (i.e. no recompilation, just browsing, or perhaps ability to dump/import script text in those cases.)

  • (FEATURE REQUEST) Log files browser/viewer TAB! (Papyrus, SKSE plugins, OBSE plugins, OB's ConScribe, Skyrim's ConSkribe, etc.)
    Again, reason: helping in debugging. Exact functionality to support besides than just browsing/easily locating/opening/looking for errors/etc., is left as 'to be determined' :)

New Bashed Patch Tweaks [for Skyrim SE only?]*

  • (for when it's possible implement, if record support is not there yet.)
  • New Joy of Perspective tweak -> Removes 1st Person models (path to NIFs) from ARMOR ADDON records (i.e. removes the entry.)
    Today an extra step in running a SSEEdit script is needed and generates an extra patch file.

  • Keyword tweaker?
    I.e. read from a CSV/TXT/JSON file a list of form IDs (MOD.esp:FORMID) that are valid targets for KWs and add/remove a given keyword (keyword is possibly to be located in a given master too) to/from them.
    Use Case -> Schlongs of Skyrim keywords SOS_Revealing and SOS_Concealing to be added to armors with the specific characteristics is the first thing that comes to mind.
    Could also help to apply nutrition keywords for Needs mods. Probably other usages.
    Avoids having to make a patch for each armor mod you want to support.
    Allow for BAIN installable CSV files targeted at some standard folder and so each mod can support their own keyword tweaks, then allow in the BP UI to select/ignore those files depending on active mods.

  • Form List Adder?
    Idem above, but this time add a FORMID to a FORM LIST, FORMID again should be (MOD.esp:FORMID) and FORM-LIST also should be (MOD.esp:FORMID) so you can populate a mod's FORM List with given IDs from other mods.
    Good for integration of mods into a provided framework.
    Should keep in mind that the FORMLIST could already have merged items in it from other mods and be pre-loaded into the BP with those before applying the tweak.
    Known uses: BOSSE FormID Lists for armor outfits used as sleeping/swiming/etc gear.


These are all my notes, in a somewhat easy to read format, I hope! 😕
Of course, feel free to completely ignore all of this, if it's sounds too stupid or outside the scope!

@Infernio
Copy link
Member

Infernio commented Apr 18, 2020

Adding some responses and links as I run through:

General issues:

  • Extra instances: Launching multiple WBs is still problematic because it doesn't properly isolate certain things (bash.ini, the Apps folder, I'm definitely forgetting something) - Profiles #250 is the solution here, as it is for many things :)

UI related:

  • Main Window hides: Yep, that's the 'focus bug'. Really nasty, showed up after we switched to wx3 and the progress dialog became native. We've tried really hard to fix it - but nothing yet.
  • Failure to capture mouse: I've only ever managed to get that traceback on wine, where it blows up the entire program, and so wrote it off as wine weirdness 🤔
  • Two-way master highlighting: Heard that one before - may have to be opt-in? Will open an issue

For mod list:

  • ESL mod index: 7d574f0 - I'll get around to fixing the O(n^2) one day, I swear :P
  • plugins.txt shortcut: Sounds easily doable, don't think it's worth the overhead of an issue
  • xEDIT preset generator: Sounds like it could do with some discussion, will open an issue
  • ESL/ESP warning: Unless I'm misunderstanding anything, this isn't actually a problem. What is a problem is if FormIDs that existed disappear (e.g. by compacting), but to find something like that is far beyond our current save reading capabilities, even in Oblivion

Usability requests:

  • Sort at end of master: Not sure I understand this one
  • Always allow Has Extra Directories: One of those 'would require refactoring BAIN' things, unfortunately
  • More permissive DLLs/EXEs: Will have to happen anyways (most games that aren't Bethesda's use nothing but DLLs for mods), will open an issue
  • Source/Scripts: I'm not going to support Bethesda's screwup :P - we can talk about redirecting them to the right location though
  • Overzealous scanning: Not sure I understand this one either

Tweak Settings:

Screenshots:

Character Save/Profile Management:

  • plugins.txt copy: An initial copy is made when you switch to a profile for the first time - after that, switching swaps the active one and the one from the save profile. Note that this doesn't refresh properly, you have to Alt-Tab to see the updated LO right now.

Extra Stupid requests, one can dream, right? :)

  • ControlMap handling/support?: Worth an issue, how to offer it seems especially questionable
  • Script Tab: inf-scripts-tab-poc - nothing more than a POC, the API I built there is terrible and a dead end.
  • 'Log files' tab: xSE Plugins Tab #456

New Bashed Patch Tweaks [for Skyrim SE only?]*:

  • All of these are doable (if unlikely to be used), but the patchers are still such a mess that we're not letting any new ones in right now - see Patchers Refactoring #312

@Infernio
Copy link
Member

Went and opened a bunch of issues from all the parts that I think sound interesting and would require more discussion.
Rest aren't worth the overhead of an issue (the bug reports, mostly - plus the 'open the LO files' enhancement), so feel free to discuss those further here.

@Utumno
Copy link
Member Author

Utumno commented Apr 18, 2020

Guys you re too fast for me :P

Re: one instance - this should have broken when daedalos switched it to wx.SingleInstanceChecker - before we used a lock file - that was per install - this seems a better behavior after all. But as Infernio said this is #250. However it is true that this sounds like a regression

Pushed a commit for Has extra Dirs -> 52402e6 - is that what you mean? Needs work but then squash to random BAIN fixups

@Infernio
Copy link
Member

It looks like you can give a mutex name to wx.SingleInstanceChecker: https://wxpython.org/Phoenix/docs/html/wx.SingleInstanceChecker.html
Problem then is early boot, again - I think we do the single instance check long before we even figure out what games we support, let alone which one we're launching.

@leandor
Copy link
Contributor

leandor commented Apr 18, 2020

As for #250, gonna read it carefully later!

Gonna provide clarification for the things you mentioned above:

  • Overzealous scanning: It means that sometimes (it's not entirely repeatable, sadly) when a full Data scan happens, for some reason, archives/packages in Bash Data\Mod Data\Hidden are getting picked up for that scan.
    I.e. in there goes all files that are "hidden" from the UI either in Installers or Mods tabs, so it often contains old packages removed from BAIN tab.
    The fact that the scan is picking those up for some reason, indicates me that a there's need for excluding those folders from the scan (i.e. the whole Data\Bash Data folder.)
    Is not a bug/issue per-se, it's just that when they are found and they are unknown (recently hidden) then a CRC is calculated for them, and that can potentially take some extra time, all for nothing, since they aren't even accessible while there.

  • Sort at end of master: is for handling markers and group of installers... I.e. those items you can create with funny names like == CLOTHING ==, == FIXES ==, etc.
    When you sort mods using Move To and target one of them, instead of sorting the selected mods sequentially from the lower index possible, find the last file inside that marker (i.e. the index of the next marker - 1) and sort the new mods there, instead of at the place where they'd have been placed in a normal Move To operation.

  • ESL/ESP warning: Yeah yeah, I know the big issue is when the actual formID inside the mod change... but I'm not saying we should detect those case, just warn up and bring in a signal when that transition happens... i.e. was ESL -> became normal ESP after an update, or vice-versa, as it could probably lead to potential big breaks and most people wouldn't realize this without a warning... it's just an extra way to be helpful :) Disableable of course (new-word :P)

Hope I haven't missed anything.

@Utumno
Copy link
Member Author

Utumno commented Feb 10, 2024

Seems yes - comes from bc1d743 a bit difficult to untangle that one
Will have a look at the diff_dir one

@Utumno
Copy link
Member Author

Utumno commented Feb 10, 2024

diff_dir in newest nightly added some loose ends from previous merge

@Utumno
Copy link
Member Author

Utumno commented Feb 16, 2024

ut-336-drop-table is nightly ready - some of it is already on nightly (that I believe is bug free), all of it looks like bba78b3...ut-336-drop-table. It all but finishes off #336 all of sudden (well actually the main commit is dated 1/1/22) but could use some more testing - in particular swapping Oblivion.esm (or not), save profiles and delete. If any of you are using git could you give it a run?

@sibir-ine
Copy link
Member

ut-336-drop-table crashes & throws the following on launch:

Traceback
Traceback (most recent call last):
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bash.py", line 426, in main
    _main(opts, wx_locale, wxver)
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bash.py", line 573, in _main
    frame = bapp.Init() # Link.Frame is set here !
            ^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\basher\__init__.py", line 4276, in Init
    self.InitData(progress)
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\basher\__init__.py", line 4302, in InitData
    bosh.modInfos = bosh.ModInfos()
                    ^^^^^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 2175, in __init__
    super().__init__(ModInfo)
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 1611, in __init__
    if do_refresh: self.refresh(**self._boot_refresh_args)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 2359, in refresh
    ldiff = self.refreshLoadOrder(forceRefresh=mods_changes or
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 2101, in _modinfos_cache_wrapper
    ldiff.affected |= self._refresh_mod_inis_and_strings()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 2439, in _refresh_mod_inis_and_strings
    k for k, v in self.items() if v.isMissingStrings(
                                  ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 973, in isMissingStrings
    bsa_infos = self._find_string_bsas(cached_ini_info)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\*****\Documents\GitHub\wrye-bash\Mopy\bash\bosh\__init__.py", line 939, in _find_string_bsas
    modInfos.get_bsa_lo(cached_ini_info=cached_ini_info,
    ^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_bsa_lo'

The source is 49b8f49.

@Utumno
Copy link
Member Author

Utumno commented Feb 24, 2024 via email

@Utumno
Copy link
Member Author

Utumno commented Mar 8, 2024

Aaand repushed ut-336-drop-table - the situation with the string bsas refresh needs a good dusting let me see what I can do.

@Infernio
Copy link
Member

Infernio commented Mar 8, 2024

I'm tackling #26. Early boot is crystallizing more and more. ini_files filed for divorce from bass/bush/env as it became apparent that it is vital to early boot (cough #679 cough).

Edit: don't mind the branch yet, I'm just paranoid about pushing commits :P
The commits there are still quite WIP. We'll see where it leads tomorrow.

@Utumno
Copy link
Member Author

Utumno commented Mar 16, 2024

I pushed some fixups to Oblivion.esm swapping (mostly ghosting related - introduced in 4dfa03e, that setGhost was needed). I also disallowed deactivating the master_esm (related to swapping as allowing "inactive" master esm complicated swapping even more).

@Infernio
Copy link
Member

I left 90b9f90 and 9364e3f out of my merge, since they still have TTT tags. If they are ready, feel free to just merge them @Utumno :)

@Utumno
Copy link
Member Author

Utumno commented Mar 23, 2024

Thanks Inf - will gonna have to merge a 336-table-prelude to dev and add table removal to nightly - if anything stands out there let me know. From the rest, if you can have a look at 90b9f90 (and 9364e3f) - turns out whole line comments would be parsed as settings - I patched it but looking at cb9de8b there might be other places to do the same and/or a better way?

@Infernio
Copy link
Member

Infernio commented Apr 8, 2024

@Utumno https://www.afkmods.com/index.php?/topic/4966-wrye-bash-all-games/&do=findComment&comment=190580 - You refactored empty dir cleanup semi-recently, right? Looks like a regression from that.

A reproducer, if I understand Arthmoor's post correctly, should just be a package like this:

textures
|- foobar
    |- test.dds

Which, when uninstalling, will leave behind an empty dir contained in an otherwise empty dir, and we try rmdiring them in the wrong order somehow.

@Utumno
Copy link
Member Author

Utumno commented May 31, 2024

I went ahead and merged the bsa changes (in particular ffff1af...eea41fa) - apart from the ! seems safe and fixes more bugs than (maybe) adds - actually the ! are for a new feature (Morrowind bsa lo) and pointing out existing limits in str detection refresh. I also merged in nightly the rest of the _game_lo refactoring (well half of it) that started in ff78cce - the latter's been in nightly for a while. It contains a rewrite of IniGameLo so it's again Morrowind testing. These changes would be what I would consider needed for an RC. It would be nice to include the remaining half of _game_lo refactoring but the first part must be included as it already started conflicting (per game overrides were moved out of _game_lo into GameInfo in bcf2c93).

In particular - if you use Bash for Morrowind please give a whirl to new nightly - build in https://github.com/wrye-bash/wrye-bash/actions/runs/9329992303

@lojack5
Copy link
Member

lojack5 commented Jun 5, 2024

Pushed a WIP/POC of replacing all those checkbox pngs with just a few SVG lojack-svgs. Take a look:

  • Passing in var(--varname) parameters maybe we can handle this better.
  • No customization of the checkbox colors yet
  • A few todos left still

@Infernio
Copy link
Member

Infernio commented Jun 5, 2024

Wow, that looks really good! I might find some time this week, in which case I'd love to try my hand at making a GUI for that (if you don't preempt me on it of course 😅).

@Utumno
Copy link
Member Author

Utumno commented Jun 5, 2024

Really nice Lo - it would be nice to have only svgs been read by the code - most of what pngs remain are used in the readme so are not loaded - remains this dreaded image/tools directory and image/games. Wow

I pushed some nit mainly addressing the TODOs on the exceptions you left and some random wrapping in f24a970

@lojack5
Copy link
Member

lojack5 commented Jun 5, 2024

I'd love to try my hand at making a GUI for that (if you don't preempt me on it of course 😅).

Go for it! I was thinking we maybe show a preview of all of the possible colored checkboxes with some mark (probably a check) in them in the GUI for customizing - for colorblind people to be able to see them all next to each other). Then this part is where we'll have to read in from settings.

I did notice that bass.settings isn't yet initialized when a good chunk of these get lazy constructed (it looks like all of the ones used in the installers tab at least). So untangling that to allow reading the color from settings might be tricky, haven't looked into that yet.

Really nice Lo - it would be nice to have only svgs been read by the code - most of what pngs remain are used in the readme so are not loaded - remains this dreaded image/tools directory and image/games. Wow

I pushed some nit mainly addressing the TODOs on the exceptions you left and some random wrapping in f24a970

Thanks :) Going through all the rest of the images (thankfully none of those require svg variables or combining svgs) and replacing those that are used in program is a goal. Hopefully online converters can handle all of those nicely.

Then more cleanup (maybe most of GuiImage can be gutted at that point?). I would like a better wand SVG for the wizard overlay, I basically just mocked this one up based on what I saw in the tiny 16x16 images we already had.

@Metallicow

This comment was marked as off-topic.

@Metallicow

This comment was marked as off-topic.

@wrye-bash wrye-bash deleted a comment from Metallicow Jun 7, 2024
@Utumno
Copy link
Member Author

Utumno commented Jul 8, 2024

I pushed a squashed version of ut-336-578-wip on nightly - I have fixed all bugs I could find but could use some more testing from someone else. Among others it contains a rewrite of pinned mods handling which should come handy in relation to the Starfield lo and ccc file lo handling - see #681 and #682 . The rest is some ongoing #336 and #353 refactoring (entangled with the lo changes) - in particular in renaming and copying operations that opens the way for the last part (in ut-lab) that removes the best part of the refactoring scaffolding from DataStore (new_info, add_info, delete_refresh and so on). This could also use some testing so could be left out - we are in RC state I'd say (minus the lo fixups mentioned and maybe some of the triage/high priority items from the project board)

Edit: I went ahead and moved most open issues in the 313 milestone to the 314 one (314 moved to 315). Feel free to move back and forth as needed. I also dusted up the project board 'triage' column - moved some to 'Lower priority recent'.

@Utumno
Copy link
Member Author

Utumno commented Jul 16, 2024

Thanks for the fixup @sibir-ine ! Meanwhile I have pushed some changes that address #682 - I think I 'pinned' it :P If this survives a nightly round then merging time - we should also include a squashed version of the svg changes by @lojack5 I think

@lojack5
Copy link
Member

lojack5 commented Jul 25, 2024

Sorry for the delay (phone issues and didn't want to remove authenticators while I waited for a new one). Yeah the SVG stuff is pretty good to go, only thing I could do is run them through an optimizer to cut down on a few lines. And maybe a nicer wizard overlay if anyone has ideas, not really an artist myself. The GUI for customizing is separate and can always be added later.

@Utumno
Copy link
Member Author

Utumno commented Jul 25, 2024

Thanks Lo - we can even add the opts later (and the wand) - I will squash-add the svg branch on my next nightly round (I am working on smoothing out the 336-578 branch for merging).

@Infernio
Copy link
Member

wxPython finally has a maintainer again 🚀

Sorry for my radio silence btw, I started playing FF14 and that has just eaten my free time 😅

@Utumno
Copy link
Member Author

Utumno commented Sep 12, 2024

Well Wrye Bash still lacks maintainers :P

@lojack5
Copy link
Member

lojack5 commented Sep 12, 2024

I've fully given up on my PR for wx type-hints ever being even looked at, even with new releases. I'll keep lurking here though ;)

@Utumno
Copy link
Member Author

Utumno commented Sep 12, 2024

I went ahead and merged some commits that seemed ok after a couple months - will merge more of it - if you have any time https://github.com/wrye-bash/wrye-bash/milestone/16 and the high priority items on the board (https://github.com/orgs/wrye-bash/projects/2/views/1 in particular https://github.com/orgs/wrye-bash/projects/2/views/1?pane=issue&itemId=66626565 I think we should not fix) is all we need done for a release

I was thinking also of adding a nightly section in the Nexus files page where we can post stable nightlies

@Infernio
Copy link
Member

Infernio commented Sep 13, 2024

Wow, my PR to wx got merged in two hours 😮

Granted, it was a simple fix, but the new maintainer seems to actually merge stuff.

@Utumno
Copy link
Member Author

Utumno commented Sep 15, 2024

Is the PR GIF related? Meanwhile I would suggest that some items of the project board be transferred to #200 - especially the internal todos and low priority ones. Let's keep the project board for user reports (thanks @sibir-ine for keeping it updated!) and have #200 for our todo lists

@Infernio
Copy link
Member

Is the PR GIF related?

No, unfortunately not (I'll get around to fixing up the GIF branch soon(TM)).

Anyway: note to self, the XDG user dir support we have in linux.py is wrong - we need to read $XDG_CONFIG_DIR/user-dirs.dirs to implement that correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-discussion Category: Discussion (among developers trying to find consensus on a design etc.)
Projects
None yet
Development

No branches or pull requests

13 participants