Skip to content

ENH: COMP: Adding LinuxCxx20 job to Azure continuous integration.#5160

Merged
thewtex merged 2 commits intoInsightSoftwareConsortium:masterfrom
devbanu:ci_cxx20_job
Jan 24, 2025
Merged

ENH: COMP: Adding LinuxCxx20 job to Azure continuous integration.#5160
thewtex merged 2 commits intoInsightSoftwareConsortium:masterfrom
devbanu:ci_cxx20_job

Conversation

@devbanu
Copy link
Copy Markdown

@devbanu devbanu commented Jan 23, 2025

This fixes #3097 by adding a LinuxCxx20 job with the Azure continuous integration.

In the future, as ITK project itself adopts newer standards, it is easy to change this job to use C++23, etc.

This is essentially a clone of the Linux job with CMAKE_CXX_STANDARD set to 20 and CMAKE_CXX_STANDARD_REQUIRED enabled.

PR Checklist

  • No API changes were made (or the changes have been approved)
  • No major design changes were made (or the changes have been approved)
  • Added test (or behavior not changed)
  • Updated API documentation (or API not changed)
  • Added license to new files (if any)
  • Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
  • Added ITK examples for all new major features (if any)

Refer to the ITK Software Guide for
further development details if necessary.

This is essentially a clone of the Linux job with CMAKE_CXX_STANDARD set to 20 and CMAKE_CXX_STANDARD_REQUIRED enabled.
@github-actions github-actions Bot added type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Enhancement Improvement of existing methods or implementation type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct labels Jan 23, 2025
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Thank you for contributing a pull request! 🙏

Welcome to the ITK community! 🤗👋☀️

We are glad you are here and appreciate your contribution. Please keep in mind our community participation guidelines. 📜
More support and guidance on the contribution process can be found in our contributing guide. 📖

This is an automatic message. Allow for time for the ITK community to be able to read the pull request and comment
on it.

@seanm seanm requested a review from dzenanz January 23, 2025 20:40
@seanm
Copy link
Copy Markdown
Contributor

seanm commented Jan 23, 2025

@devbanu I don't know this language/syntax, but why ubuntu-20.04? Maybe a newer Ubuntu would be wise for such a new C++?

Copy link
Copy Markdown
Member

@dzenanz dzenanz left a comment

Choose a reason for hiding this comment

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

Looks good on a glance, let's see what CI says after it finishes running.

Comment thread Testing/ContinuousIntegration/AzurePipelinesLinux.yml Outdated
Copy link
Copy Markdown
Member

@hjmjohnson hjmjohnson left a comment

Choose a reason for hiding this comment

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

Please change the vmImage to ubuntu-24.04 for more commonly found c++20 enviroinment.

@devbanu
Copy link
Copy Markdown
Author

devbanu commented Jan 24, 2025

@hjmjohnson

Looking here:

https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml

there is also the option to put ubuntu-latest which currently is Ubuntu 22.04 but will soon move to Ubuntu 24.04.

What do you think ubuntu-latest (updates automatically, but maybe unexpectedly) vs ubuntu-24.04 (has to be updated manually)?

@dzenanz
Copy link
Copy Markdown
Member

dzenanz commented Jan 24, 2025

I think we decided that we prefer manual updates. They are not hard, and we can choose the time of when to do it.

@devbanu devbanu requested a review from hjmjohnson January 24, 2025 16:50
@thewtex
Copy link
Copy Markdown
Member

thewtex commented Jan 24, 2025

What do you think ubuntu-latest (updates automatically, but maybe unexpectedly) vs ubuntu-24.04 (has to be updated manually)?

The best practice is to use explicit versioning and update so unrelated errors do not occur when latest happens to update.

@thewtex
Copy link
Copy Markdown
Member

thewtex commented Jan 24, 2025

@devbanu thank you for the contribution! 🥇

@thewtex thewtex merged commit 240fa0f into InsightSoftwareConsortium:master Jan 24, 2025
hjmjohnson pushed a commit to hjmjohnson/ITK that referenced this pull request May 6, 2026
…20_job

ENH: COMP: Adding LinuxCxx20 job to Azure continuous integration.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:Enhancement Improvement of existing methods or implementation type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Request: Add build compiling with C++20 to GitHub actions.

5 participants