Skip to content

Assembly lvl2#103

Merged
Gonza10V merged 45 commits into
full_buildfrom
assembly_lvl2
Jul 9, 2026
Merged

Assembly lvl2#103
Gonza10V merged 45 commits into
full_buildfrom
assembly_lvl2

Conversation

@Gonza10V

@Gonza10V Gonza10V commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2237123595

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/buildcompiler/buildcompiler.py Outdated
backbone,
bsaI_impl,
ligase_impl,
self.bsaI_impl,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use the initialized BsaI implementation

When domestication reaches assembly for any supported part, BuildCompiler never defines bsaI_impl (the attribute initialized and populated elsewhere is BsaI_impl), so this raises AttributeError before Golden Gate assembly can run even after BsaI was found or created. Use the existing self.BsaI_impl here.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex good catch, please fix this issue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

Testing

  • python -m compileall src/buildcompiler/buildcompiler.py
  • pytest tests/unit/stages/test_domestication_stage.py -q

Committed changes on the current branch and created a PR titled “Fix domestication BsaI implementation reference.”

View task →

Comment thread src/buildcompiler/buildcompiler.py Outdated
key = p.plasmid_definition.displayId
plasmid_dict.setdefault(key, []).append(p)

backbone, _ = self._get_backbone(plasmid_dict, antibiotic_resistance=AMP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Respect the supplied level-2 backbone

When callers pass backbone to force a specific level-2 acceptor, this assignment always discards it and auto-selects an AMP backbone from the index after building intermediates. In collections with multiple AMP level-2 vectors, assembly_lvl2(..., backbone=my_vector) can silently build with a different vector, so keep the provided backbone and only call _get_backbone when it is None.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex good catch, please fix this issue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

Testing

  • pytest tests/unit/stages/test_assembly_lvl2.py -q
  • python -m compileall src/buildcompiler/buildcompiler.py
  • git diff --check

Committed changes on the current branch and created a PR titled “Respect supplied level-2 backbone.”

View task →

Comment thread src/buildcompiler/buildcompiler.py Outdated
Returns:
A list of TU component definitions in sequential order.
"""
top_design = design_doc.componentDefinitions[0]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Select the actual top-level design

When a level-2 SBOL document serializes a TU or part ComponentDefinition before the composite design, this selects that child as top_design and assembly_lvl2 then assembles its children (or none) instead of the requested level-2 construct. The codebase already has top-level detection logic that avoids relying on document order; use that before enumerating TUs.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex good catch, please fix this issue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

Testing

  • pytest tests/unit/stages/test_assembly_lvl2.py -q
  • python -m compileall src/buildcompiler/buildcompiler.py
  • git diff --check

Committed changes on the current branch and created a PR titled “Select top-level design for lvl2 TU extraction.”

View task →

Comment on lines +40 to +42
env:
SBH_USERNAME: ${{ secrets.SBH_USERNAME }}
SBH_PASSWORD: ${{ secrets.SBH_PASSWORD }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Skip online tests when secrets are unavailable

For pull_request runs from forks, GitHub documents that repository secrets are not passed to the runner, so these values expand to empty strings and the new setUpClass checks abort the whole unittest suite before any tests run. Because this workflow still runs on every pull_request, external contributors get guaranteed red CI unless the SynBioHub-backed tests are skipped or gated when credentials are absent.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex good catch, please fix this issue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

  • Updated the Python package workflow to run the full unittest suite only when SBH_USERNAME and SBH_PASSWORD are available, preserving the credentialed SynBioHub test path. .github/workflows/python-package.ymlL39-L45
  • Added a fork-safe fallback path that skips the SynBioHub-backed test modules and runs the remaining tests with pytest when secrets are unavailable. .github/workflows/python-package.ymlL46-L50
  • Committed the change with commit a7c36bc and created a PR titled “Skip SynBioHub tests without credentials.”

Testing

  • git diff --check
  • bash -n /tmp/python-package-test-step.sh
  • ⚠️ python - <<'PY' from pathlib import Path try: import yaml except ImportError: print('PyYAML not installed; skipping YAML parse') else: with Path('.github/workflows/python-package.yml').open() as f: yaml.safe_load(f) print('YAML parsed successfully') PY (warning due to missing local PyYAML)
  • pytest tests --ignore=tests/test_buildcompiler.py --ignore=tests/test_core.py -q (failed in existing non-online tests with BuildCompiler missing _index_document_objects; unrelated to the workflow-only change)

View task →

@Gonza10V
Gonza10V merged commit d4413bf into full_build Jul 9, 2026
4 of 10 checks passed
@Gonza10V
Gonza10V deleted the assembly_lvl2 branch July 12, 2026 04:33
@Gonza10V
Gonza10V restored the assembly_lvl2 branch July 12, 2026 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants