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

- use major-only for Clang >= 8.0 #3643

Merged
merged 2 commits into from Oct 26, 2018
Merged

- use major-only for Clang >= 8.0 #3643

merged 2 commits into from Oct 26, 2018

Conversation

SSE4
Copy link
Contributor

@SSE4 SSE4 commented Sep 30, 2018

Changelog: Feature: Added support for Clang >=8 and the new versioning schema, where only the major and the patch is used.

according to the:
https://releases.llvm.org/7.0.0/tools/clang/docs/ReleaseNotes.html

Clang binary and libraries have been renamed from 7.0 to 7. For example, the clang binary will be called clang-7 instead of clang-7.0.

also according to the:
http://lists.llvm.org/pipermail/llvm-dev/2018-March/121873.html

Now, as we are not using the minor version (the Y in X.Y.Z), there isn't
much point in calling our tools foo-7.0 as we won't create a 7.1.

and finally:
http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html

We decided that going forward, every release on the six-month cycle will be a major release. Patch releases will increment the patch component as before (producing versions like 5.0.1), and the minor component will stay at zero since no minor releases will be made.

so, this patch offers to use major only versions for Clang >= 7.0, similarly on how it is done for GCC >= 5.0

  • Refer to the issue that supports this Pull Request.
  • If the issue has missing info, explain the purpose/use case/pain/need that covers this Pull Request.
  • I've read the Contributing guide.
  • I've followed the PEP8 style guides for Python code.
  • I've opened another PR in the Conan docs repo to the develop branch, documenting this one. Also adding a description of the changes in the changelog.rst file. https://github.com/conan-io/docs

@SSE4
Copy link
Contributor Author

SSE4 commented Sep 30, 2018

build problem appears to be an infrastructure issue:

ERROR: Issue with creating launcher for agent MacosBuilder. The agent has not been fully initialized yet

conans/client/migrations.py Outdated Show resolved Hide resolved
conans/client/conf/detect.py Show resolved Hide resolved
@SSE4
Copy link
Contributor Author

SSE4 commented Oct 8, 2018

same question, do we have such quirks for GCC? also, how about patch versions for GCC? I guess they currently don't matter, assuming all patch versions are compatible, if major is same, right?
so, I wonder, why Clang logic must be different from GCC's? or do you mean it should be changed for both GCC and Clang?

@SSE4
Copy link
Contributor Author

SSE4 commented Oct 22, 2018

updated, summary:

  • added Clang 8 to settings.yml
  • starting from Clang 8, conan will detect major-only by default
  • detection for Clang 7 and below is not changed to avoid compatibility breakage
  • added major-only Clang versions 5, 6, 7, 8 to settings.yml
  • migrations.py is not changed
  • added missing compilers to the new_ci.py (GCC 8, Clang 5, 6, 7, Apple Clang 10.0)
  • CMake-wrapper checks major-only since Clang 8 as well

@SSE4 SSE4 changed the title - use major-only for Clang >= 7.0 - use major-only for Clang >= 8.0 Oct 22, 2018
Signed-off-by: SSE4 <tomskside@gmail.com>
Copy link
Contributor

@Croydon Croydon left a comment

Choose a reason for hiding this comment

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

LGTM

@lasote
Copy link
Contributor

lasote commented Oct 26, 2018

@memsharded please confirm that we are following this approach of keeping clang 7.0 and merge when you are ready.

@ghost ghost added stage: review and removed contributor pr labels Oct 26, 2018
@memsharded memsharded merged commit 785f9f3 into conan-io:develop Oct 26, 2018
@ghost ghost removed the stage: review label Oct 26, 2018
@memsharded memsharded added this to the 1.9 milestone Oct 26, 2018
grisumbras pushed a commit to grisumbras/conan that referenced this pull request Dec 27, 2018
- use major-only for Clang >= 8.0
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.

None yet

4 participants