Skip to content

[SYNPY-1809] Added generate_sync_manifest method#1373

Open
andrewelamb wants to merge 14 commits intodevelopfrom
SYNPY-1809
Open

[SYNPY-1809] Added generate_sync_manifest method#1373
andrewelamb wants to merge 14 commits intodevelopfrom
SYNPY-1809

Conversation

@andrewelamb
Copy link
Copy Markdown
Contributor

@andrewelamb andrewelamb commented May 4, 2026

Problem:

The generate_sync_manifest method in sync.py worked with the old-style manifest.

Solution:

A new version was created as a StorableContainer method that creates a new-style manifest.
The old version was deprecated.

Testing:

Integration tests for the new method
Unit tests for the various helper functions

@andrewelamb andrewelamb requested a review from a team as a code owner May 4, 2026 18:36
@andrewelamb andrewelamb marked this pull request as draft May 4, 2026 18:38
@andrewelamb andrewelamb changed the title added generate_sync_manifest method [SYNPY-1809] Added generate_sync_manifest method May 6, 2026
@andrewelamb andrewelamb marked this pull request as ready for review May 6, 2026 20:33
Copy link
Copy Markdown
Member

@BryanFauble BryanFauble left a comment

Choose a reason for hiding this comment

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

I have a concern around concurrency, otherwise the rest looks good to me

Comment thread synapseclient/models/services/manifest.py
Copy link
Copy Markdown
Contributor

@linglp linglp left a comment

Choose a reason for hiding this comment

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

Hi @andrewelamb ! I think overall it looks good.

While testing this function, I noticed that local files are always re-uploaded to Synapse even when unchanged based on the log. This may not be ideal for users with large manifests who only want to re-upload a subset. For example, users who have problems with only a subset of files might only want to reupload those and ignore all the others. I am curious if the current implementation would let us skip files that have the same MD5 checksums? If not, is it possible to implement a different solution that let us pull the files from Synapse first -> compare MD5 checksums -> upload if MD5 checksums are different

Comment thread synapseclient/models/protocols/storable_container_protocol.py
@andrewelamb
Copy link
Copy Markdown
Contributor Author

Hi @andrewelamb ! I think overall it looks good.

While testing this function, I noticed that local files are always re-uploaded to Synapse even when unchanged based on the log. This may not be ideal for users with large manifests who only want to re-upload a subset. For example, users who have problems with only a subset of files might only want to reupload those and ignore all the others. I am curious if the current implementation would let us skip files that have the same MD5 checksums? If not, is it possible to implement a different solution that let us pull the files from Synapse first -> compare MD5 checksums -> upload if MD5 checksums are different

Thanks for the suggestion! I think this is out of scope for this ticket as I'm just replicating the old function, but using the new manifest style. I'll create a ticket though!

@andrewelamb andrewelamb requested review from BryanFauble and linglp May 7, 2026 15:06
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.

3 participants