Repository navigation
Conversation
Remove lib/realms/smartseq3/, lib/realms/tenx/ and lib/realms/delivery/, which predate the realm descriptor / plan / Engine model and are not imported by the core or its tests. This includes the 13 tracked .DS_Store files under smartseq3/report/assets/. lib/realms/ now holds only the dev-only test_realm; production realms are external packages. README.md, CLAUDE.md and docs/architecture/overview.md are updated to say so. The removed code can be retrieved from this commit's parent: git checkout <this-commit>^ -- lib/realms/<name>
Remove code that served only the legacy realms, or nothing at all: - module_registry.json, lib/core_utils/module_resolver.py and its tests - ygg_trunk.py and ygg-mule.py, superseded by the yggdrasil CLI - the root config.json, superseded by main.json - lib/base/ (AbstractProject, AbstractSample) - lib/handlers/ (BestPracticeAnalysisHandler and the base_handler shim) - lib/realms/test_realm/watcher.py (ScenarioDocWatcher, never wired) - lib/module_utils/ngi_report_generator.py and its tests ProjectDBManager no longer loads the module registry. fetch_changes(), which only mapped library-construction methods to realm modules, is removed with its tests. YggdrasilCore and test_base_handler import BaseHandler from yggdrasil.flow.base_handler, and the commented-out registry-based run_once block in the core is deleted. Runtime dependencies go from sixteen to seven: appdirs, cattrs, ibmcloudant, panzi_json_logic, requests, rich and watchdog. cattrs is now declared (pinned to 26.2.1) because yggdrasil/flow/utils/codec.py uses it when it is installed. requirements/lock.txt is regenerated. External code that imports yggdrasil.handlers.base_handler (resolved through the lib alias) must switch to yggdrasil.flow.base_handler.
Refactor/repository cleanup
Merge main (v0.4.0) into dev
…er to its constructor
…alm handling and associated tests
…p obsolete migration heading
…unctions; move normalize_url to config.external_systems
…fig.external_systems
…functionality (note OpsWriter's own endpoint resolution)
…lts in WatcherManager and PlanWatcher
…ogging, not at import
…o enhance functionality and improve performance
Refactor/package consolidation
yggdrasil/flow/utils was the only directory with Python modules and no __init__.py, and namespaces = true was set to pick it up. It now has a docstring-only initializer, and packages.find runs with namespaces = false
Six docstrings cited entries of docs/TECH_DEBT_LEDGER.md, a local file the repository does not track. Each now states the limitation itself. The watchers package docstring describes AbstractWatcher, PlanWatcher and SeqDataWatcher instead of calling them deprecated after a certain plan phase.
…date conventions for known gaps and test style
…checkout to v7 actions - Node 24 majors
Fix/package consolidation followup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR brings the repository-cleanup and package-consolidation work from
devintomain, preparing Yggdrasil forv0.5.0.The central change is the retirement of the top-level
libpackage. All maintained code now lives underyggdrasil, with responsibilities reorganized into explicit packages. This makes shared tools and contracts directly importable by realm packages and consumers such as Bifrost, without relying on legacy import aliases or checkout-specific path manipulation.The current planning and execution model is preserved. Import paths and legacy integration mechanisms intentionally change.
Repository Cleanup
Package Consolidation
libcode intoyggdrasil, organized by responsibility across configuration, Flow, watchers, CouchDB access, storage, operations, daemon, and CLI packages.lib.*.YggdrasilUtilitieswith module-level workspace helpers and consolidated external-system defaults.YggdrasilEventintowatchers/events.pyandCouchDBCheckpointStoreintostorage/couchdb/checkpoint_store.py.yggdrasil.floworyggdrasil.watchersdoes not load the CouchDB client or configure process-wide logging.configure_logging()setup.ygg.handlerdiscovery in favor ofygg.realmregistration throughRealmDescriptor.Packaging And Verification
py.typed, and Git-tag-based versioning.build/output from mypy checks.Documentation And CI
Upgrade Considerations
lib.*imports; legacy aliases are no longer available.ygg.realm;ygg.handlerentry points are not discovered.yggdrasil.*module paths.lib.realms.test_realmmust be deleted and regenerated.pip install -e ., rather than automatic repository-path insertion.ygg-mule.pyandygg_trunk.pyentry scripts are removed; use the supportedyggdrasilCLI.