VEuPathDB / VEuPathDB/ApiCommonModel
Apollo release: updateCommand does not refresh commonName on an annotation-version bump
Nobody has claimed this yet.
- Dominant language
- Perl
- Stars
- 1
- Forks
- 1
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 5
Description
Gap
ApolloRelease::Commands::updateCommand sets directory, blatdb and publicMode, but not commonName. So an organism whose annotation version bumped keeps its old [sNN-mNN-rNN] suffix in Apollo indefinitely.
This is the one behaviour from Paul Wilkinson's createApolloReleasePackage_ALL.pl with no counterpart in the new package.
What the old script did
Paul's loop had three branches, keyed on matching the portal organism's name against Apollo's roster:
| # | Condition | Emitted |
|---|---|---|
| 1 | "$fullName [$latestVersion]" matches exactly |
Apollo_curl: updateOrganismInfo (directory, blatdb, publicMode:"true") |
| 2 | $fullName matches, versioned name does not |
Apollo_arrow: arrow organisms update_organism $id "$newCommonName" "$oldDirectory" + a curl |
| 3 | no match | Apollo_groovy: add_organism + alter_group_permissions |
Branch 2 is the missing case. It fired on an annotation-version bump and refreshed the display name.
Note branch 2 did two jobs at once, in two files, with an undocumented ordering dependency: arrow set the name while passing back the old directory, and the curl set the directory to the new abbrev. Correct only if arrow runs before curl. The new tool's renameCommand already replaces that half properly — one atomic curl setting directory + blatdb + commonName against the reused Apollo id.
Coverage of everything else (no action needed)
| Event | New tool | Status |
|---|---|---|
| dirs need confirming, name current | update |
covered, improved — echoes real public_mode instead of hardcoding true (Paul's re-published deliberately hidden organisms every release) |
| abbrev changed (reclassification) | rename |
covered, improved — atomic, no ordering trap |
| annotation version bumped, abbrev unchanged | update, no commonName |
this issue |
| new qualifying organism | add_candidate |
covered, improved — overlay approval gate |
| gone from the portal | prune_candidate |
new capability; Paul had none |
| no longer reference+annotated | exception |
new capability |
Proposed fix
Not a new Apollo_arrow file. updateOrganismInfo already accepts commonName — renameCommand proves it. Add it to updateCommand via the existing apolloName($entry->{organism}); arrow then drops out as a dependency entirely.
Inputs are already in place:
- the
updatebucket carriesorganism, solatest_annotation_versionis available $apollo->{common_name}is available in$liveif we want to emit only on an actual difference
Open decision
Unconditional commonName on every update, or only where it differs from Apollo's stored name?
- unconditional — simpler, still idempotent
- conditional — keeps
Apollo_curldiffable release-over-release, which is the property the fixed field ordering in_updateOrganismInfoexists to protect
Tests
Model/t/commands.t — assert updateCommand emits commonName, and (if conditional) that it is omitted when the name is unchanged. Note the existing password assertions only check that no literal password is baked in; they do not check field presence.
b71 status
Believed to have zero affected organisms, so this is not a b71 blocker — filing for the next release.
Unverified: the reconciliation report lists only abbrevs for the 453 updates, not common names, so confirming would mean diffing each Apollo common_name against apolloName($organism). Worth doing once before b72 to size the impact.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ApolloRelease::Commands::updateCommand and the existing assertions in Model/t/commands.t; compare its emitted fields with renameCommand and the available apolloName($entry-> {organism}) input. Update the test to cover commonName emission and resolve whether unchanged names are omitted, then confirm the command output matches that decision.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- release, tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100