Skip to content
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

Feature/remove compatibility mode #4462

Merged
merged 65 commits into from Feb 8, 2019

Conversation

@lasote
Copy link
Contributor

@lasote lasote commented Feb 4, 2019

Changelog: Feature: Removed old "compatibility" mode of revisions.
Changelog: Bugfix: Fixed several bugs related to revisions.
Changelog: Bugfix: Fixed several bugs related to the package metadata.json

Close #4352
Close #798

Docs: conan-io/docs#1105

CHANGES:

  • The CI will run only two stages, "with revisions", "without revisions"
  • Different testing env var (TESTING_REVISIONS_ENABLED) to change the TestClient default (revisions on/off) than the real one that is CONAN_CLIENT_REVISIONS_ENABLED. Otherwise it was very difficul to mix the on/off operations in the tests.
  • Metadata is not lazy created by default, it hide errors like "conan copy" not generating the destination metadata files.
  • Metadata is not returning "0" by default for the revisions. It was also error prone. The None value can happen if no one sets the revision.
  • Decouple "revisions" mechanism from the "SCM" feature, now the revision is extracted directly from the repository using the SCM helpers
  • Search and remove needed several changes to work with the revisions.
  • Rewritten tests with a new test framework

PENDING:

  • Migration of cache to generate the metadata.json file
  • Update wiki page about revisions

FUTURE FEATURES TO IMPLEMENT:

  • revision_mode="scm/hash" so someone could choose to use the hash (recipes of a third party at the same repository)

@tags: svn, slow
@revisions: 1

@lasote lasote requested review from jgsogo and danimtb and removed request for danimtb Feb 4, 2019
@lasote lasote assigned memsharded and unassigned lasote Feb 4, 2019
@ghost ghost assigned lasote Feb 5, 2019
conans/client/cmd/copy.py Outdated Show resolved Hide resolved
conans/client/remover.py Show resolved Hide resolved
conans/client/remover.py Show resolved Hide resolved
conans/model/scm.py Outdated Show resolved Hide resolved
conans/search/search.py Show resolved Hide resolved
conans/test/functional/command/search_test.py Show resolved Hide resolved
conans/test/integration/install_update_test.py Outdated Show resolved Hide resolved
@lasote lasote dismissed memsharded’s stale review Feb 6, 2019

Please, review the migration and changes in the latest two commits

Copy link
Member

@danimtb danimtb left a comment

The TurboClient is great for reading and understanding tests
I miss some tests about user output specially for the conan search --revisions command

conans/client/cmd/export.py Show resolved Hide resolved
conans/test/integration/workspace_test.py Show resolved Hide resolved
conans/client/conf/__init__.py Outdated Show resolved Hide resolved
conans/test/unittests/client/cache_test.py Outdated Show resolved Hide resolved
conans/test/unittests/client/cache_test.py Outdated Show resolved Hide resolved
conans/test/integration/revisions_test.py Outdated Show resolved Hide resolved
conans/test/integration/revisions_test.py Show resolved Hide resolved
conans/test/integration/revisions_test.py Outdated Show resolved Hide resolved
conans/test/integration/revisions_test.py Show resolved Hide resolved
conans/test/integration/revisions_test.py Show resolved Hide resolved
conans/client/cmd/export.py Outdated Show resolved Hide resolved
Copy link
Member

@jgsogo jgsogo left a comment

WIP... Now, the tests

conans/client/cache/cache.py Outdated Show resolved Hide resolved
conans/client/cmd/copy.py Show resolved Hide resolved
conans/client/cmd/copy.py Outdated Show resolved Hide resolved
conans/client/cmd/copy.py Outdated Show resolved Hide resolved
conans/client/cmd/download.py Outdated Show resolved Hide resolved
conans/client/cmd/search.py Show resolved Hide resolved
conans/client/conan_api.py Outdated Show resolved Hide resolved
conans/client/graph/graph_binaries.py Show resolved Hide resolved
conans/client/migrations.py Outdated Show resolved Hide resolved
conans/client/rest/rest_client.py Outdated Show resolved Hide resolved
Copy link
Member

@jgsogo jgsogo left a comment

Cool! Really great, it was worth the effort! 💯

I've written a lot of minor details, none of them blocking.

conans/test/functional/command/search_test.py Outdated Show resolved Hide resolved
conans/test/functional/command/search_test.py Show resolved Hide resolved
conans/test/functional/command/search_test.py Show resolved Hide resolved
conans/test/functional/command/upload_complete_test.py Outdated Show resolved Hide resolved
conans/test/integration/install_outdated_test.py Outdated Show resolved Hide resolved
conans/test/integration/revisions_test.py Outdated Show resolved Hide resolved
conans/test/integration/revisions_test.py Outdated Show resolved Hide resolved
conans/test/integration/revisions_test.py Show resolved Hide resolved
conans/test/integration/revisions_test.py Show resolved Hide resolved
conans/test/integration/revisions_test.py Show resolved Hide resolved
conans/client/migrations.py Outdated Show resolved Hide resolved
@jgsogo
Copy link
Member

@jgsogo jgsogo commented Feb 8, 2019

⚠️ The migration fails with packages installed in editable mode:

ERROR: Something went wrong while generating the metadata.json files in the cache, please try to fix the issue or wipe the cache: lib/version@user/channel:Operation not allowed on a package installed as editable

@lasote
Copy link
Contributor Author

@lasote lasote commented Feb 8, 2019

Great reviews team.

@lasote lasote merged commit d51bb72 into conan-io:develop Feb 8, 2019
2 checks passed
@ghost ghost removed the stage: review label Feb 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

4 participants