-
Notifications
You must be signed in to change notification settings - Fork 84
Closed
Labels
A-bainArea: BAIN (BAsh INstallers, in bosh/bain.py)Area: BAIN (BAsh INstallers, in bosh/bain.py)C-goalCategory: Long term goal. May be code-related or a meta goal.Category: Long term goal. May be code-related or a meta goal.C-internalCategory: Keep track of internal refactoring. Implies the C-todo label except if it is a full C-goalCategory: Keep track of internal refactoring. Implies the C-todo label except if it is a full C-goal
Milestone
Description
Opening this to group BAIN related TODOs:
- related to skip stuff - packages with the master esm in them - anneal fails: https://web.archive.org/web/20200217034424/http://forums.bethsoft.com/topic/1602198-wrye-bash-thread-109/page-3#entry25149806 (should be fixed in fd2dbfd)
- skip stuff - see BAIN Skips fixups #270
- refreshing installers should take into account Data: Refreshing an installer should refresh/rescan its files in Data #277
- different color settings for markers vs invalid: Customizable color for markers #276
- autobcfs: https://web.archive.org/web/20200216152802/http://forums.bethsoft.com/topic/1525110-wrye-bash-thread-104/page-4#entry24260364 (edit: e9e064d)
- package quirks:
- docs break complex bains -
unconfirmedhttps://web.archive.org/web/20200216205243/https://forums.bethsoft.com/topic/1525110-wrye-bash-thread-104/page-6#entry24315318 - edit - actually this is expected behavior and it stays - docs ! -> done: 309b083 - html docs left behind -
unconfirmed: https://web.archive.org/web/20200216205242/https://forums.bethsoft.com/topic/1536340-wrye-bash-thread-105/#entry24322868 - edit - actually this is expected behavior not much to do about it - docs ! -> done: 309b083
- docs break complex bains -
- BSA conflict levels should be shown in hex as well -> https://web.archive.org/web/20200216114504/http://forums.bethsoft.com/topic/1606578-wrye-bash-thread-111/page-3#entry25238132 done: 1d8e35b)
- BSA conflicts enhancements: https://web.archive.org/web/20200216114544/http://forums.bethsoft.com/topic/1615914-wrye-bash-thread-114/page-3#entry25314192 -> let's delay that until Data tab: 'Data Tab': View of data folder with source installers #50
- refactor common code in Installer install
- Ini tweaks should only be installed if on an ini tweaks folder with no subfolders
- init_attributes_bosh.bain.Installer#init_attributes_process should probably become a protected instance method and all processing be moved there
- search for modInfos.rightFileType uses and replace with x in self.espms
- bin bethsoft content special treatment - I had the idea of moving it inside
init_attributes_processas in (pseudo):
beth_extensions = ...
....
for ext in beth ext:
def _process_beth()
processing = attributes_process.get(ext, None)
if processing is not None:
processing = processing()
if processing is None: return processing
bethFilesSkip = not self.overrideSkips and not bass.settings[
'bash.installers.autoRefreshBethsoft']
if fileLower in bush.game.bethDataFiles:
self.hasBethFiles = True
if bethFilesSkip:
self.skipDirFiles.add(_(u'[Bethesda Content]') + u' ' + full)
return None # FIXME - after renames ?
# add to overridden skips ???
return file_relative
but as discussed here we should probably just bin. -> done in d6bf3cf.
Refresh:
- DLClist.txt and masterlist.txt -> 5608ddc
-
related to Refreshing an installer should refresh/rescan its files in Data #277 - maybe add some minimal refresh of the data folder anyway OnShow installers? Refresh espms ? Couple with mods refresh ?nope, the problem should be addressed at the root - Event based refreshes #265 - dest_src should be updated as part of the attributes_process !
- projects are refreshed no matter what - for instance delete a project (or package ?) - delete_Refresh will call irefresh('I...') which will refresh projects as
(isdir and not installer.refreshed)will return true in refreshInstallers(). That's unneeded and costly ! - consider exposing scanning of top level espms as an ini setting -> dropped altogether
- we define the mtime of a project as the max time of its subfiles - this results in calls to
os.walkboth in InstallerProject.refreshSource as well as in refreshInstallersNeeded. Shouldn't we check only the files that BAIN tracks - so the processing be done in refreshSizeCrcDate (where we already walk the installer but excluding skipped?). This will save an amount of time from refreshInstallersNeeded, which is needed. Plus if a file is skipped by BAIN why mark the installer as changed ? Plus we should check for differences in mtime not just the max one (think of copying a file with a random small mtime) -> needs issue - cancel in loading data should cancel - or not ? -> can't see how - at least make it faster (partly done in 2897a8f)
Issues:
- memory performance: Reduce Installers tab memory usage #263
- mods/inis
installerattribute is not updated correctly when for instance - I install mod ZZZ.esp from an installer YYY high in the install order while ZZZ.esp is also installed by another installer XXX lower in the order when uninstalling YYY does not cede ownership of the mod back to XXX. May seem not a huge deal but actually points to the suboptimal way of detecting mod and ini changes - and this needs to be super optimal and correct so we only refresh mods and inis when needed (Refresh optimizations #205). --> edit Installer column for mods/inis is not always updated #279
Backburner:
- omod extraction (if not binned) should be converted to use pack and unpack methods introduced in archives refactoring - it never checks for errors !
-
_extractOmodsvs__extractOmods...
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-bainArea: BAIN (BAsh INstallers, in bosh/bain.py)Area: BAIN (BAsh INstallers, in bosh/bain.py)C-goalCategory: Long term goal. May be code-related or a meta goal.Category: Long term goal. May be code-related or a meta goal.C-internalCategory: Keep track of internal refactoring. Implies the C-todo label except if it is a full C-goalCategory: Keep track of internal refactoring. Implies the C-todo label except if it is a full C-goal