Skip to content

Back to BAIN  #219

@Utumno

Description

@Utumno

Opening this to group BAIN related TODOs:

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.walk both 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 installer attribute 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 !
  • _extractOmods vs __extractOmods ...

Lojack on skips: https://web.archive.org/web/20200216152752/https://forums.bethsoft.com/topic/1536340-wrye-bash-thread-105/page-5#entry24408456

Leandor on skip voices: https://web.archive.org/web/20200217015120/https://forums.bethsoft.com/topic/1570906-wrye-bash-thread-106/page-4#entry24801732

Metadata

Metadata

Assignees

Labels

A-bainArea: BAIN (BAsh INstallers, in bosh/bain.py)C-goalCategory: 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-goal

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions