-
Notifications
You must be signed in to change notification settings - Fork 8
Migrate subsection of vcstools' API for compatibility with bloom #43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
5730d2c to
650fcd3
Compare
659c3b8 to
5f6ce04
Compare
477c4be to
d08697b
Compare
5f6ce04 to
e47aac4
Compare
8e32c1a to
138ad9f
Compare
138ad9f to
83040dc
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #43 +/- ##
==========================================
+ Coverage 26.98% 28.13% +1.14%
==========================================
Files 31 31
Lines 2238 2463 +225
Branches 392 436 +44
==========================================
+ Hits 604 693 +89
- Misses 1574 1698 +124
- Partials 60 72 +12 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@leander-dsouza, I noticed that some implementations of |
nuclearsandwich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks good but for the one comment about the git client which I believe can be simplified dramatically.
vcs2l/clients/git.py
Outdated
|
|
||
| # If current version matches export version and no local changes, export directly | ||
| current_sha = self._get_current_version() | ||
| export_sha = self._get_version_sha(version) if version else current_sha |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we have an exact version to provide as a commit-ish->tree-ish what is the requirement to use a temp directory. git-archive does not make any changes to the working directory. I have not gone spelunking in the history but I'm willing to hypothesize that this behavior is carried over from a vcs which does not support exporting archives of snapshots without checking them out first.
git archive --format=tar.gz --output={filepath} export_sha
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, you are correct, Steven.
I tried to replicate the archiving behaviour of the original implementation of the archiving process in vcstools
I have now simplified the implementation of this section, as git archive does not change the cwd.
vcs2l/clients/bzr.py
Outdated
| result['output'] = branch | ||
| return result | ||
|
|
||
| def _export_repository(self, version, basepath): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A handful of these are named _export_repository instead of export_repository. to match the API. Is that intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I briefly remember selectively naming the export methods for this reason.
However, I cannot find these methods in the vcstools repository. Hence, I added a commit to standardise the export repository methods across all VCS clients.
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
Signed-off-by: Leander Stephen D'Souza <[email protected]>
4afa4b1 to
5b27149
Compare
I remember drafting the export methods to match the vcstools repository. However, I think I was mistaken, and hence I added a commit to standardise all the export repository methods across all VCS clients. |
Note
Please refer #751 for verifying integration with bloom.
Basic Info
Description of contribution in a few bullet points
This ports over four main functions from vcstools, namely
export_repositories,checkout,get_vcs_client, andget_pathfor all the VCS clients.This is because these are the four prominent methods used in bloom as seen here.
checkoutreferenceexport_repositoriesreferenceget_vcs_clientreferenceget_pathreferenceIn addition, the corresponding integration tests have been added to both of these functions across
svn,bzr,hg, andgitclients.Breezy has been added to the CI for testing on macOS and Ubuntu.
The integration can be safely verified in #751 at bloom. All the system and unit tests pass upon merge.
Description of how this change was tested
Ran
pytestlocally to ensure all the unit and linting tests pass:pytest -s -v testSigned-off-by: Leander Stephen Desouza [email protected]