VEuPathDB / VEuPathDB/ApiCommonModel

Apollo release: updateCommand does not refresh commonName on an annotation-version bump

Open Beginner friendly
#225 0 comments 0 reactions 0 assignees View on GitHub

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 commonNamerenameCommand 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 update bucket carries organism, so latest_annotation_version is available
  • $apollo->{common_name} is available in $live if 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_curl diffable release-over-release, which is the property the fixed field ordering in _updateOrganismInfo exists 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.