From a7a92d4926a33e5faae4d9d517e55aecc5ed7a77 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 4 Oct 2023 17:55:19 -0400 Subject: [PATCH] DOC: Add Sphinx Documentation rendering This adds Myst (markdown) Sphinx documentation. This is to be rendered on ReadTheDocs and deployed on docs.itk.org. A start for issue #4063. Changes and more content are expected in the future! In particular, the old wiki content, Software Guide content, and Tutorial. It uses the clean and elegant Furo theme, which works with Myst and is also used by docs.vtk.org and wasm.itk.org. This incorporates the markdown files in the Documentation/ directory. It renders a clean build without warnings. A few changes were required for to avoid warknings, e.g. header specifications and cross-link specifications. Symlinks were created at the top level for CODE_OF_CONDUCT.md and CONTRIBUTING.md, but these should be replace by real files with links to the rendered content once published for GitHub access. Co-authored-by: Jean-Christophe Fillion-Robin --- .readthedocs.yml | 20 + CODE_OF_CONDUCT.md | 435 +--- CONTRIBUTING.md | 376 +--- Documentation/Releases/README.md | 3 - Documentation/docs/.gitignore | 2 + Documentation/docs/Makefile | 20 + Documentation/docs/README.md | 18 + .../_static/icon/android-chrome-192x192.png | Bin 0 -> 8102 bytes .../_static/icon/android-chrome-512x512.png | Bin 0 -> 28046 bytes .../docs/_static/icon/apple-touch-icon.png | Bin 0 -> 7495 bytes .../docs/_static/icon/browserconfig.xml | 9 + .../docs/_static/icon/favicon-16x16.png | Bin 0 -> 872 bytes .../docs/_static/icon/favicon-32x32.png | Bin 0 -> 1632 bytes Documentation/docs/_static/icon/favicon.ico | Bin 0 -> 15086 bytes .../docs/_static/icon/html_head_content.txt | 9 + .../docs/_static/icon/mstile-150x150.png | Bin 0 -> 5145 bytes .../docs/_static/icon/safari-pinned-tab.svg | 118 ++ .../docs/_static/icon/site.webmanifest | 19 + .../docs/_static/itk-logo-low-res.png | Bin 0 -> 10160 bytes Documentation/docs/_static/itk-logo.svg | 1 + Documentation/docs/conf.py | 47 + .../{ => docs/contributing}/GitCheatSheet.pdf | Bin .../{ => docs/contributing}/GitCheatSheet.tex | 0 .../docs/contributing/code_of_conduct.md | 454 ++++ .../contributing/content-link-upload.png} | Bin .../{Data.md => docs/contributing/data.md} | 17 +- .../contributing/enforcement.md} | 18 +- .../contributing/git_help.md} | 4 +- Documentation/docs/contributing/index.md | 388 ++++ .../contributing/itk-testing-data.png} | Bin .../contributing/motivation.md} | 2 + .../contributing/reporting.md} | 2 +- .../contributing/updating_third_party.md} | 4 +- .../contributing/upload_binary_data.md} | 6 +- .../{Download.md => docs/download.md} | 4 +- Documentation/docs/index.md | 47 + Documentation/docs/learn/courses.md | 24 + Documentation/docs/make.bat | 35 + .../{Releases => docs/releases}/1.0.md | 4 +- .../{Releases => docs/releases}/1.8.md | 42 +- .../{Releases => docs/releases}/2.0.md | 24 +- .../{Releases => docs/releases}/2.2.md | 3 +- .../{Releases => docs/releases}/2.4.md | 0 .../{Releases => docs/releases}/2.6.md | 0 .../{Releases => docs/releases}/2.8.md | 3 +- .../{Releases => docs/releases}/3.0.md | 0 .../{Releases => docs/releases}/3.12.md | 0 .../{Releases => docs/releases}/3.14.md | 0 .../{Releases => docs/releases}/3.16.md | 0 .../{Releases => docs/releases}/3.18.md | 0 .../{Releases => docs/releases}/3.2.md | 0 .../{Releases => docs/releases}/3.20.md | 0 .../{Releases => docs/releases}/4.0.md | 81 +- .../{Releases => docs/releases}/4.1.md | 0 .../{Releases => docs/releases}/4.10.md | 0 .../{Releases => docs/releases}/4.11.md | 0 .../{Releases => docs/releases}/4.12.md | 0 .../{Releases => docs/releases}/4.13.md | 0 .../{Releases => docs/releases}/4.2.md | 3 - .../{Releases => docs/releases}/4.3.md | 4 +- .../{Releases => docs/releases}/4.4.md | 0 .../{Releases => docs/releases}/4.5.md | 0 .../{Releases => docs/releases}/4.6.md | 0 .../{Releases => docs/releases}/4.7.md | 0 .../{Releases => docs/releases}/4.8.md | 0 .../{Releases => docs/releases}/4.9.md | 0 .../{Releases => docs/releases}/5.0.md | 0 .../{Releases => docs/releases}/5.0a01.md | 2 +- .../{Releases => docs/releases}/5.0a02.md | 0 .../{Releases => docs/releases}/5.0b01.md | 0 .../{Releases => docs/releases}/5.0b02.md | 0 .../{Releases => docs/releases}/5.0b03.md | 0 .../{Releases => docs/releases}/5.0rc01.md | 0 .../{Releases => docs/releases}/5.0rc02.md | 0 .../{Releases => docs/releases}/5.1.md | 0 Documentation/docs/releases/5.2.md | 1807 ++++++++++++++++ .../{Releases => docs/releases}/5.3.md | 4 +- .../{Releases => docs/releases}/5.3rc01.md | 4 +- .../{Releases => docs/releases}/5.3rc02.md | 4 +- .../{Releases => docs/releases}/5.3rc03.md | 4 +- .../{Releases => docs/releases}/5.3rc04.md | 2 + Documentation/docs/releases/5.4rc01.md | 1873 +++++++++++++++++ Documentation/docs/releases/index.md | 56 + Documentation/docs/requirements.txt | 6 + 84 files changed, 5053 insertions(+), 955 deletions(-) create mode 100644 .readthedocs.yml mode change 100644 => 120000 CODE_OF_CONDUCT.md mode change 100644 => 120000 CONTRIBUTING.md delete mode 100644 Documentation/Releases/README.md create mode 100644 Documentation/docs/.gitignore create mode 100644 Documentation/docs/Makefile create mode 100644 Documentation/docs/README.md create mode 100644 Documentation/docs/_static/icon/android-chrome-192x192.png create mode 100644 Documentation/docs/_static/icon/android-chrome-512x512.png create mode 100644 Documentation/docs/_static/icon/apple-touch-icon.png create mode 100644 Documentation/docs/_static/icon/browserconfig.xml create mode 100644 Documentation/docs/_static/icon/favicon-16x16.png create mode 100644 Documentation/docs/_static/icon/favicon-32x32.png create mode 100644 Documentation/docs/_static/icon/favicon.ico create mode 100644 Documentation/docs/_static/icon/html_head_content.txt create mode 100644 Documentation/docs/_static/icon/mstile-150x150.png create mode 100644 Documentation/docs/_static/icon/safari-pinned-tab.svg create mode 100644 Documentation/docs/_static/icon/site.webmanifest create mode 100644 Documentation/docs/_static/itk-logo-low-res.png create mode 100644 Documentation/docs/_static/itk-logo.svg create mode 100644 Documentation/docs/conf.py rename Documentation/{ => docs/contributing}/GitCheatSheet.pdf (100%) rename Documentation/{ => docs/contributing}/GitCheatSheet.tex (100%) create mode 100644 Documentation/docs/contributing/code_of_conduct.md rename Documentation/{CMakeW3ExternalDataUpload.png => docs/contributing/content-link-upload.png} (100%) rename Documentation/{Data.md => docs/contributing/data.md} (91%) rename Documentation/{CodeOfConduct/Enforcement.md => docs/contributing/enforcement.md} (97%) rename Documentation/{GitHelp.md => docs/contributing/git_help.md} (91%) create mode 100644 Documentation/docs/contributing/index.md rename Documentation/{ITK-testing-data.png => docs/contributing/itk-testing-data.png} (100%) rename Documentation/{CodeOfConduct/Motivation.md => docs/contributing/motivation.md} (99%) rename Documentation/{CodeOfConduct/Reporting.md => docs/contributing/reporting.md} (98%) rename Documentation/{Maintenance/UpdatingThirdParty.md => docs/contributing/updating_third_party.md} (95%) rename Documentation/{UploadBinaryData.md => docs/contributing/upload_binary_data.md} (97%) rename Documentation/{Download.md => docs/download.md} (97%) create mode 100644 Documentation/docs/index.md create mode 100644 Documentation/docs/learn/courses.md create mode 100644 Documentation/docs/make.bat rename Documentation/{Releases => docs/releases}/1.0.md (97%) rename Documentation/{Releases => docs/releases}/1.8.md (93%) rename Documentation/{Releases => docs/releases}/2.0.md (94%) rename Documentation/{Releases => docs/releases}/2.2.md (99%) rename Documentation/{Releases => docs/releases}/2.4.md (100%) rename Documentation/{Releases => docs/releases}/2.6.md (100%) rename Documentation/{Releases => docs/releases}/2.8.md (99%) rename Documentation/{Releases => docs/releases}/3.0.md (100%) rename Documentation/{Releases => docs/releases}/3.12.md (100%) rename Documentation/{Releases => docs/releases}/3.14.md (100%) rename Documentation/{Releases => docs/releases}/3.16.md (100%) rename Documentation/{Releases => docs/releases}/3.18.md (100%) rename Documentation/{Releases => docs/releases}/3.2.md (100%) rename Documentation/{Releases => docs/releases}/3.20.md (100%) rename Documentation/{Releases => docs/releases}/4.0.md (84%) rename Documentation/{Releases => docs/releases}/4.1.md (100%) rename Documentation/{Releases => docs/releases}/4.10.md (100%) rename Documentation/{Releases => docs/releases}/4.11.md (100%) rename Documentation/{Releases => docs/releases}/4.12.md (100%) rename Documentation/{Releases => docs/releases}/4.13.md (100%) rename Documentation/{Releases => docs/releases}/4.2.md (99%) rename Documentation/{Releases => docs/releases}/4.3.md (99%) rename Documentation/{Releases => docs/releases}/4.4.md (100%) rename Documentation/{Releases => docs/releases}/4.5.md (100%) rename Documentation/{Releases => docs/releases}/4.6.md (100%) rename Documentation/{Releases => docs/releases}/4.7.md (100%) rename Documentation/{Releases => docs/releases}/4.8.md (100%) rename Documentation/{Releases => docs/releases}/4.9.md (100%) rename Documentation/{Releases => docs/releases}/5.0.md (100%) rename Documentation/{Releases => docs/releases}/5.0a01.md (99%) rename Documentation/{Releases => docs/releases}/5.0a02.md (100%) rename Documentation/{Releases => docs/releases}/5.0b01.md (100%) rename Documentation/{Releases => docs/releases}/5.0b02.md (100%) rename Documentation/{Releases => docs/releases}/5.0b03.md (100%) rename Documentation/{Releases => docs/releases}/5.0rc01.md (100%) rename Documentation/{Releases => docs/releases}/5.0rc02.md (100%) rename Documentation/{Releases => docs/releases}/5.1.md (100%) create mode 100644 Documentation/docs/releases/5.2.md rename Documentation/{Releases => docs/releases}/5.3.md (99%) rename Documentation/{Releases => docs/releases}/5.3rc01.md (99%) rename Documentation/{Releases => docs/releases}/5.3rc02.md (99%) rename Documentation/{Releases => docs/releases}/5.3rc03.md (99%) rename Documentation/{Releases => docs/releases}/5.3rc04.md (99%) create mode 100644 Documentation/docs/releases/5.4rc01.md create mode 100644 Documentation/docs/releases/index.md create mode 100644 Documentation/docs/requirements.txt diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000000..2a0aed8a232 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,20 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3.11" + apt_packages: + - fonts-roboto + +sphinx: + configuration: Documentation/docs/conf.py + +python: + install: + - requirements: Documentation/docs/requirements.txt diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 8365e71c38a..00000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,434 +0,0 @@ -ITK Community Participation Guidelines -====================================== - -Version 1.0 – Updated July, 2023 - -The [Insight Software Consortium](https://www.insightsoftwareconsortium.org/) -(ISC) as the original copyright holder of the Insight -Toolkit (ITK) has adopted the following Code of -Conduct for ITK. - -Purpose -------- - -The primary goal of the ITK community is to be inclusive of the largest number -of contributors, with the most varied and diverse backgrounds. Please read our -[Motivation](Documentation/CodeOfConduct/Motivation.md) statement. - -Our community is built upon [values](#our-values), and we welcome and encourage -members to [lead by example](#lead-by-example). However, we are aware that we -must ensure a safe, welcoming and productive environment, where all people -should feel safe to participate, introduce new ideas and inspire others. Hence, -we acknowledge the importance of providing mechanisms for participants to -[report](Documentation/CodeOfConduct/Reporting.md) [unacceptable behavior](#unacceptable-behavior), and the -responsibility of the community to [enforce](Documentation/CodeOfConduct/Enforcement.md) these guidelines. - -Our Values ----------- - -The following behaviors are expected of all ITK community members: - -### Be open - -We invite anyone to participate in our community. We are accepting of all who -wish to take part in our activities, fostering an environment where anyone can -participate and everyone can make a difference. Members of the community are -expected to be open to collaboration in any aspect of the project, whether it's -on - - * developing cutting-edge features, - * fixing bugs, - * improving documentation, - * adding examples or or enhancing the existing ones, - * improving the testing framework, - * enhancing the code coverage, - * improving the ITK ecosystem with new tools, - * hosting ISC-endorsed events, - * or otherwise. - -We are receptive to constructive comment and criticism; gracefully accept -others' advice, as the experiences and skill sets of other members contribute -to the whole of our efforts. - -Remember that we are different. The strength of our community comes from its -diversity, people from a wide range of backgrounds. Different people have -different perspectives on issues, and all of them may help in finding the most -appropriate solution in each situation. - -We prefer to use public methods of communication for project-related messages, -unless discussing something sensitive (e.g. potential conflicts of interest). -This applies to messages for help or project-related support, too; not only is -a public support request much more likely to result in an answer to a question, -it also ensures that any inadvertent mistakes in answering are more easily -detected and corrected. Please avoid seeking for help privately; asking on -[ITK's Discourse] will increase your chances of getting an answer. - -### Be welcoming - -We strive to be a community that welcomes and supports people of all -backgrounds and identities. Be positive and engaging. Refrain from being -snarky. - -If someone asks for help, it is because they need it. Politely suggest specific -documentation or more appropriate venues where adequate. Avoid aggressive or -vague responses. - -### Be inclusive - -Seek diverse perspectives. Diversity of views and of people on teams powers -innovation, even if it is not always comfortable. Encourage all voices. Help -new perspectives be heard and listen actively. If you find yourself dominating -a discussion, it is especially important to step back and encourage other -voices to join in. Be aware of how much time is taken up by dominant members of -the group. Provide alternative ways to contribute or participate when possible. - -Be inclusive of everyone in an interaction, respecting and facilitating -people's participation whether they are: - - * Remote (on video or phone) - * Non-native language speakers - * Coming from a different culture - * Using pronouns other than "he" or "she" - * Living in a different time zone - * Facing other challenges to participate - -Think about how you might facilitate alternative ways to contribute or -participate. Make way for other voices and listen actively to them. - -### Be civil and considerate - -Your work will be used by other people, and you in turn will depend on the work -of others. Any decision you take will affect users and colleagues, and you -should take those consequences into account when making decisions. Remember -that we are a world-wide community. You may be communicating with someone with -a different primary language or cultural background. - -Members of the community are considerate of their peers. We are thoughtful when -addressing the efforts of others, keeping in mind that often times the labor -was completed simply for the good of the community. - -### Be respectful - -We are respectful of others, their positions, their skills, their commitments, -and their efforts. We are respectful of the volunteer efforts that permeate the -ITK community. We are respectful of the processes set forth in the community, -and we work within them. When we disagree, we are courteous in raising our -issues. - -We *must* be able to speak directly when we disagree and when we think we need -to improve. We cannot withhold hard truths. Doing so respectfully is hard, -doing so when others do not seem to be listening is harder, and hearing such -comments when one is the recipient can be even harder still. We need to be -honest and direct, as well as respectful. - -Value each other's ideas, styles and viewpoints. When we disagree, try to -understand why. Being unable to understand why someone holds a viewpoint does -not mean that they are wrong. Be respectful to differing viewpoints and -experiences. Disagreements, both social and technical, happen all the time and -ITK is no exception. Try to understand where others are coming from, as seeing -a question from their viewpoint may help find a new path forward. Be open to -different possibilities and to being wrong. Be kind in all interactions and -communications, especially when debating the merits of different options. Our -goal should not be to "win" every disagreement or argument. A more productive -goal is to be open to ideas that make our own ideas better. The best solutions -to hard problems rarely come from a single angle. Strive to be an example for -inclusive thinking. "Winning" is when different perspectives make our work -richer and stronger. - -Do not forget that it is human to err: blaming each other does not get us -anywhere, while we can learn from mistakes to find better solutions. - -Most importantly, disagreement is no excuse for poor manners. We might all -experience some frustration now and then, but we cannot allow that frustration -to turn into a personal attack. We do not allow disagreement to persist and -fester leaving others uncertain of the agreed direction. We work together to -resolve conflict, assume good intentions and do our best to act in an empathic -fashion. We work together to resolve conflict, and assume good intentions. We -may all experience some frustration from time to time, but we do not allow -frustration to turn into a personal attack. - -A community where people feel uncomfortable or threatened is not a productive -one. - -### Be collaborative - -What we produce is a complex whole made of many parts, it is the sum of many -efforts, long working hours, personal endeavors and sleepless nights. -Collaboration between teams that each have their own goal and vision is -essential; for the whole to be more than the sum of its parts, each part must -make an effort to understand the whole. - -Our work will be used by other people, and in turn we will depend on the work -of others. When we make something for the benefit of the project, we are -willing to explain to others how it works, so that they can build on the work -to make it even better. Any decision we make will affect users and colleagues, -and we take those consequences seriously when making decisions. - -Collaboration reduces redundancy and improves the quality of our work. -Internally and externally, we celebrate good collaboration. Wherever possible, -we work closely with upstream projects and others in the free software -community to coordinate our efforts. We prefer to work transparently and -involve interested parties as early as possible. - -We recognize that the project works better when we trust the teams closest to a -problem to make the decision for the project. We strive to find common ground, -and failing that, the matter can be escalated to the ITK governance structure -represented by the ISC members and its designated leaders who can review the -decision, arbitrate and provide clarity and direction. Ultimately, if a -decision has been taken by the people responsible for it, and is supported by -the project governance, it will stand. None of us expects to agree with every -decision, and we value highly the willingness to stand by the project and help -it deliver even on the occasions when we ourselves may prefer a different -route. - -We value discussion, data, decisiveness and consensus. We gather opinions, data -and commitments from concerned parties before taking a decision. We expect -leaders to help teams come to a decision in a reasonable time, to seek guidance -or be willing to take the decision themselves when consensus is lacking, and to -take responsibility for implementation. - -The poorest decision of all is no decision: clarity of direction has value in -itself. Sometimes all the data are not available, or consensus is elusive. A -decision must still be made because it enables the project as a whole to move -forward faster and to adapt to times. There is no guarantee of a perfect -decision every time - we prefer to err, learn, and err less in future than to -postpone action indefinitely. - -Resoluteness in decisions demands considerateness; take bold decisions, but do -so mindful of the challenges they present for other community members and the -use of ITK itself across different projects, and work to soften the impact of -those decisions on them. Communicating changes and their reasoning clearly and -early on is as important as the implementation of the change itself. - -### Be careful in the words that we choose - -We are careful and respectful in our communication and we take responsibility -for our own speech. Be kind to others. Do not insult or put down other -participants. We will not accept harassment or other exclusionary behavior. - -### Take responsibility for our words and our actions - -Be aware of your impact and how intense interactions may be affecting people. -Be direct, constructive and positive. We can all make mistakes; when we do, we -take responsibility for your impact and your mistakes - if someone says they -have been harmed through your words or actions, listen carefully, apologize -sincerely, and correct the behavior going forward. If someone has been harmed -or offended, we listen carefully and respectfully, and work to right the wrong. - -A simple apology can go a long way. It can often de-escalate a situation, and -telling someone that you are sorry is an act of empathy that does not -automatically imply an admission of guilt. - -### Be concise - -Value each other's time. Keep in mind that what you write once will be read -by hundreds of persons. Writing a short message means people can understand the -conversation as efficiently as possible. Messages that are brief and to the -point take more time to write, but are repaid many times over when other -members of the list make the same effort. Short messages should always strive -to be empathetic, welcoming, friendly and patient. When a long explanation is -necessary, consider adding a summary. - -Try to bring new ideas to a conversation so that each message adds something -unique to the thread, keeping in mind that the rest of the thread still -contains the other messages with arguments that have already been made. - -Try to stay on topic, especially in discussions that are already fairly large. -If you must change the topic, start a new thread. Also, avoid flooding the list -with long threads by reading the entire thread first, instead of responding -quickly to many emails in a short period of time. - -### Be inquisitive - -Nobody knows everything! We will try hard to be responsive and helpful. - -### Moderate your expectations - -Please respect that community members choose how they spend their time in the -project. A thoughtful question about your expectations is preferable to demands -for another person's time. Respect the time and energy of long-time community -members. - -### Ask for help when unsure - -Nobody is expected to be perfect in the ITK community. Asking questions early, -and bringing discussions to the table through the appropriate channels, avoids -many problems (whether they are technical, such as design flaws, technical -debt, etc., or intellectual, etc.) later, so questions are encouraged, though -they may be directed to the appropriate forum. Those who are asked should be -responsive and helpful. - -We do our best to answer to all questions and concerns in a timely manner. But -we may fail to do so sometimes. Please, assume good faith and do not feel -discouraged. It may be a matter of asking incomplete, poorly formatted or too -broad or generic questions; some other times, the questions may have been -answered previously. Please take some time by doing research in FAQs, -documentation and other ITK resources, as well as with search engines before -asking questions. - -We welcome new members, and love to see them becoming important people in our -community. - -### Step down considerately - -When somebody leaves or disengages from the ITK project, we ask that they do so -in a way that minimizes disruption to the Project. They should tell people they -are leaving and take the proper steps to ensure that others can pick up where -they left off. - -Lead By Example ---------------- - -We all lead by example, in debate and in action. We encourage new participants -to feel empowered to lead, to take action, and to experiment when they feel -innovation could improve the project. Leadership can be exercised by anyone -simply by taking action, there is no need to wait for recognition when the -opportunity to lead presents itself. - -To err is human; whenever we make a mistake, we take responsibility for it, and -we work to right the wrong. - -We encourage everyone to participate and are committed to building a community -for all. Although we may not be able to satisfy everyone, we all agree that -everyone is equal. Whenever a participant has made a mistake, we expect them to -take responsibility for it. - -Unacceptable Behavior ---------------------- - -Code of Conduct violations reduce the value of the community for everyone and -we take them seriously. - -The following behaviors are considered to be unacceptable under these -guidelines: - - * Personal attacks and violent threats or language directed against another - person, including but not limited to offensive comments related to gender, - gender identity and expression, gender identity, sexual orientation, ability, - physical appearance, body, age, race, ethnicity, nationality, language, - religion or otherwise dimension of diversity. - * Sexist, racist, or otherwise discriminatory jokes and insults. - * Deliberate misgendering or use of "dead" or rejected names. - * Unwelcome comments regarding a person's lifestyle choices and practices, - including those related to food, health, parenting, drugs, and employment. - * Derogatory language. - * Sustained disruption of discussion. - * Excessive profanity. Avoid swearwords; people differ greatly in their - sensitivity to swearing. - * Publishing (or threatening to publish) other people's personally - identifying information and/or material ("doxing"). - * Deliberate "outing" of any aspect of a person's identity without their - consent except as necessary to protect other community members or other - vulnerable people from intentional abuse. - * Sharing of non-harassing private communication, such as emails sent - privately or non-publicly, or unlogged forums such as IRC channel history, - without the sender's consent. - -Harassment will not be tolerated in any of its forms either. Specifically: - - * Unwelcome sexual attention or physical contact, including simulated - contact (e.g., textual descriptions like "hug" or "backrub"), or otherwise - creating sexualized environment. - * Posting gratuitous or off-topic sexually explicit or violent material. - * Incitement of violence towards any individual, including encouraging a - person to commit suicide or to engage in self-harm. - * Deliberate intimidation. - * Stalking or following. - * Harassing photography or recording, including logging online activity for - harassment purposes - * Pattern of inappropriate social contact, such as requesting/assuming - inappropriate levels of intimacy with others. - * Continued one-on-one communication after requests to cease. - -Although the above list cannot be exhaustive, we will not tolerate -discrimination based on any of the protected characteristics in our -[Diversity Statement](Documentation/CodeOfConduct/Motivation.md#diversity-statement). - -The relative anonymity (if any) in the discussion forums is no shelter for -unacceptable behavior. - -Influencing Unacceptable Behavior ---------------------------------- - -We will treat advocating for, influencing or encouraging other members to cause -hostility, or leading to any of the above behavior or activities the same way -we treat the activities themselves, and thus the same consequences apply. - -Sharing Data ------------- - -When sharing your testing data, either as an input to an ITK contribution or as -part of a discussion topic or help request, please bear in mind that you must -remove any Personal Identifiable Information (PII) from your images prior to -making them available. Please bear in mind that besides cleaning pixel data, -other meta-data (such as individual attributes when dealing with DICOM files) -may require additional de-identification processes. - -For dealing with DICOM files/medical images, please read the related -documentation (namely, the -[DICOM Supplement 55](ftp://medical.nema.org/medical/dicom/final/sup55_ft.pdf) -and -[DICOM Supplement 142](ftp://medical.nema.org/medical/dicom/final/sup142_ft.pdf)). -If you still need help for de-identifying your images, please ask on [ITK's Discourse]. - -Please, simply avoid using images that, despite having been used in image -analysis and related areas historically (e.g. "Lena"), may be interpreted as -being degrading to part of our community, or reinforcing stereotypes. - -Community members shall not attempt to identify de-identified images. - -Feedback --------- - -Everyone is encouraged to ask questions about these guidelines. We would be -happy to hear suggestions to improve any aspect of this Code of Conduct. - -If you are organizing an event or activity where ITK is a building block, -please reach us for including a policies concerning aspects of ITK. - -Modifications to these Guidelines ---------------------------------- - -The ISC may amend these guidelines in order to adapt to, and may also vary the -associated procedures where appropriate in a particular case. Community -members' agreement to comply with these guidelines will be deemed agreement to -any changes to it. In case ISC amends the guidelines, the new guidelines will -be reachable as a new version of this document. You can sign up for updates by -subscribing to this repository's notifications in your settings. - -License and Attribution ------------------------ - -This document and all associated processes are only possible with the hard work -of many, many ITK community members, and other open-source initiative members. -These guidelines have sought inspiration and have drawn content with -modification from - - * [The Open Source Initiative](https://opensource.org/codeofconduct) - * [GitLab](https://about.gitlab.com/handbook/support/policies/#code-of-conduct) - * [Python](https://www.python.org/psf/codeofconduct/) - * [Django](https://www.djangoproject.com/conduct/reporting/) - * [Scipy](https://docs.scipy.org/doc/scipy//reference/dev/conduct/code_of_conduct.html) - * [Nipype](https://github.com/nipy/nipype/blob/master/CODE_OF_CONDUCT.md) - * [Jupyter](https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md) - * [The Linux Foundation](https://www.linuxfoundation.org/events/code-of-conduct/) - * [Ubuntu](https://www.ubuntu.com/about/about-ubuntu/conduct) - * [Brainhack](https://www.brainhack.org/code-of-conduct.html) - * [Mozilla](https://www.mozilla.org/en-US/about/governance/policies/participation/) - * [Contributor Covenant](https://www.contributor-covenant.org/) - -Additional text from the -[Citizen Code of Conduct](http://citizencodeofconduct.org), the -[Geek Feminism Wiki Harassment Policy contents](https://geekfeminism.wikia.com/wiki/Category:Harassment_policy), -and the -[TODO Group Open Code of Conduct](https://todogroup.org/opencodeofconduct/) -have also been adapted to build this Code of Conduct. - -We are grateful to those projects for contributing these materials under open -licensing terms for us to easily reuse. - -All content on this page is licensed under a [Creative Commons] **Attribution** -license. - -[Creative Commons]: https://creativecommons.org/licenses/ -[ITK's Discourse]: https://discourse.itk.org/ diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 120000 index 00000000000..a80ce0ba02d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1 @@ +./Documentation/docs/contributing/code_of_conduct.md \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 57fc3b8ae28..00000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,375 +0,0 @@ -Contributing to ITK -=================== - -Welcome to the Insight Toolkit (ITK) ! We are excited that you are here! Join us as a contributing member of the community. - -![Contributor graph](https://contributor-graph-api.apiseven.com/contributors-svg?chart=contributorOverTime&repo=InsightSoftwareConsortium/ITK) - -This article documents how to contribute improvements to ITK. - -For a *quick start guide*, see the [ITK Git Cheatsheet]. - -If you are looking for an issue to resolve that will help the ITK community, see the *good first issue* label in the [ITKSphinxExamples](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/labels/good-first-issue) or [ITK](https://github.com/InsightSoftwareConsortium/ITK/labels/Good%20first%20issue) repositories. - -Setup ------ - -Before you begin, perform initial setup: - - 1. [Register for a GitHub](https://github.com/join) account. - 2. Optionally download our [one page PDF desk reference](https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/master/Documentation/GitCheatSheet.pdf). - 3. Follow the [download instructions] to create a local ITK clone: - -```sh - $ git clone https://github.com/InsightSoftwareConsortium/ITK -``` - - 4. Run the developer setup script [`SetupForDevelopment.sh`] to prepare your - ITK work tree and create Git command aliases used below: - -```sh - $ ./Utilities/SetupForDevelopment.sh -``` - -This script helps configure your GitHub fork remote, Git client-side hooks, -and useful Git aliases. The default Git remote names for your fork and -`InsightSoftwareConsortium/ITK` are `origin` and `upstream`, respectively. -However, other remote names can be used. Note that ITK defines some useful -Git aliases, such as `review-push`, `pr`, `pr-clean`, and `prepush`, through -the [`setup-git-aliases`] script for general Git tasks in ITK. - -Visit the *Pro Git: Setup* resource in [Git Help] for further -information on setting up your local Git environment. - -Workflow --------- - -ITK development uses a branchy workflow based on topic branches. -This corresponds to the *Fork & Pull Model* mentioned in the -[GitHub flow guide]. Our collaboration workflow consists of -three main steps: - - 1. Local Development - * [Update](#update) - * [Create a Topic](#create-a-topic) - 2. Code Review - * [Share a Topic](#share-a-topic) - * [Test a Topic](#test-a-topic) - * [Revise a Topic](#revise-a-topic) - 3. Integrate Changes - * [Merge a Topic](#merge-a-topic) - * [Delete a Topic](#delete-a-topic) - -Update ------- - -Update your local `master` branch: - -```sh - $ git checkout master - $ git pullall -``` - -Create a Topic --------------- - -All new work must be committed on topic branches. Name topics like you might -name functions: concise but precise. A reader should have a general idea of the -feature or fix to be developed given just the branch name. - -To start a new topic branch: - -```sh - $ git fetch upstream -``` - -For new development, start the topic from `upstream/master`: - -```sh - $ git checkout -b my-topic upstream/master -``` - -For release branch fixes, start the topic from `upstream/release`: - -```sh - $ git checkout -b my-topic upstream/release -``` - -(*You may visit the* Pro Git: Basic Branching *resource in [Git Help] for -further information on working with branches.*) - -Edit files and create commits (repeat as needed). Add a prefix to your commit -message (see below). - -```sh - $ edit file1 file2 file3 -``` -(*To add data follow [these instructions](Documentation/Data.md#add-data).*) - -```sh - $ git add file1 file2 file3 - $ git commit -``` - -(*You may visit the* Pro Git: Recording Changes *resource in [Git Help] for -further information on making changes and committing snapshots.*) - -**Note**: *If your change modifies any of the modules in the -`Modules/ThirdParty` directory, please read our -[Updating Third Party] guide.* - -Breaking Changes ----------------- - -Breaking changes are defined in ITK as those changes that introduce changes to -the API of the [major version](https://semver.org/) of the toolkit, and as -such, make a component of the toolkit no longer backwards compatible. Breaking -changes are only allowed in new major releases. Thus, the change may be held -up by the toolkit's maintainers to ensure consistency in the toolkit. Before -making such changes to the code, and considering other options to keep the -code backward-compatible, please either open an -[issue](https://github.com/InsightSoftwareConsortium/ITK/issues/new/choose) -from the appropriate category or discuss the subject in [ITK's Discourse]. If -the change finally is made into a *pull request*, cross-reference the issue -and/or the discussion with the appropriate link. - -Design Changes --------------- - -Design changes should be discussed in [ITK's Discourse]. A -[Design Impact -Report](https://github.com/InsightSoftwareConsortium/ITK/issues/new?labels=type%3ADesign&template=design_impact_report.md) -can also be opened to keep track of the requested change. Design changes need -explicit approval from the toolkit's maintainers. - -Commit Messages ---------------- - -Write your commit messages using the standard prefixes for ITK commit -messages: - - * `BUG:` Fix for runtime crash or incorrect result - * `COMP:` Compiler error or warning fix - * `DOC:` Documentation change - * `ENH:` New functionality - * `PERF:` Performance improvement - * `STYLE:` No logic impact (indentation, comments) - * `WIP:` Work In Progress not ready for merge - -The body of the message should clearly describe the motivation of the commit -(**what**, **why**, and **how**). In order to ease the task of reviewing -commits, the message body should follow the following guidelines: - - 1. Leave a blank line between the subject and the body. - This helps `git log` and `git rebase` work nicely, and allows to smooth - generation of release notes. - 2. Try to keep the subject line below 72 characters, ideally 50. - 3. Capitalize the subject line. - 4. Do not end the subject line with a period. - 5. Use the imperative mood in the subject line (e.g. `STYLE: Change - template parameter name prefix N to V`). - 6. Wrap the body at 80 characters. - 7. Use semantic line feeds to separate different ideas, which improves the - readability. - 8. Be concise, but honor the change: if significant alternative solutions - were available, explain why they were discarded. - 9. If the commit refers to a topic discussed in [ITK's Discourse], or fixes - a regression test, provide the link. If it fixes a compiler error, provide a - minimal verbatim message of the compiler error. If the commit closes an - issue, use the [GitHub issue closing - keywords](https://help.github.com/en/articles/closing-issues-using-keywords). - -Keep in mind that the significant time is invested in reviewing commits and -*pull requests*, so following these guidelines will greatly help the people -doing reviews. - -These guidelines are largely inspired by Chris Beam's -[How to Write a Commit Message](https://chris.beams.io/posts/git-commit/) -post. - -Share a Topic -------------- - -When a topic is ready for review and possible inclusion, share it by pushing -to GitHub and opening a *pull request* on the *InsightSoftwareConsortium/ITK* -upstream repository. - -Checkout the topic if it is not your current branch: - -```sh - $ git checkout my-topic -``` - -Check what commits will be pushed to GitHub for review: - -```sh - $ git prepush -``` - -Push commits in your topic branch for review by the community: - -```sh - $ git review-push --force -``` - -A URL will be provided in the terminal -- visit this url to review the topic -and open a pull request. - -Optionally, discuss the change by opening a topic on [ITK's Discourse]. - -Test a Topic ------------- - -When a topic is submitted, it is tested across the three major platforms -before being merged thanks to the [Azure DevOps Pipelines CI -system](https://azure.microsoft.com/en-ca/services/devops/pipelines/), -as well as the [CDash GitHub -Checks](https://github.com/InsightSoftwareConsortium/ITKGitHubCDashStatus), -and [ITK Coding Style -check](https://github.com/InsightSoftwareConsortium/ITKClangFormatLinterAction). - -If a platform configuration test failure appears to be a false positive, the -test can be re-executed by adding a comment to the pull request with the -content `/azp run `. For example: - -``` - /azp run ITK.Linux -``` - -After the topic has been merged, it is tested on many -platforms and configurations on the [nightly -dashboard](https://open.cdash.org/index.php?project=Insight). - -If tests fail on a submitted topic, see the [Revise a Topic](#revise-a-topic) -step on how to submit a revised version. After a topic is merged, please check -the next day's nightly dashboard to ensure there are not any regressions. If -there are any new warnings or errors, submit a follow-up patch as soon as -possible. - -Revise a Topic --------------- - -Usually, a topic goes through several revisions in the review process. -Once a topic is approved during GitHub review, proceed to the -[next step](#merge-a-topic). - -Checkout the topic if it is not your current branch: - -```sh - $ git checkout my-topic -``` - -To revise the most recent commit on the topic edit files and add changes -normally and then amend the commit: - -```sh - $ git commit --amend -``` - -(*You may visit the* Pro Git: Changing the Last Commit *resource in [Git Help] -for further information on revising and rewriting your commit history.*) - -To revise commits further back on the topic, say the `3`rd commit back: - -```sh - $ git rebase -i HEAD~3 -``` - -(*Substitute the correct number of commits back, as low as `1`.*) - -Follow Git's interactive instructions. - -Return to the [Share a Topic](#share-a-topic) step to share the revised topic. - -(*You may visit the* Pro Git: Changing Multiple Commits *resource in [Git Help] -for further information on changing multiple commits -i.e. not only the last -one, but further back in your history-, and the* Pro Git: Rebasing *resource on -taking all the changes that were committed on one branch and replaying them on -another one.*) - -Merge a Topic -------------- - -**Only authorized developers with GitHub merge permissions execute this step.** - -After a feature topic has been reviewed and approved in GitHub, ITK -maintainers will merge it into the upstream repository via the GitHub user -interface. - -(*If the merge conflicts follow the printed instructions to resolve them.*) - -For bug fixes that are ready to be included in the next patch release, make a -comment on the pull request which states the topic should be merged to the -`release` branch. - -Here are the recommended steps to merge a topic to both `release` and `master` -branches, assuming the topic branch is forked off the `release` branch: - -```sh - $ git checkout release - $ git merge --no-ff my-topic - $ git push upstream release -``` - -and do: - -```sh - $ git checkout master - $ git merge --no-ff release - $ git push upstream master -``` - -to merge the `release` branch back to `master`. - -Delete a Topic --------------- - -After a topic has been merged upstream, delete your local branch for the topic. - -Checkout and update the `master` branch: - -```sh - $ git checkout master - $ git pullall -``` - -Delete the local topic branch: - -```sh - $ git branch -d my-topic -``` - -The `branch -d` command works only when the topic branch has been correctly -merged. Use `-D` instead of `-d` to force the deletion of an unmerged topic -branch (*warning*: you could lose commits). - -Citation Addition ------------------ - -To connect your [ORCID](https://orcid.org/) profile to the [ITK Zenodo -citation](https://zenodo.org/record/3592082), add your name and ORCID iD to -the *ITK/.zenodo* file after contributing 10 or more commits. - -More Information ----------------- - -- [ITK Software Guide, Book 1, Part III: Development Guidelines](https://itk.org/ItkSoftwareGuide.pdf) -- General [Git Help] -- [GitHub flow guide] -- [ITK Git Cheatsheet] -- [Updating Third Party] libraries distributed with ITK -- [Handling testing data](Documentation/Data.md) -- [Uploading binary data](Documentation/UploadBinaryData.md) - -[ITK Git Cheatsheet]: Documentation/GitCheatSheet.pdf -[download instructions]: Documentation/Download.md -[Git Help]: Documentation/GitHelp.md -[Updating Third Party]: Documentation/Maintenance/UpdatingThirdParty.md - -[`SetupForDevelopment.sh`]: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Utilities/SetupForDevelopment.sh -[`setup-git-aliases`]: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Utilities/GitSetup/setup-git-aliases - -[ITK's Discourse]: https://discourse.itk.org/ - -[Git]: https://git-scm.com -[GitHub flow guide]: https://guides.github.com/introduction/flow/index.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 120000 index 00000000000..205abde9d80 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +Documentation/docs/contributing/index.md \ No newline at end of file diff --git a/Documentation/Releases/README.md b/Documentation/Releases/README.md deleted file mode 100644 index f2383451592..00000000000 --- a/Documentation/Releases/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# ITK Releases - -ITK release notes. diff --git a/Documentation/docs/.gitignore b/Documentation/docs/.gitignore new file mode 100644 index 00000000000..1fabdc36815 --- /dev/null +++ b/Documentation/docs/.gitignore @@ -0,0 +1,2 @@ +_build/ +apidocs/ diff --git a/Documentation/docs/Makefile b/Documentation/docs/Makefile new file mode 100644 index 00000000000..d4bb2cbb9ed --- /dev/null +++ b/Documentation/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/Documentation/docs/README.md b/Documentation/docs/README.md new file mode 100644 index 00000000000..ba4539793bc --- /dev/null +++ b/Documentation/docs/README.md @@ -0,0 +1,18 @@ +# Sphinx Documentation + +This is the source of the [ITK docs](docs.itk.org) website. + +## Build environment + +To compile the document locally create a python virtual environment and install the required packages. + +For example in Linux / macOS: + +``` +python -m venv env +source env/bin/activate +pip install -r requirements.txt +``` + +Use `make html` in this directory to build the documentation. +Open `_build/html/index.html` in your browser to inspect the result. diff --git a/Documentation/docs/_static/icon/android-chrome-192x192.png b/Documentation/docs/_static/icon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e8a5d6a303758008c8b2ada669049cac90d358 GIT binary patch literal 8102 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 G|NB3T39wcG literal 0 HcmV?d00001 diff --git a/Documentation/docs/_static/icon/apple-touch-icon.png b/Documentation/docs/_static/icon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2057560659e438171f785f2223433f2b895feaf9 GIT binary patch literal 7495 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 MqNYN%oMrg`09f88%>V!Z literal 0 HcmV?d00001 diff --git a/Documentation/docs/_static/icon/browserconfig.xml b/Documentation/docs/_static/icon/browserconfig.xml new file mode 100644 index 00000000000..a25e942c2a5 --- /dev/null +++ b/Documentation/docs/_static/icon/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/Documentation/docs/_static/icon/favicon-16x16.png b/Documentation/docs/_static/icon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c933b7699eb48e8b79c6f31fa96f5920b02e3a7f GIT binary patch literal 872 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>)3o+A+kX7*FuR4v$dA>*-of)WbteQim#)0opcp|mWp zQG-)jvFrPk3pZZ4vKuTpZ#-|d<;4Z} ztJoFQ<=GXbc-3|HE@fuX&^fwgt}4)Q#w2fdmzY;K7^VX`>?NMQuI$gbSVV=5k4^P2 z1`0KMx;TbNTux3{z?AUh*~6#FNoi>bX=!PUNo-+tjE;(lf`NgCg`A$6nQ3fhl985` ztgfo5qM@dxyuN7*)XH>oWn*n?nVprBh0`W5w6C1Gvvujzt-WjK+IF0O`QXKqH;-OD zd-w3=Q{JG1FCV{tE-xSys3B$S*D>6hFH!(8scMCFJ7N5)rbdG9?YeY#( zVo9o1a#1RfVlXl=GS)RT&^0g#F*39=w6roc)HX1%GBC(?3ur{qkei>9nO2EggOv0O zTcC#Us*s41pu}>8f};Gi%$!t(lFEWqh0KDIWCn(cIgdZ_a1@4VXq@stea7=?5CgL^ zw_Y;0u(GiCWD#az1(ybs!zs+ln?n>%-?(z($eANDN7zp{cr5VJV|XPlSn|oqbSlsa N22WQ%mvv4FO#saKD^maf literal 0 HcmV?d00001 diff --git a/Documentation/docs/_static/icon/favicon-32x32.png b/Documentation/docs/_static/icon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..37c13a944b91f0d46f3d143b5d9b5b586d2906fa GIT binary patch literal 1632 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081JjNGpAc7|f^X}Eziklx zK1KH1Mo~8Z9yY(;?-S&{EtU8_Tl)JFiSKiz85qud@0Vkc`v3nw1G{4`YxsP2yR>iX zg@C%CXpPvn4H93s>weoP0TS6LdU~!7gXa`hplMijK#_ zTl(Kz3AOOLZ)?Q<@8)GNNo8}d1}pC6Fb!mPDTZnUs+=$NW3^aiO|VR8)1`?z{|_-R zTBWjiHG&ib^s`&XvAI`46n~#3{bPl=Q9^lJVGz4rI-5@$NIZNVyG=4wJuDaxcbS}- zs{3T6-1Aj3><-xw_XDE?qy?-?Ah1Iryy49OYk%7S?8SW#Xb`B#SL}&y~V7EVbzIuzMRSwQ8!XmFfvrsFc1{iHc@Bd&c1N#&cmOFZhu~}>dS|B?_W>6`6#}t zl$k?7TuPzy^Q@gOU;TY?=t14(gW^n$3zZEUKIW<=T{}6)SuS(xU1|9#zf5^*-+XS$ z|N7|lTtVZNwF1`sfb1oK9VdG;{{fmLp(Vi}jAr_~T6C_w& znB5Wu0}a*GVlJK0c_cI`=#tT;44_-V;czT8{?7^c~&)z+J`Ly`Qby6 zf?^xpUGD9c7nK#378jU5VMd9$<D1+Gb=wzjUi~}IKR@2V zUV9Q(+&)g>`F^v`*r&d_o5^%J{m$08nYHC&lbF)d{@pB|cXqCM{lP=KyII8bckV8^ z`Du5ecErO=+Tm;CHkaM~#Vc)|yY1$t(%awW$y%4+y}Pz6U_<)*eSg{c%?Xx#KKQoH!DeYvG<%r#tQ~I4tJ5SUpe0}Wx!p~xI%5IEO3=Ar{_1Anmn*@L% zuUg_7QIe8al4_M)lnSI6j0}v7bqx)44NO9e46O_;txOHI4GgRd46@w<8c{Ul=BH$) zRpQnlCH=w{s3E*6B%&lJv0R~`C_gPTCsm=OvLICRr~FT! z@q8M@z^u%zm&`4!EbKj5gjra@rNQKI3bXR&5QWn>uADe>=7`J@_R|d>3%v9gUWp5q Ud~!0K3bca3)78&qol`;+0EXjnQUCw| literal 0 HcmV?d00001 diff --git a/Documentation/docs/_static/icon/favicon.ico b/Documentation/docs/_static/icon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8027028a14591a854e226223b27499b3306bfbcb GIT binary patch literal 15086 zcmeHN3s4nD79BulP%)z6^Z32@SOu*p3Vu;RAbwCm1XJp+qDBS9FPey75b=ZZ2Ltf~ zqDH|V2qZBnD{G9drM0>nO*AIaxER;yx|j$OW**4Wd+y^6HCkFgw06tNOx1a}yKi^j z+jqKq`rX?cXU17@US1rio;&2uaf3LH)9X!n8;<)2%4|T1AKi}Ql2D;1>YxetHbCXZ zr+X7oe^m>p7EmpqT0pgcY5~;(ss&UFs21S3xx)oMYPc|R%XmICZ33SF#GB}wuY!G` zzw11IAtNP}KMuW_35}qUuY&%tz5n7sAr<<5qtO2sr2GFC{ate;GoUXJ3WPc5J`N6B zzO`3IsCf|j90vrahFJ~qOu1_Bu$|$b6URmQ2^|*&3LfD35#NM?pytGn^b>5Cj}$!8 zC-5T`{J?#GvgE;wS~*%s1+NM`+5Ue=x+}G9>toWtC+H%e%sIEdVnkeFHuV1qeLhZ` zVA+r!YI(^s^=gV^euEG74;wnq_ZQ;8KLz~9gtMTp8To#~fTeE=3DEI-l%WqJ?k11t z`$7Np8-w}nD5E(e>%RwSv$pE~bbaV=<+z>o8n-IfFMWdLx9Oo4Y|BI&HZ^9MLA&SY zYP%A{JJbeqxFfJ8Ig~F}={9p>AU$#`w1(y9_^iTnc0=pG23zj>3<9Q_mO2_9!!fH!zW{o zND5tydkAzl$M}|R4&iqycnsqyTsM}FK$&vx(^%}~eqWSow@KE{yQDOSB15fh8R=ff zdKFw?lj33vyuXCc12>Z{Mv=rGZ#j`H!$@ivp;Guu4DVMTI@l! z-m;82enQaNAbvIE(>#!E+B~1J2Bu<<&0GR-t!Eyl7N4bYyL_VGP*e~f@6^XQRzq}ATQkabL z(5JJA0z&Ik8_gTPq8_?<$3W`MZ@ zlz+NR$$wtDxedPA#p!&26|0(8kU*a?~?E|9eXJwDdp# z(0oq|ce&I@wSZ~?)dIf<3(WErc=!$bz`qj?kl%{@U@shVY_09!FVn3UC6M1u_Qh^# zOGO$A{zB1o3X@*9RC3bPDNbW&Z9+!3AlG zDG$pE=exm|?VB*x=<}m^E%{$t>+iLN{E1HQH)cjgPv4OdYF3>R*5Q|+_+7_3A7T9# zy}@-^Im#GEx`#d=0%N=B+gl+1y8y8n@_kZFpmctKFefRb+2?#0W%OBU)3Y_)X7u_g z`r6?5Oy*Mb05Pumusn{l#Cv@gvSeSdF~*Dd?KJqm$tTRfyAFFK!sq=x<$=?Hb(@5v z@_>}TO!mzETPf7WG-!RFgvUm2^ySX#0OVm)a{*Xn!VUl$t zGmLkfF-&m9yv#=4U@9jbf#yG5FK^R>xSCe8yK(-yDIU42BD|ST+Hq!IEZ*$&8FP*r z!08ajp%@JL(yQR#9T+~)${O#S;xw|az8dKofOOaZw9U^;+7>f&|BZ(ed*oeX4kb0r zv)k{l3QadO=z=@Fkuwm)L1=~j4yMXZ>|HchhM1>gP&^mQMg*dfW5ZTv5! z&j1u3qBU>}`_DSeQ#tleYrx@IIv}3Y5pj`)j{C*Su0`T?$3pQ3#B+YMFOlk8kK8@8 zbnfsQh=@_cc#sf({IwLqPvx?BF?wTsmfsou1dZ5`)(GD5)`OOxXIZSAWdj|CV>kT|{&&(yK zPSCyg$ZgfMK|PWty6FO=6NID?OE;XKoN&jq6MY|X&%zVm&67yeJ%A_L$zDZ0CI4(`>6?=8< + + + + + + + + \ No newline at end of file diff --git a/Documentation/docs/_static/icon/mstile-150x150.png b/Documentation/docs/_static/icon/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..23b411a57c94983ddebf12659225401d31d22819 GIT binary patch literal 5145 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 PBR~eaMmiN*PXGKDj9s5k literal 0 HcmV?d00001 diff --git a/Documentation/docs/_static/icon/safari-pinned-tab.svg b/Documentation/docs/_static/icon/safari-pinned-tab.svg new file mode 100644 index 00000000000..9e18318928e --- /dev/null +++ b/Documentation/docs/_static/icon/safari-pinned-tab.svg @@ -0,0 +1,118 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + + + + + diff --git a/Documentation/docs/_static/icon/site.webmanifest b/Documentation/docs/_static/icon/site.webmanifest new file mode 100644 index 00000000000..1edcfeffee8 --- /dev/null +++ b/Documentation/docs/_static/icon/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/Documentation/docs/_static/itk-logo-low-res.png b/Documentation/docs/_static/itk-logo-low-res.png new file mode 100644 index 0000000000000000000000000000000000000000..7d9b229550a3b0164aaa80e60b4f9f747a94fb5e GIT binary patch literal 10160 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 literal 0 HcmV?d00001 diff --git a/Documentation/docs/_static/itk-logo.svg b/Documentation/docs/_static/itk-logo.svg new file mode 100644 index 00000000000..e1d8b7abfed --- /dev/null +++ b/Documentation/docs/_static/itk-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Documentation/docs/conf.py b/Documentation/docs/conf.py new file mode 100644 index 00000000000..4223eb7e50c --- /dev/null +++ b/Documentation/docs/conf.py @@ -0,0 +1,47 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +from datetime import date + +project = 'ITK' +copyright = f'{date.today().year}, NumFOCUS' +author = 'Insight Software Consortium' + +extensions = [ + 'sphinx.ext.napoleon', + 'myst_parser', + 'sphinx.ext.intersphinx', + 'sphinx_copybutton', + 'sphinxext.opengraph', + 'sphinx_design', +] + +myst_enable_extensions = ["colon_fence", "fieldlist"] + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'README.md'] + + +intersphinx_mapping = { + "python": ("https://docs.python.org/3/", None), + "numpy": ("https://numpy.org/doc/stable", None), +} + +html_theme = 'furo' +html_static_path = ['_static'] +html_logo = "_static/itk-logo-low-res.png" +html_favicon = "_static/icon/favicon.ico" +html_title = f"{project} documentation" + +# Furo options +html_theme_options = { + "top_of_page_button": "edit", + "source_repository": "https://github.com/InsightSoftwareConsortium/ITK/", + "source_branch": "master", + "source_directory": "Documentation/docs", +} diff --git a/Documentation/GitCheatSheet.pdf b/Documentation/docs/contributing/GitCheatSheet.pdf similarity index 100% rename from Documentation/GitCheatSheet.pdf rename to Documentation/docs/contributing/GitCheatSheet.pdf diff --git a/Documentation/GitCheatSheet.tex b/Documentation/docs/contributing/GitCheatSheet.tex similarity index 100% rename from Documentation/GitCheatSheet.tex rename to Documentation/docs/contributing/GitCheatSheet.tex diff --git a/Documentation/docs/contributing/code_of_conduct.md b/Documentation/docs/contributing/code_of_conduct.md new file mode 100644 index 00000000000..b48b0681a7b --- /dev/null +++ b/Documentation/docs/contributing/code_of_conduct.md @@ -0,0 +1,454 @@ +ITK Community Participation Guidelines +====================================== + +Version 1.0 – Updated July, 2023 + +The [Insight Software Consortium](https://www.insightsoftwareconsortium.org/) +(ISC) as the original copyright holder of the Insight +Toolkit (ITK) has adopted the following Code of +Conduct for ITK. + + +```{toctree} +:hidden: +:maxdepth: 1 +:caption: Code of Conduct Details + +motivation +reporting +enforcement +``` + +(purpose)= +Purpose +------- + +The primary goal of the ITK community is to be inclusive of the largest number +of contributors, with the most varied and diverse backgrounds. Please read our +[Motivation](motivation.md) statement. + +Our community is built upon [values](#our-values), and we welcome and encourage +members to [lead by example](#lead-by-example). However, we are aware that we +must ensure a safe, welcoming and productive environment, where all people +should feel safe to participate, introduce new ideas and inspire others. Hence, +we acknowledge the importance of providing mechanisms for participants to +[report](reporting.md) [unacceptable behavior](#unacceptable-behavior), and the +responsibility of the community to [enforce](enforcement.md) these guidelines. + +(our-values)= +Our Values +---------- + +The following behaviors are expected of all ITK community members: + +### Be open + +We invite anyone to participate in our community. We are accepting of all who +wish to take part in our activities, fostering an environment where anyone can +participate and everyone can make a difference. Members of the community are +expected to be open to collaboration in any aspect of the project, whether it's +on + + * developing cutting-edge features, + * fixing bugs, + * improving documentation, + * adding examples or or enhancing the existing ones, + * improving the testing framework, + * enhancing the code coverage, + * improving the ITK ecosystem with new tools, + * hosting ISC-endorsed events, + * or otherwise. + +We are receptive to constructive comment and criticism; gracefully accept +others' advice, as the experiences and skill sets of other members contribute +to the whole of our efforts. + +Remember that we are different. The strength of our community comes from its +diversity, people from a wide range of backgrounds. Different people have +different perspectives on issues, and all of them may help in finding the most +appropriate solution in each situation. + +We prefer to use public methods of communication for project-related messages, +unless discussing something sensitive (e.g. potential conflicts of interest). +This applies to messages for help or project-related support, too; not only is +a public support request much more likely to result in an answer to a question, +it also ensures that any inadvertent mistakes in answering are more easily +detected and corrected. Please avoid seeking for help privately; asking on +[ITK's Discourse] will increase your chances of getting an answer. + +### Be welcoming + +We strive to be a community that welcomes and supports people of all +backgrounds and identities. Be positive and engaging. Refrain from being +snarky. + +If someone asks for help, it is because they need it. Politely suggest specific +documentation or more appropriate venues where adequate. Avoid aggressive or +vague responses. + +### Be inclusive + +Seek diverse perspectives. Diversity of views and of people on teams powers +innovation, even if it is not always comfortable. Encourage all voices. Help +new perspectives be heard and listen actively. If you find yourself dominating +a discussion, it is especially important to step back and encourage other +voices to join in. Be aware of how much time is taken up by dominant members of +the group. Provide alternative ways to contribute or participate when possible. + +Be inclusive of everyone in an interaction, respecting and facilitating +people's participation whether they are: + + * Remote (on video or phone) + * Non-native language speakers + * Coming from a different culture + * Using pronouns other than "he" or "she" + * Living in a different time zone + * Facing other challenges to participate + +Think about how you might facilitate alternative ways to contribute or +participate. Make way for other voices and listen actively to them. + +### Be civil and considerate + +Your work will be used by other people, and you in turn will depend on the work +of others. Any decision you take will affect users and colleagues, and you +should take those consequences into account when making decisions. Remember +that we are a world-wide community. You may be communicating with someone with +a different primary language or cultural background. + +Members of the community are considerate of their peers. We are thoughtful when +addressing the efforts of others, keeping in mind that often times the labor +was completed simply for the good of the community. + +### Be respectful + +We are respectful of others, their positions, their skills, their commitments, +and their efforts. We are respectful of the volunteer efforts that permeate the +ITK community. We are respectful of the processes set forth in the community, +and we work within them. When we disagree, we are courteous in raising our +issues. + +We *must* be able to speak directly when we disagree and when we think we need +to improve. We cannot withhold hard truths. Doing so respectfully is hard, +doing so when others do not seem to be listening is harder, and hearing such +comments when one is the recipient can be even harder still. We need to be +honest and direct, as well as respectful. + +Value each other's ideas, styles and viewpoints. When we disagree, try to +understand why. Being unable to understand why someone holds a viewpoint does +not mean that they are wrong. Be respectful to differing viewpoints and +experiences. Disagreements, both social and technical, happen all the time and +ITK is no exception. Try to understand where others are coming from, as seeing +a question from their viewpoint may help find a new path forward. Be open to +different possibilities and to being wrong. Be kind in all interactions and +communications, especially when debating the merits of different options. Our +goal should not be to "win" every disagreement or argument. A more productive +goal is to be open to ideas that make our own ideas better. The best solutions +to hard problems rarely come from a single angle. Strive to be an example for +inclusive thinking. "Winning" is when different perspectives make our work +richer and stronger. + +Do not forget that it is human to err: blaming each other does not get us +anywhere, while we can learn from mistakes to find better solutions. + +Most importantly, disagreement is no excuse for poor manners. We might all +experience some frustration now and then, but we cannot allow that frustration +to turn into a personal attack. We do not allow disagreement to persist and +fester leaving others uncertain of the agreed direction. We work together to +resolve conflict, assume good intentions and do our best to act in an empathic +fashion. We work together to resolve conflict, and assume good intentions. We +may all experience some frustration from time to time, but we do not allow +frustration to turn into a personal attack. + +A community where people feel uncomfortable or threatened is not a productive +one. + +### Be collaborative + +What we produce is a complex whole made of many parts, it is the sum of many +efforts, long working hours, personal endeavors and sleepless nights. +Collaboration between teams that each have their own goal and vision is +essential; for the whole to be more than the sum of its parts, each part must +make an effort to understand the whole. + +Our work will be used by other people, and in turn we will depend on the work +of others. When we make something for the benefit of the project, we are +willing to explain to others how it works, so that they can build on the work +to make it even better. Any decision we make will affect users and colleagues, +and we take those consequences seriously when making decisions. + +Collaboration reduces redundancy and improves the quality of our work. +Internally and externally, we celebrate good collaboration. Wherever possible, +we work closely with upstream projects and others in the free software +community to coordinate our efforts. We prefer to work transparently and +involve interested parties as early as possible. + +We recognize that the project works better when we trust the teams closest to a +problem to make the decision for the project. We strive to find common ground, +and failing that, the matter can be escalated to the ITK governance structure +represented by the ISC members and its designated leaders who can review the +decision, arbitrate and provide clarity and direction. Ultimately, if a +decision has been taken by the people responsible for it, and is supported by +the project governance, it will stand. None of us expects to agree with every +decision, and we value highly the willingness to stand by the project and help +it deliver even on the occasions when we ourselves may prefer a different +route. + +We value discussion, data, decisiveness and consensus. We gather opinions, data +and commitments from concerned parties before taking a decision. We expect +leaders to help teams come to a decision in a reasonable time, to seek guidance +or be willing to take the decision themselves when consensus is lacking, and to +take responsibility for implementation. + +The poorest decision of all is no decision: clarity of direction has value in +itself. Sometimes all the data are not available, or consensus is elusive. A +decision must still be made because it enables the project as a whole to move +forward faster and to adapt to times. There is no guarantee of a perfect +decision every time - we prefer to err, learn, and err less in future than to +postpone action indefinitely. + +Resoluteness in decisions demands considerateness; take bold decisions, but do +so mindful of the challenges they present for other community members and the +use of ITK itself across different projects, and work to soften the impact of +those decisions on them. Communicating changes and their reasoning clearly and +early on is as important as the implementation of the change itself. + +### Be careful in the words that we choose + +We are careful and respectful in our communication and we take responsibility +for our own speech. Be kind to others. Do not insult or put down other +participants. We will not accept harassment or other exclusionary behavior. + +### Take responsibility for our words and our actions + +Be aware of your impact and how intense interactions may be affecting people. +Be direct, constructive and positive. We can all make mistakes; when we do, we +take responsibility for your impact and your mistakes - if someone says they +have been harmed through your words or actions, listen carefully, apologize +sincerely, and correct the behavior going forward. If someone has been harmed +or offended, we listen carefully and respectfully, and work to right the wrong. + +A simple apology can go a long way. It can often de-escalate a situation, and +telling someone that you are sorry is an act of empathy that does not +automatically imply an admission of guilt. + +### Be concise + +Value each other's time. Keep in mind that what you write once will be read +by hundreds of persons. Writing a short message means people can understand the +conversation as efficiently as possible. Messages that are brief and to the +point take more time to write, but are repaid many times over when other +members of the list make the same effort. Short messages should always strive +to be empathetic, welcoming, friendly and patient. When a long explanation is +necessary, consider adding a summary. + +Try to bring new ideas to a conversation so that each message adds something +unique to the thread, keeping in mind that the rest of the thread still +contains the other messages with arguments that have already been made. + +Try to stay on topic, especially in discussions that are already fairly large. +If you must change the topic, start a new thread. Also, avoid flooding the list +with long threads by reading the entire thread first, instead of responding +quickly to many emails in a short period of time. + +### Be inquisitive + +Nobody knows everything! We will try hard to be responsive and helpful. + +### Moderate your expectations + +Please respect that community members choose how they spend their time in the +project. A thoughtful question about your expectations is preferable to demands +for another person's time. Respect the time and energy of long-time community +members. + +### Ask for help when unsure + +Nobody is expected to be perfect in the ITK community. Asking questions early, +and bringing discussions to the table through the appropriate channels, avoids +many problems (whether they are technical, such as design flaws, technical +debt, etc., or intellectual, etc.) later, so questions are encouraged, though +they may be directed to the appropriate forum. Those who are asked should be +responsive and helpful. + +We do our best to answer to all questions and concerns in a timely manner. But +we may fail to do so sometimes. Please, assume good faith and do not feel +discouraged. It may be a matter of asking incomplete, poorly formatted or too +broad or generic questions; some other times, the questions may have been +answered previously. Please take some time by doing research in FAQs, +documentation and other ITK resources, as well as with search engines before +asking questions. + +We welcome new members, and love to see them becoming important people in our +community. + +### Step down considerately + +When somebody leaves or disengages from the ITK project, we ask that they do so +in a way that minimizes disruption to the Project. They should tell people they +are leaving and take the proper steps to ensure that others can pick up where +they left off. + +(lead-by-example)= +Lead By Example +--------------- + +We all lead by example, in debate and in action. We encourage new participants +to feel empowered to lead, to take action, and to experiment when they feel +innovation could improve the project. Leadership can be exercised by anyone +simply by taking action, there is no need to wait for recognition when the +opportunity to lead presents itself. + +To err is human; whenever we make a mistake, we take responsibility for it, and +we work to right the wrong. + +We encourage everyone to participate and are committed to building a community +for all. Although we may not be able to satisfy everyone, we all agree that +everyone is equal. Whenever a participant has made a mistake, we expect them to +take responsibility for it. + +(unacceptable-behavior)= +Unacceptable Behavior +--------------------- + +Code of Conduct violations reduce the value of the community for everyone and +we take them seriously. + +The following behaviors are considered to be unacceptable under these +guidelines: + + * Personal attacks and violent threats or language directed against another + person, including but not limited to offensive comments related to gender, + gender identity and expression, gender identity, sexual orientation, ability, + physical appearance, body, age, race, ethnicity, nationality, language, + religion or otherwise dimension of diversity. + * Sexist, racist, or otherwise discriminatory jokes and insults. + * Deliberate misgendering or use of "dead" or rejected names. + * Unwelcome comments regarding a person's lifestyle choices and practices, + including those related to food, health, parenting, drugs, and employment. + * Derogatory language. + * Sustained disruption of discussion. + * Excessive profanity. Avoid swearwords; people differ greatly in their + sensitivity to swearing. + * Publishing (or threatening to publish) other people's personally + identifying information and/or material ("doxing"). + * Deliberate "outing" of any aspect of a person's identity without their + consent except as necessary to protect other community members or other + vulnerable people from intentional abuse. + * Sharing of non-harassing private communication, such as emails sent + privately or non-publicly, or unlogged forums such as IRC channel history, + without the sender's consent. + +Harassment will not be tolerated in any of its forms either. Specifically: + + * Unwelcome sexual attention or physical contact, including simulated + contact (e.g., textual descriptions like "hug" or "backrub"), or otherwise + creating sexualized environment. + * Posting gratuitous or off-topic sexually explicit or violent material. + * Incitement of violence towards any individual, including encouraging a + person to commit suicide or to engage in self-harm. + * Deliberate intimidation. + * Stalking or following. + * Harassing photography or recording, including logging online activity for + harassment purposes + * Pattern of inappropriate social contact, such as requesting/assuming + inappropriate levels of intimacy with others. + * Continued one-on-one communication after requests to cease. + +Although the above list cannot be exhaustive, we will not tolerate +discrimination based on any of the protected characteristics in our +[Diversity Statement](motivation). + +The relative anonymity (if any) in the discussion forums is no shelter for +unacceptable behavior. + +(influencing-unacceptable-behavior)= +Influencing Unacceptable Behavior +--------------------------------- + +We will treat advocating for, influencing or encouraging other members to cause +hostility, or leading to any of the above behavior or activities the same way +we treat the activities themselves, and thus the same consequences apply. + +(sharing-data)= +Sharing Data +------------ + +When sharing your testing data, either as an input to an ITK contribution or as +part of a discussion topic or help request, please bear in mind that you must +remove any Personal Identifiable Information (PII) from your images prior to +making them available. Please bear in mind that besides cleaning pixel data, +other meta-data (such as individual attributes when dealing with DICOM files) +may require additional de-identification processes. + +For dealing with DICOM files/medical images, please read the related +documentation (namely, the +[DICOM Supplement 55](ftp://medical.nema.org/medical/dicom/final/sup55_ft.pdf) +and +[DICOM Supplement 142](ftp://medical.nema.org/medical/dicom/final/sup142_ft.pdf)). +If you still need help for de-identifying your images, please ask on [ITK's Discourse]. + +Please, simply avoid using images that, despite having been used in image +analysis and related areas historically (e.g. "Lena"), may be interpreted as +being degrading to part of our community, or reinforcing stereotypes. + +Community members shall not attempt to identify de-identified images. + +(feedback)= +Feedback +-------- + +Everyone is encouraged to ask questions about these guidelines. We would be +happy to hear suggestions to improve any aspect of this Code of Conduct. + +If you are organizing an event or activity where ITK is a building block, +please reach us for including a policies concerning aspects of ITK. + +(modifications-to-these-guidelines)= +Modifications to these Guidelines +--------------------------------- + +The ISC may amend these guidelines in order to adapt to, and may also vary the +associated procedures where appropriate in a particular case. Community +members' agreement to comply with these guidelines will be deemed agreement to +any changes to it. In case ISC amends the guidelines, the new guidelines will +be reachable as a new version of this document. You can sign up for updates by +subscribing to this repository's notifications in your settings. + +(license-and-attribution)= +License and Attribution +----------------------- + +This document and all associated processes are only possible with the hard work +of many, many ITK community members, and other open-source initiative members. +These guidelines have sought inspiration and have drawn content with +modification from + + * [The Open Source Initiative](https://opensource.org/codeofconduct) + * [GitLab](https://about.gitlab.com/handbook/support/policies/#code-of-conduct) + * [Python](https://www.python.org/psf/codeofconduct/) + * [Django](https://www.djangoproject.com/conduct/reporting/) + * [Scipy](https://docs.scipy.org/doc/scipy//reference/dev/conduct/code_of_conduct.html) + * [Nipype](https://github.com/nipy/nipype/blob/master/CODE_OF_CONDUCT.md) + * [Jupyter](https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md) + * [The Linux Foundation](https://www.linuxfoundation.org/events/code-of-conduct/) + * [Ubuntu](https://www.ubuntu.com/about/about-ubuntu/conduct) + * [Brainhack](https://www.brainhack.org/code-of-conduct.html) + * [Mozilla](https://www.mozilla.org/en-US/about/governance/policies/participation/) + * [Contributor Covenant](https://www.contributor-covenant.org/) + +Additional text from the +[Citizen Code of Conduct](http://citizencodeofconduct.org), the +[Geek Feminism Wiki Harassment Policy contents](https://geekfeminism.wikia.com/wiki/Category:Harassment_policy), +and the +[TODO Group Open Code of Conduct](https://todogroup.org/opencodeofconduct/) +have also been adapted to build this Code of Conduct. + +We are grateful to those projects for contributing these materials under open +licensing terms for us to easily reuse. + +All content on this page is licensed under a [Creative Commons] **Attribution** +license. + +[Creative Commons]: https://creativecommons.org/licenses/ +[ITK's Discourse]: https://discourse.itk.org/ diff --git a/Documentation/CMakeW3ExternalDataUpload.png b/Documentation/docs/contributing/content-link-upload.png similarity index 100% rename from Documentation/CMakeW3ExternalDataUpload.png rename to Documentation/docs/contributing/content-link-upload.png diff --git a/Documentation/Data.md b/Documentation/docs/contributing/data.md similarity index 91% rename from Documentation/Data.md rename to Documentation/docs/contributing/data.md index c04984db3e0..1e5eb293978 100644 --- a/Documentation/Data.md +++ b/Documentation/docs/contributing/data.md @@ -2,7 +2,7 @@ ITK Data ======== This page documents how to add test data while developing ITK. See our -[CONTRIBUTING](../CONTRIBUTING.md) and [UploadBinaryData] guides for more +[CONTRIBUTING](index.md) and [Upload Binary Data] guides for more information. While these instructions assume that the required data will be contained in @@ -28,7 +28,7 @@ Workflow -------- Our workflow for adding data integrates with our standard -[development process](CONTRIBUTING.md). Start by creating a topic. Return here +[development process](index.md). Start by creating a topic. Return here when you reach the "edit files" step. These instructions follow a typical use case of adding a new test with a @@ -41,12 +41,13 @@ the binary files themselves, ITK and related projects use content link files associated with these files. Generate the *.cid* content link from your test data file, *MyTest.png* in -this example, with the [cmake-w3-externaldata-upload] web app. This app will +this example, with the [content-link-upload] web app. This app will upload the data to IPFS and provide a *.cid* CMake ExternalData content link file to download. -For more details, see the description and procedures in [UploadBinaryData]. +For more details, see the description and procedures in [Upload Binary Data]. +(add-data)= ### Add Data Copy the data content link file into your local source tree. @@ -55,7 +56,7 @@ Copy the data content link file into your local source tree. $ mkdir -p Modules/.../test/Baseline $ cp ~/MyTest.png.cid Modules/.../test/Baseline/MyTest.png.cid ``` - +(add-test)= ### Add Test Edit the test `CMakeLists.txt` file and reference the data file in an @@ -77,6 +78,7 @@ to the test directory: reference ends in the ",:" option; follow the link to the `ExternalData` module on the right for details. +(commit)= ### Commit Continue to create the topic and edit other files as necessary. Add the content @@ -122,6 +124,7 @@ instead of the build tree. Once an object has been downloaded by one build it will persist in the local store for re-use by other builds without downloading again. +(discussion)= Discussion ---------- @@ -136,6 +139,6 @@ For more information, see [CMake ExternalData: Using Large Files with Distributed Version Control](https://blog.kitware.com/cmake-externaldata-using-large-files-with-distributed-version-control/). -[UploadBinaryData]: UploadBinaryData.md +[Upload Binary Data]: upload_binary_data.md [ITKData Datalad repository]: https://gin.g-node.org/InsightSoftwareConsortium/ITKData/src/main -[cmake-w3-externaldata-upload]: https://cmake-w3-externaldata-upload.on.fleek.co/ +[content-link-upload]: https://content-link-upload.itk.org diff --git a/Documentation/CodeOfConduct/Enforcement.md b/Documentation/docs/contributing/enforcement.md similarity index 97% rename from Documentation/CodeOfConduct/Enforcement.md rename to Documentation/docs/contributing/enforcement.md index 6f7eb91ff99..b2ba2c83c6e 100644 --- a/Documentation/CodeOfConduct/Enforcement.md +++ b/Documentation/docs/contributing/enforcement.md @@ -70,8 +70,9 @@ In this document, the term "the originator" refers to the person(s) that have violated this Code of Conduct and originated an incident; the term "the affected party(ies)" refers to the person(s) that have suffered the attack of "the originator" under the forms described in the -[Unacceptable Behavior](CODE_OF_CONDUCT.md#unacceptable-behavior) section. +[Unacceptable Behavior](code_of_conduct.md) section. +(responsibilities)= Responsibilities ---------------- @@ -83,7 +84,7 @@ For onsite or offsite ITK events (e.g. trainings, hackathons) where no Committee members may be present, an event organizer will act as their delegate. They will forward any reports to the Committee, as well as a summary of any action they may have taken during the event (see -[Event Incident Report](Reporting.md#event-incident-report)). +[Event Incident Report](reporting.md)). The ISC Code of Conduct Committee has the right and responsibility to remove, edit, or reject project comments, commits, code, wiki edits, issues, and other @@ -102,6 +103,7 @@ if for any reason you feel uncomfortable making a report to the committee, then you can contact any member of the Board of Directors. +(mediation)= Mediation --------- @@ -121,6 +123,7 @@ participate. If the Committee suggests mediation, it should: the process move forward. * Establish a timeline for mediation to complete, ideally within two weeks. +(report-handling)= Report Handling --------------- @@ -135,7 +138,7 @@ severe breaches like personal threats, violent, sexist or racist language. When the Committee (or a Committee member) receives a report, they will first determine whether the report is about a clear and severe breach (see -[Incident Reporting Resolution & Code of Conduct Enforcement](#incident-reporting-resolution-&-code-of-conduct-enforcement)). +[Incident Reporting Resolution & Code of Conduct Enforcement](#incident-reporting-resolution-and-code-of-conduct-enforcement)). The Committee will then review the incident and determine, to the best of their ability: @@ -170,7 +173,7 @@ regular report handling process, they will do the following: as a clear and severe breach. The Committee should also say that, if the originator believes this is unfair or they want to be reconnected to ITK, they have the right to ask for a review (see - [Addressing Grievances](#addressing-grievances). + [Addressing Grievances](reporting.md). * The Committee will formally review and sign off on all cases where this mechanism has been applied to make sure it is not being used to control ordinary heated disagreement. @@ -194,8 +197,9 @@ public statement will need to be made. If that's the case, the identities of all affected parties and reporters will remain confidential unless those individuals instruct us otherwise. -Incident Reporting Resolution & Code of Conduct Enforcement ------------------------------------------------------------ +(incident-reporting-resolution-and-code-of-conduct-enforcement)= +Incident Reporting Resolution and Code of Conduct Enforcement +------------------------------------------------------------- All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. @@ -214,7 +218,7 @@ believe that the situation has ended and that everyone is physically safe. Committee members (or designated delegates) present at these incidents must report these incidents to the Committee for review within 24 hours (see -[Event Incident Report](Reporting.md#event-incident-report)). +[Event Incident Report](reporting.md)). Once the Committee has a complete account of the events in the light of the report review, they will make a decision as to how to response. Responses may diff --git a/Documentation/GitHelp.md b/Documentation/docs/contributing/git_help.md similarity index 91% rename from Documentation/GitHelp.md rename to Documentation/docs/contributing/git_help.md index 64c327f4c3d..b688767c478 100644 --- a/Documentation/GitHelp.md +++ b/Documentation/docs/contributing/git_help.md @@ -12,9 +12,9 @@ Additional information about [Git] may be obtained at these sites: * [Everyday Git](https://www.kernel.org/pub/software/scm/git/docs/giteveryday.html) * [GitHub Services](https://services.github.com/) * Development models with Git - * [A Visual Git Reference](marklodato.github.io/visual-git-guide/) + * [A Visual Git Reference](https://marklodato.github.io/visual-git-guide/) * [A successful Git branching model](https://nvie.com/posts/a-successful-git-branching-model/) - * [PDF](github.com/downloads/nvie/gitflow/Git-branching-model.pdf) version. + * [PDF](https://github.com/downloads/nvie/gitflow/Git-branching-model.pdf) version. * [LearnGitBranching - Web application designed to help beginners grasp the powerful concepts behind branching](https://learngitbranching.js.org/) * Cheat sheets * [Git cheat sheet](http://cheat.errtheblog.com/s/git) diff --git a/Documentation/docs/contributing/index.md b/Documentation/docs/contributing/index.md new file mode 100644 index 00000000000..aacf6b1478b --- /dev/null +++ b/Documentation/docs/contributing/index.md @@ -0,0 +1,388 @@ +Contributing to ITK +=================== + +Welcome to the Insight Toolkit (ITK) ! We are excited that you are here! Join us as a contributing member of the community. + +![Contributor graph](https://contributor-graph-api.apiseven.com/contributors-svg?chart=contributorOverTime&repo=InsightSoftwareConsortium/ITK) + +This article documents how to contribute improvements to ITK. + +For a *quick start guide*, see the [ITK Git Cheatsheet]. + +If you are looking for an issue to resolve that will help the ITK community, see the *good first issue* label in the [ITKSphinxExamples](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/labels/good-first-issue) or [ITK](https://github.com/InsightSoftwareConsortium/ITK/labels/Good%20first%20issue) repositories. + +Setup +----- + +Before you begin, perform initial setup: + + 1. [Register for a GitHub](https://github.com/join) account. + 2. Optionally download our [one page PDF desk reference](https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/master/Documentation/GitCheatSheet.pdf). + 3. Follow the [download instructions] to create a local ITK clone: + +```sh + $ git clone https://github.com/InsightSoftwareConsortium/ITK +``` + + 4. Run the developer setup script [`SetupForDevelopment.sh`] to prepare your + ITK work tree and create Git command aliases used below: + +```sh + $ ./Utilities/SetupForDevelopment.sh +``` + +This script helps configure your GitHub fork remote, Git client-side hooks, +and useful Git aliases. The default Git remote names for your fork and +`InsightSoftwareConsortium/ITK` are `origin` and `upstream`, respectively. +However, other remote names can be used. Note that ITK defines some useful +Git aliases, such as `review-push`, `pr`, `pr-clean`, and `prepush`, through +the [`setup-git-aliases`] script for general Git tasks in ITK. + +Visit the *Pro Git: Setup* resource in [Git Help] for further +information on setting up your local Git environment. + +(workflow)= +Workflow +-------- + +ITK development uses a branchy workflow based on topic branches. +This corresponds to the *Fork & Pull Model* mentioned in the +[GitHub flow guide]. Our collaboration workflow consists of +three main steps: + + 1. Local Development + * [Update](#update) + * [Create a Topic](#create-a-topic) + 2. Code Review + * [Share a Topic](#share-a-topic) + * [Test a Topic](#test-a-topic) + * [Revise a Topic](#revise-a-topic) + 3. Integrate Changes + * [Merge a Topic](#merge-a-topic) + * [Delete a Topic](#delete-a-topic) + +(update)= +Update +------ + +Update your local `master` branch: + +```sh + $ git checkout master + $ git pullall +``` + +(create-a-topic)= +Create a Topic +-------------- + +All new work must be committed on topic branches. Name topics like you might +name functions: concise but precise. A reader should have a general idea of the +feature or fix to be developed given just the branch name. + +To start a new topic branch: + +```sh + $ git fetch upstream +``` + +For new development, start the topic from `upstream/master`: + +```sh + $ git checkout -b my-topic upstream/master +``` + +For release branch fixes, start the topic from `upstream/release`: + +```sh + $ git checkout -b my-topic upstream/release +``` + +(*You may visit the* Pro Git: Basic Branching *resource in [Git Help] for +further information on working with branches.*) + +Edit files and create commits (repeat as needed). Add a prefix to your commit +message (see below). + +```sh + $ edit file1 file2 file3 +``` +(*To add data follow [these instructions](data.md).*) + +```sh + $ git add file1 file2 file3 + $ git commit +``` + +(*You may visit the* Pro Git: Recording Changes *resource in [Git Help] for +further information on making changes and committing snapshots.*) + +**Note**: *If your change modifies any of the modules in the +`Modules/ThirdParty` directory, please read our +[Updating Third Party] guide.* + +(breaking-changes)= +Breaking Changes +---------------- + +Breaking changes are defined in ITK as those changes that introduce changes to +the API of the [major version](https://semver.org/) of the toolkit, and as +such, make a component of the toolkit no longer backwards compatible. Breaking +changes are only allowed in new major releases. Thus, the change may be held +up by the toolkit's maintainers to ensure consistency in the toolkit. Before +making such changes to the code, and considering other options to keep the +code backward-compatible, please either open an +[issue](https://github.com/InsightSoftwareConsortium/ITK/issues/new/choose) +from the appropriate category or discuss the subject in [ITK's Discourse]. If +the change finally is made into a *pull request*, cross-reference the issue +and/or the discussion with the appropriate link. + +(design-changes)= +Design Changes +-------------- + +Design changes should be discussed in [ITK's Discourse]. A +[Design Impact +Report](https://github.com/InsightSoftwareConsortium/ITK/issues/new?labels=type%3ADesign&template=design_impact_report.md) +can also be opened to keep track of the requested change. Design changes need +explicit approval from the toolkit's maintainers. + +(commit-messages)= +Commit Messages +--------------- + +Write your commit messages using the standard prefixes for ITK commit +messages: + + * `BUG:` Fix for runtime crash or incorrect result + * `COMP:` Compiler error or warning fix + * `DOC:` Documentation change + * `ENH:` New functionality + * `PERF:` Performance improvement + * `STYLE:` No logic impact (indentation, comments) + * `WIP:` Work In Progress not ready for merge + +The body of the message should clearly describe the motivation of the commit +(**what**, **why**, and **how**). In order to ease the task of reviewing +commits, the message body should follow the following guidelines: + + 1. Leave a blank line between the subject and the body. + This helps `git log` and `git rebase` work nicely, and allows to smooth + generation of release notes. + 2. Try to keep the subject line below 72 characters, ideally 50. + 3. Capitalize the subject line. + 4. Do not end the subject line with a period. + 5. Use the imperative mood in the subject line (e.g. `STYLE: Change + template parameter name prefix N to V`). + 6. Wrap the body at 80 characters. + 7. Use semantic line feeds to separate different ideas, which improves the + readability. + 8. Be concise, but honor the change: if significant alternative solutions + were available, explain why they were discarded. + 9. If the commit refers to a topic discussed in [ITK's Discourse], or fixes + a regression test, provide the link. If it fixes a compiler error, provide a + minimal verbatim message of the compiler error. If the commit closes an + issue, use the [GitHub issue closing + keywords](https://help.github.com/en/articles/closing-issues-using-keywords). + +Keep in mind that the significant time is invested in reviewing commits and +*pull requests*, so following these guidelines will greatly help the people +doing reviews. + +These guidelines are largely inspired by Chris Beam's +[How to Write a Commit Message](https://chris.beams.io/posts/git-commit/) +post. + +(share-a-topic)= +Share a Topic +------------- + +When a topic is ready for review and possible inclusion, share it by pushing +to GitHub and opening a *pull request* on the *InsightSoftwareConsortium/ITK* +upstream repository. + +Checkout the topic if it is not your current branch: + +```sh + $ git checkout my-topic +``` + +Check what commits will be pushed to GitHub for review: + +```sh + $ git prepush +``` + +Push commits in your topic branch for review by the community: + +```sh + $ git review-push --force +``` + +A URL will be provided in the terminal -- visit this url to review the topic +and open a pull request. + +Optionally, discuss the change by opening a topic on [ITK's Discourse]. + +(test-a-topic)= +Test a Topic +------------ + +When a topic is submitted, it is tested across the three major platforms +before being merged thanks to the [Azure DevOps Pipelines CI +system](https://azure.microsoft.com/en-ca/services/devops/pipelines/), +as well as the [CDash GitHub +Checks](https://github.com/InsightSoftwareConsortium/ITKGitHubCDashStatus), +and [ITK Coding Style +check](https://github.com/InsightSoftwareConsortium/ITKClangFormatLinterAction). + +If a platform configuration test failure appears to be a false positive, the +test can be re-executed by adding a comment to the pull request with the +content `/azp run `. For example: + +``` + /azp run ITK.Linux +``` + +After the topic has been merged, it is tested on many +platforms and configurations on the [nightly +dashboard](https://open.cdash.org/index.php?project=Insight). + +If tests fail on a submitted topic, see the [Revise a Topic](#revise-a-topic) +step on how to submit a revised version. After a topic is merged, please check +the next day's nightly dashboard to ensure there are not any regressions. If +there are any new warnings or errors, submit a follow-up patch as soon as +possible. + +(revise-a-topic)= +Revise a Topic +-------------- + +Usually, a topic goes through several revisions in the review process. +Once a topic is approved during GitHub review, proceed to the +[next step](#merge-a-topic). + +Checkout the topic if it is not your current branch: + +```sh + $ git checkout my-topic +``` + +To revise the most recent commit on the topic edit files and add changes +normally and then amend the commit: + +```sh + $ git commit --amend +``` + +(*You may visit the* Pro Git: Changing the Last Commit *resource in [Git Help] +for further information on revising and rewriting your commit history.*) + +To revise commits further back on the topic, say the `3`rd commit back: + +```sh + $ git rebase -i HEAD~3 +``` + +(*Substitute the correct number of commits back, as low as `1`.*) + +Follow Git's interactive instructions. + +Return to the [Share a Topic](#share-a-topic) step to share the revised topic. + +(*You may visit the* Pro Git: Changing Multiple Commits *resource in [Git Help] +for further information on changing multiple commits -i.e. not only the last +one, but further back in your history-, and the* Pro Git: Rebasing *resource on +taking all the changes that were committed on one branch and replaying them on +another one.*) + +(merge-a-topic)= +Merge a Topic +------------- + +**Only authorized developers with GitHub merge permissions execute this step.** + +After a feature topic has been reviewed and approved in GitHub, ITK +maintainers will merge it into the upstream repository via the GitHub user +interface. + +(*If the merge conflicts follow the printed instructions to resolve them.*) + +For bug fixes that are ready to be included in the next patch release, make a +comment on the pull request which states the topic should be merged to the +`release` branch. + +Here are the recommended steps to merge a topic to both `release` and `master` +branches, assuming the topic branch is forked off the `release` branch: + +```sh + $ git checkout release + $ git merge --no-ff my-topic + $ git push upstream release +``` + +and do: + +```sh + $ git checkout master + $ git merge --no-ff release + $ git push upstream master +``` + +to merge the `release` branch back to `master`. + +(delete-a-topic)= +Delete a Topic +-------------- + +After a topic has been merged upstream, delete your local branch for the topic. + +Checkout and update the `master` branch: + +```sh + $ git checkout master + $ git pullall +``` + +Delete the local topic branch: + +```sh + $ git branch -d my-topic +``` + +The `branch -d` command works only when the topic branch has been correctly +merged. Use `-D` instead of `-d` to force the deletion of an unmerged topic +branch (*warning*: you could lose commits). + +(citation-addition)= +Citation Addition +----------------- + +To connect your [ORCID](https://orcid.org/) profile to the [ITK Zenodo +citation](https://zenodo.org/record/3592082), add your name and ORCID iD to +the *ITK/.zenodo* file after contributing 10 or more commits. + +```{toctree} +:hidden: +:maxdepth: 3 +:caption: 📖 More Information + +ITK Software Guide, Book 1, Part III: Development Guidelines +git_help.md +GitHub flow guide +ITK Git Cheatsheet +updating_third_party.md +data.md +upload_binary_data.md +``` + +[ITK Git Cheatsheet]: ./GitCheatSheet.pdf +[download instructions]: ../download.md +[Updating Third Party]: ./updating_third_party.md + +[`SetupForDevelopment.sh`]: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Utilities/SetupForDevelopment.sh +[`setup-git-aliases`]: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Utilities/GitSetup/setup-git-aliases + +[ITK's Discourse]: https://discourse.itk.org/ + +[Git]: https://git-scm.com \ No newline at end of file diff --git a/Documentation/ITK-testing-data.png b/Documentation/docs/contributing/itk-testing-data.png similarity index 100% rename from Documentation/ITK-testing-data.png rename to Documentation/docs/contributing/itk-testing-data.png diff --git a/Documentation/CodeOfConduct/Motivation.md b/Documentation/docs/contributing/motivation.md similarity index 99% rename from Documentation/CodeOfConduct/Motivation.md rename to Documentation/docs/contributing/motivation.md index fcb3111b278..9ee474587dd 100644 --- a/Documentation/CodeOfConduct/Motivation.md +++ b/Documentation/docs/contributing/motivation.md @@ -54,6 +54,7 @@ understanding of a collaborative, shared environment and goals. Please try to follow this code in spirit as much as in letter, to create a friendly and productive environment that enriches the surrounding community. +(scope)= Scope ----- @@ -88,6 +89,7 @@ behavior has the potential to adversely affect the safety and well-being of community members. Violations of this Code in such spaces may affect a person's ability to participate in the ITK community. +(diversity-statement)= Diversity Statement ------------------- diff --git a/Documentation/CodeOfConduct/Reporting.md b/Documentation/docs/contributing/reporting.md similarity index 98% rename from Documentation/CodeOfConduct/Reporting.md rename to Documentation/docs/contributing/reporting.md index 2bf078d6d44..36da3cab76e 100644 --- a/Documentation/CodeOfConduct/Reporting.md +++ b/Documentation/docs/contributing/reporting.md @@ -85,7 +85,7 @@ containing the following information: * Actions taken. The ISC Committee will then decide, according to the -[Report Handling](Enforcement.md#report-handling) procedure, whether the +[Report Handling](enforcement.md) procedure, whether the incident response has been appropriate and the file needs to be closed or else, whether further actions need to be taken. diff --git a/Documentation/Maintenance/UpdatingThirdParty.md b/Documentation/docs/contributing/updating_third_party.md similarity index 95% rename from Documentation/Maintenance/UpdatingThirdParty.md rename to Documentation/docs/contributing/updating_third_party.md index faec42194ef..1a6e5fdb5e6 100644 --- a/Documentation/Maintenance/UpdatingThirdParty.md +++ b/Documentation/docs/contributing/updating_third_party.md @@ -78,7 +78,7 @@ like this: Making the initial import involves filling out the project's `UpdateFromUpstream.sh` script in its directory. The -[UpdateFromUpstream.sh](UpdateFromUpstream.sh) script describes what is +[UpdateThirdPartyFromUpstream.sh] script describes what is necessary, but in a nutshell, it is basically metadata such as the name of the project and where it goes in the importing project. @@ -116,4 +116,4 @@ if necessary. -[UpdateThirdPartyFromUpstream.sh]: Utilities/Maintenance/UpdateThirdPartyFromUpstream.sh +[UpdateThirdPartyFromUpstream.sh]: https://github.com/InsightSoftwareConsortium/ITK/blob/master/Utilities/Maintenance/UpdateThirdPartyFromUpstream.sh diff --git a/Documentation/UploadBinaryData.md b/Documentation/docs/contributing/upload_binary_data.md similarity index 97% rename from Documentation/UploadBinaryData.md rename to Documentation/docs/contributing/upload_binary_data.md index d457ca7e0dc..29e1fa22473 100644 --- a/Documentation/UploadBinaryData.md +++ b/Documentation/docs/contributing/upload_binary_data.md @@ -51,7 +51,7 @@ the following: - Local testing data cache - Archive tarballs from GitHub Releases -![ITK testing data figure](./ITK-testing-data.png) +![ITK testing data figure](./itk-testing-data.png) *Testing data workflow. Testing or example data is uploaded to IPFS via the content-link-upload.itk.org web app. This pins the data on multiple servers across the globe. @@ -59,7 +59,7 @@ At release time, the data is also pinned on multiple servers in the USA and Fran At release time, the data is also stored in the DataLad Git repository and also served on an Apache HTTP server and the GitHub Pages CDN. At test time an ITK build can pull the data from a local cache, archive tarball, the Apache HTTP server, GitHub Pages CDN, or multiple IPFS HTTP gateways.* -See also our [Data](Data.md) guide for more information. If you just +See also our [Data](data.md) guide for more information. If you just want to browse and download the ITK testing images, see the [ITKData Datalad repository]. @@ -116,7 +116,7 @@ upload your data to the [IPFS] and download the corresponding CMake content link file. ![[CMake ExternalData Web3 -Content Link Upload](https://content-link-upload.itk.org/)](CMakeW3ExternalDataUpload.png) +Content Link Upload](https://content-link-upload.itk.org/)](./content-link-upload.png) Add the file to the repository in the directory referenced by the *CMakeLists.txt* script. Next time CMake configuration runs, it will find the new content link. diff --git a/Documentation/Download.md b/Documentation/docs/download.md similarity index 97% rename from Documentation/Download.md rename to Documentation/docs/download.md index 1856f2ff9ad..52d7bcef996 100644 --- a/Documentation/Download.md +++ b/Documentation/docs/download.md @@ -2,7 +2,7 @@ Download ITK ============ This page documents how to download ITK. See our -[CONTRIBUTING](../CONTRIBUTING.md) guide for more information. +[CONTRIBUTING](contributing/index) guide for more information. Download ITK Release Assets --------------------------- @@ -93,7 +93,7 @@ the latest changes may run ``` Avoid making local changes unless you have read our [developer -instructions](../CONTRIBUTING.md). +instructions](contributing/index.md). ### Checkout diff --git a/Documentation/docs/index.md b/Documentation/docs/index.md new file mode 100644 index 00000000000..7074b3ff814 --- /dev/null +++ b/Documentation/docs/index.md @@ -0,0 +1,47 @@ +# Welcome to ITK's documentation! + +The Insight Toolkit (ITK) is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. +Our documentation is a resource for both new and seasoned ITK community members and includes tutorials, examples, and best practices to help you +unlock the full power of ITK's advanced algorithms. + +We invite you to join the ITK community and explore our documentation to find out how you can use ITK to make your vision a reality. + +[![GitHub release](https://img.shields.io/github/release/InsightSoftwareConsortium/ITK.svg)](https://github.com/InsightSoftwareConsortium/ITK/releases/latest) +[![Commit Activity](https://img.shields.io/github/commit-activity/y/InsightSoftwareConsortium/ITK)](https://github.com/InsightSoftwareConsortium/ITK) +[![PyPI](https://img.shields.io/pypi/v/itk.svg)](https://pypi.python.org/pypi/itk) + +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/InsightSoftwareConsortium/ITK/blob/master/LICENSE) +[![DOI](https://zenodo.org/badge/800928.svg)](https://zenodo.org/badge/latestdoi/800928) +[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) + + +```{toctree} +:maxdepth: 1 +:caption: 💾 Download + +download +``` + + +```{toctree} +:maxdepth: 3 +:caption: 📖 Learn + +Examples +Tutorial +Software Guide +learn/courses.md +``` + + +```{toctree} +:maxdepth: 1 +:caption: 🔨 Develop + +API +Discussion +Issue tracker +releases/index +contributing/code_of_conduct +contributing/index +``` \ No newline at end of file diff --git a/Documentation/docs/learn/courses.md b/Documentation/docs/learn/courses.md new file mode 100644 index 00000000000..41176189225 --- /dev/null +++ b/Documentation/docs/learn/courses.md @@ -0,0 +1,24 @@ +# Courses + +The Insight Toolkit (ITK) is not only a foundation for the practice of image analysis in industry and academia; ITK has been studied and used to demonstrate principles of scientific and medical image analysis in many university courses around the world. + +Kitware also offers periodic [short online courses given by expert instructors](https://www.kitware.com/courses/itk/). + +- The University of Iowa-Medical [Image Analysis course](https://data.kitware.com/#collection/57b5c9e58d777f126827f5a1/folder/57b5d18b8d777f10f269311c) is semester-long course taught by Hans Johnson. It is an excellent introduction to medical image analysis and ITK. The course covers the architecture of ITK, programming with ITK, medical image representation, filtering, affine registration, and deformable registration with Demons and b-splines. Powerpoint files of the lectures are available. +- A long-running [Methods in Medical Image Analysis course](https://www.cs.cmu.edu/~galeotti/methods_course/) from John Galeotti at Carnegie-Mellon has both lecture Powerpoints and high quality video recordings of the lectures available. Its purpose, from its syllabus, is “to gain theoretical and practical skills in medical image analysis, including skills relevant to general image analysis. The fundamentals of computational medical image analysis will be explored, leading to current research in applying geometry and statistics to segmentation, registration, visualization, and image understanding. Student will develop practical experience through projects using the new v4 of the National Library of Medicine Insight Toolkit (ITK), a popular open-source software library developed by a consortium of institutions including Carnegie Mellon University and the University of Pittsburgh.” +- The University of Pennsylvania, Center for Biomedical Image Computing and Analytics has made available the presentations and code from a on "[CPP for Image Processing and Machine Learning](https://www.nitrc.org/projects/cbica_tutorials)." The tutorial intends to help someone with a good theoretical background in image processing and machine learning quickly prototype algorithms using C++ and extend them to create meaningful software packages +- A [Medical Image Computing course](http://www.cs.ucf.edu/~bagci/teaching/mic17.html) at the University of Central Florida covers the basics of radiological image modalities and their clinical use, an introduction to medical image computing and toolkits, image filtering, enhancement, noise reduction, and signal processing, medical image registration, medical image segmentation, medical image visualization, shape modeling/analysis of medical images, machine learning/deep learning in medical imaging, neuroimaging: fMRI, DTI, MRI, and connectome imaging. +- An [Image Registration course](https://www.cs.rpi.edu/courses/spring04/imagereg/) at the Rensselaer Polytechnic Institute (RPI) covers all aspects of image registration, including the underlying mathematics, the images themselves, algorithms, implementations, and applications. Applications range from medical imaging to automatic geometric modeling. Special emphasis is given to software toolkits for image registration. +- The [Computer Assisted Image Analysis course](https://www.it.uu.se/edu/course/homepage/bild1/vt14) at Uppsala University gives an introduction to the processing and analysis of digital images, covering: pointwise image operators, local image operators, Fourier analysis of images, mathematical morphology and distance transforms, image segmentation, object description, classification, color images and image compression, and applications of image analysis. +- An [Advanced Image Processing and Analysis course](https://www.eng.uwo.ca/biomed/courses/courses_9519.html) at Western University explores a few major areas of digital image processing at an advanced level, with primary emphasis on medical applications. Topics covered include image segmentation, image registration, validation of image processing algorithms, and image processing using 3D Slicer and the Insight Toolkit (ITK). Examples will be presented to give the students exposure to real-world applications. +- [Multimedia Analysis](https://www.comp.nus.edu.sg/~cs6240/) taught at the University of Singapore aims to provide a comprehensive and rigorous treatment of the main approaches in multimedia (document, image, video, graphics) analysis. +- [Image Processing](https://my.eng.utah.edu/~cs6640/) at the University of Utah is an introductory course in processing gray-scale and color images taught at the graduate level. This course covers both mathematical fundamentals and implementation. +- A [Digital and Medical Image Processing course](https://www.sfu.ca/outlines.html?2015/spring/ensc/474/d100) at Simon Fraser University develops signal processing techniques of wide applicability, presented in the context of processing and analysis of digital images, in particular 2D and 3D biomedical images. Covers acquisition, formation and representation of digital images, filtering, enhancement and restoration in both spatial and frequency domains, image segmentation, image registration, and discrete image transforms. +- [Medical Image Science: Applications](https://medphysics.wisc.edu/mp-574/) at the University of Wisconsin-Madison presents the application of medical imaging theory to problems in medical imaging science including: concepts of digital image processing, image reconstruction/compression, point response function analysis, noise characteristics, and measurement. +- A [Digital Image Processing course](https://www.ee.columbia.edu/~xlx/ee4830/) at Columbia University introduces fundamental technologies for digital image and video representation, compression, analysis, and processing. Students will gain understanding of algorithm and system design, analytical tools, and practical implementations of various digital image applications. +- The [Applied Medical Image Analysis course](https://catalog.odu.edu/courses/bme/) at Old Dominion University explores hands-on exposure to state-of-the-art algorithms in medical image analysis, which builds on open-source software (Insight Segmentation and Registration Toolkit – ITK), as well as the principles of medical image acquisition in the modalities of clinical interest. Medical imaging modalities – X-rays, CT, and MRI/ITK image pipeline; image enhancement, feature detection; segmentation – basic techniques, feature-based classification and clustering, graph cuts, active contour and surface models; surface and volume meshing; registration – transformations, similarity criteria; shape and appearance models are all explored and discussed in this course. +- The [Introduction to Pattern Recognition](https://www5.cs.fau.de/lectures/ws-1516/introduction-to-pattern-recognition-intropr/exercises/) at Technische Fakultat course covers the Fourier Transform, Fourier Series, k-Means clustering, histogram equalization, image filtering, threshold, edge detection, simple segmentation, morphological operations, normalization, walsh transform, wavelets, eigenfaces. +- [Programming for Medical Imaging](https://www.uu.nl/en/masters/medical-imaging/study-programme) at Utrecht University is a course that teaches the theoretical knowledge and practical skills required for medical imaging. The focus is on C++ and Python. +- [Biomedical Imaging and Analysis](https://www.justcallharry.com/bia-fall-2014.html) at Sun Yat-sen course’s goals are to familiarize students with biological and medical imaging data from various imaging modalities (eg: Magnetic Resonance Imaging (MRI), X-ray Computed Tomography (CT), Fluoroscopy, Ultrasound and Optical Systems for Microscopy), how these data are acquired as well as how to process 2D, 3D and 4D (3D + time) data for quantification and visualization purposes using contemporary software tools and open-source libraries (including, SimpleITK, ITK, VTK). +- The National Technical University of Athens offers an [Introduction to Biomedical Engineering, Biological Signal Analysis, and Processing](https://biomig.ntua.gr/courses.html) whose lectures include methods and processing techniques, design and implementation of digital filters together with specific applications. +- Professor Owen Carmichael provided video recordings from his course on [Image Processing and Analysis](http://www.infocobuild.com/education/audio-video-courses/computer-science/ecs173-fall2010-uc-davis.html). This course deals with techniques for automated extraction of high-level information from images generated by cameras, three-dimensional surface sensors, and medical devices. diff --git a/Documentation/docs/make.bat b/Documentation/docs/make.bat new file mode 100644 index 00000000000..32bb24529f9 --- /dev/null +++ b/Documentation/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/Documentation/Releases/1.0.md b/Documentation/docs/releases/1.0.md similarity index 97% rename from Documentation/Releases/1.0.md rename to Documentation/docs/releases/1.0.md index 9057f7d6669..af70230dcde 100644 --- a/Documentation/Releases/1.0.md +++ b/Documentation/docs/releases/1.0.md @@ -1,6 +1,4 @@ - -Welcome to the Insight Registration and Segmentation Toolkit (ITK) ------------------------------------------------------------------ +# ITK 1.0 Release: Welcome! This is the third public release of ITK (Release-1-0). The ITK developer community appreciates any feedback that you may have regarding this diff --git a/Documentation/Releases/1.8.md b/Documentation/docs/releases/1.8.md similarity index 93% rename from Documentation/Releases/1.8.md rename to Documentation/docs/releases/1.8.md index 982549bd36b..127a13e241e 100644 --- a/Documentation/Releases/1.8.md +++ b/Documentation/docs/releases/1.8.md @@ -1,37 +1,26 @@ -ITK Release 1.8 -=============== +# ITK Release 1.8 -Support for BMP -=============== +## Support for BMP -MetaIO supports zlib compression -================================ +## MetaIO supports zlib compression -IO support for itkMeshSpatialObject via MetaIO -============================================== +## IO support for itkMeshSpatialObject via MetaIO -IO support for “Nearly Raw Raster Data” image format (Nrrd) -=========================================================== +## IO support for “Nearly Raw Raster Data” image format (Nrrd) -New itkTreeContainer and TreeIterators classes -============================================== +## New itkTreeContainer and TreeIterators classes -SpatialObjects supports TreeContainer -===================================== +## SpatialObjects supports TreeContainer -New GaussianSpatialObject -========================= +## New GaussianSpatialObject -Many new examples -================= +## Many new examples -Java wrapping -============= +## Java wrapping This release covers the period January 22, 2004 through August 8, 2004 -New Classes in this Release ---------------------------- +### New Classes in this Release Code/Algorithms/itkDeformableSimplexMesh3DBalloonForceFilter Code/Algorithms/itkDeformableSimplexMesh3DFilter @@ -119,8 +108,7 @@ New Classes in this Release Code/SpatialObject/itkSpatialObjectTreeContainer Code/SpatialObject/itkSpatialObjectTreeNode -New Tests in this Release -------------------------- +### New Tests in this Release Testing/Code/Common/itkBinaryThresholdSpatialFunctionTest Testing/Code/Common/itkCenteredTransformInitializerTest @@ -188,8 +176,7 @@ New Tests in this Release Testing/Code/SpatialObject/itkImageMaskSpatialObjectTest Testing/Code/SpatialObject/itkSpatialObjectTreeContainerTest -New Examples in this Release ----------------------------- +### New Examples in this Release Examples/DataRepresentation/Image/ImageToArray.py Examples/DataRepresentation/Mesh/ImageToPointSet @@ -263,8 +250,7 @@ New Examples in this Release Examples/Visualization/CannyEdgeDetectionImageFilterConnectVTKITK.tcl -New Utilities in this Release ------------------------------ +### New Utilities in this Release Utilities/MetaIO/metaEvent Utilities/MetaIO/metaGaussian diff --git a/Documentation/Releases/2.0.md b/Documentation/docs/releases/2.0.md similarity index 94% rename from Documentation/Releases/2.0.md rename to Documentation/docs/releases/2.0.md index 135067703eb..105b78b8036 100644 --- a/Documentation/Releases/2.0.md +++ b/Documentation/docs/releases/2.0.md @@ -1,8 +1,6 @@ -ITK Release 2.2 -=============== +# ITK Release 2.2 -Introducing GDCM as DICOM reader/writer -======================================= +## Introducing GDCM as DICOM reader/writer Until version 2.0, ITK only natively supported reading DICOM image files. New in v2.0 is GDCM, short for “Grass roots DICOM”, a library @@ -21,16 +19,13 @@ formats are: Class Reference : [GDCMImageIO](https://www.itk.org/Doxygen/html/classitk_1_1GDCMImageIO.html), [GDCMSeriesFileNames](https://www.itk.org/Doxygen/html/classitk_1_1GDCMSeriesFileNames.html)\ Examples : (None) -New itkVesselTubeSpatialObject with metaIO file format to support vessel representation -======================================================================================= +## New itkVesselTubeSpatialObject with metaIO file format to support vessel representation -New itkDTITubeSpatialObject with metaIO file format to support DTI tracts representation and reading/writing of DTI data -======================================================================================================================== +## New itkDTITubeSpatialObject with metaIO file format to support DTI tracts representation and reading/writing of DTI data This release covers the period August 10, 2004 through February 4, 2005 -New Classes in this Release ---------------------------- +### New Classes in this Release Code/Algorithms/itkBinaryPruningImageFilter Code/Algorithms/itkBinaryThinningImageFilter @@ -94,8 +89,7 @@ New Classes in this Release Code/Patented/itkSimpleFuzzyConnectednessScalarImageFilter Code/Patented/itkVectorFuzzyConnectednessImageFilter -New Tests in this Release -------------------------- +### New Tests in this Release Testing/Code/Common/itkCenteredEuler3DTransformTest Testing/Code/Common/itkPhasedArray3DSpecialCoordinatesImageTest @@ -150,8 +144,7 @@ New Tests in this Release Testing/Code/Patented/itkSimpleFuzzyConnectednessScalarImageFilterTest Testing/Code/Patented/itkVectorFuzzyConnectednessImageFilterTest -New Examples in this Release ----------------------------- +### New Examples in this Release Examples/DataRepresentation/Image/ImageExamples Examples/DataRepresentation/Mesh/MeshExamples @@ -197,8 +190,7 @@ New Examples in this Release Examples/Statistics/ScalarImageKmeansModelEstimator Examples/Statistics/ScalarImageMarkovRandomField1 -New Utilities in this Release ------------------------------ +### New Utilities in this Release Utilities/gdcm/AUTHORS Utilities/gdcm/ChangeLog diff --git a/Documentation/Releases/2.2.md b/Documentation/docs/releases/2.2.md similarity index 99% rename from Documentation/Releases/2.2.md rename to Documentation/docs/releases/2.2.md index 6623f4201ee..93c43a3298e 100644 --- a/Documentation/Releases/2.2.md +++ b/Documentation/docs/releases/2.2.md @@ -1,5 +1,4 @@ -ITK Release 2.2 -=============== +# ITK Release 2.2 Schedule -------- diff --git a/Documentation/Releases/2.4.md b/Documentation/docs/releases/2.4.md similarity index 100% rename from Documentation/Releases/2.4.md rename to Documentation/docs/releases/2.4.md diff --git a/Documentation/Releases/2.6.md b/Documentation/docs/releases/2.6.md similarity index 100% rename from Documentation/Releases/2.6.md rename to Documentation/docs/releases/2.6.md diff --git a/Documentation/Releases/2.8.md b/Documentation/docs/releases/2.8.md similarity index 99% rename from Documentation/Releases/2.8.md rename to Documentation/docs/releases/2.8.md index 2bd99fe74dd..30148616015 100644 --- a/Documentation/Releases/2.8.md +++ b/Documentation/docs/releases/2.8.md @@ -1,5 +1,4 @@ -ITK Release 2.8 -=============== +# ITK Release 2.8 This release covers the period March 15, 2006 through May 30, 2006. diff --git a/Documentation/Releases/3.0.md b/Documentation/docs/releases/3.0.md similarity index 100% rename from Documentation/Releases/3.0.md rename to Documentation/docs/releases/3.0.md diff --git a/Documentation/Releases/3.12.md b/Documentation/docs/releases/3.12.md similarity index 100% rename from Documentation/Releases/3.12.md rename to Documentation/docs/releases/3.12.md diff --git a/Documentation/Releases/3.14.md b/Documentation/docs/releases/3.14.md similarity index 100% rename from Documentation/Releases/3.14.md rename to Documentation/docs/releases/3.14.md diff --git a/Documentation/Releases/3.16.md b/Documentation/docs/releases/3.16.md similarity index 100% rename from Documentation/Releases/3.16.md rename to Documentation/docs/releases/3.16.md diff --git a/Documentation/Releases/3.18.md b/Documentation/docs/releases/3.18.md similarity index 100% rename from Documentation/Releases/3.18.md rename to Documentation/docs/releases/3.18.md diff --git a/Documentation/Releases/3.2.md b/Documentation/docs/releases/3.2.md similarity index 100% rename from Documentation/Releases/3.2.md rename to Documentation/docs/releases/3.2.md diff --git a/Documentation/Releases/3.20.md b/Documentation/docs/releases/3.20.md similarity index 100% rename from Documentation/Releases/3.20.md rename to Documentation/docs/releases/3.20.md diff --git a/Documentation/Releases/4.0.md b/Documentation/docs/releases/4.0.md similarity index 84% rename from Documentation/Releases/4.0.md rename to Documentation/docs/releases/4.0.md index 6b89a5e3b5b..62a0bc93ce6 100644 --- a/Documentation/Releases/4.0.md +++ b/Documentation/docs/releases/4.0.md @@ -1,5 +1,4 @@ -ITK Release 4.0 -=============== +# ITK Release 4.0 This work is supported by ARRA funding from the NLM. The [kick-off meeting](http://visual.nlm.nih.gov/itk/itk2010/agenda.html) for this @@ -7,19 +6,16 @@ project took place from June 28-July 2 2010 in Bethesda. A beta version of the software will be available by the end of March 2011. Bug fixes will continue to be contributed to the ITK version 3 code. -Download --------- +## Download - [Download](https://itk.org/Wiki/ITK_Release_4/Download) -Release Notes -------------- +## Release Notes - [Release Notes](https://itk.org/Wiki/ITK_Release_4/Migration_Plan/Release_Notes) -LICENSE Change --------------- +## LICENSE Change Starting with ITKv4-Alpha-01, the ITK toolkit is distributed under the Apache 2.0 License. @@ -28,24 +24,21 @@ More details here: - [Licensing](https://itk.org/Wiki/ITK_Release_4/Licensing) -Revision Control ----------------- +## Revision Control - Adopt a modern revision control system - Move from cvs to [git](https://git-scm.com) for distributed source code management - [ITK Git Instructions](https://itk.org/Wiki/ITK/Git) -Code Review ------------ +## Code Review - Adopt a code review system - [ITK Gerrit](https://review.source.kitware.com/p/ITK) - Powered by [Gerrit Code Review](https://code.google.com/p/gerrit/) -Modern C++ ----------- +## Modern C++ - [Modern C++](https://itk.org/Wiki/ITK_Release_4/Modern_C++) @@ -61,39 +54,34 @@ Modern C++ (newer versions may work, but are not being targeted), and gcc prior to 3.4 -Wrapping --------- +## Wrapping - Improved ITK Wrapping at the class level (WrapITK) - [Wrapping](https://itk.org/Wiki/ITK_Release_4/Wrapping) - Particularly for Python 2.x, Python 3, Java and C\# -Simplify --------- +## Simplify - Addition of [Simple ITK Layer](https://itk.org/Wiki/ITK_Release_4/SimpleITK) -Modularize ----------- +## Modularize - Refactor for [Modularity](https://itk.org/Wiki/ITK_Release_4/Modularization) - ITKCore, ITKRegistrationModule, and Optional Modules -Testing Crowdsourcing ---------------------- +## Testing Crowdsourcing - [Testing Crowdsourcing](https://itk.org/Wiki/ITK_Release_4/Testing_Crowdsourcing) -Improve Software Process ------------------------- +## Improve Software Process - Enhanced project management tools and software processes ### Data Management -- Better management for [Testing - Data](ITK_Release_4/Testing_Data) +- Better management for Testing + Data - Data Collection [MIDAS](https://itk.org/Wiki/ITK_Release_4/Data_Collection) ### Distributed Testing (cdash@home) @@ -112,8 +100,7 @@ Improve Software Process - [Coding Style](https://itk.org/Wiki/ITK_Release_4/Coding_Style) -Revise ------- +## Revise ### FEM @@ -128,7 +115,7 @@ Revise ### DICOM - Improved DICOM support - - [DICOM](ITK_Release_4/DICOM) + - DICOM - Including communications with PACS - Support Streaming interface - Add filter to support Siemens MOSAIC images @@ -148,8 +135,7 @@ Revise - [ Global Code Review](https://itk.org/Wiki/ITK_Release_4/Global_Code_Review) -Accelerate ----------- +## Accelerate ### GPU @@ -166,43 +152,35 @@ Accelerate - [Refactor Numerical Libraries](https://itk.org/Wiki/ITK_Release_4/Refactor_Numerical_Libraries) -Release schedules ------------------ +## Release schedules - [Release Schedules](https://itk.org/Wiki/ITK_Release_4/ReleaseSchedules) -The Team -======== +## The Team [The Team](https://itk.org/Wiki/ITK_Release_4/The_Team) -Wish List -========= +## Wish List [Wish List](https://itk.org/Wiki/ITK_Release_4/Wish_List) -Migration Plan (Developers) -=========================== +## Migration Plan (Developers) [Migration Plan](https://itk.org/Wiki/ITK_Release_4/Migration_Plan) -Migration Guide (for Users) -=========================== +## Migration Guide (for Users) [Users Migration Guide](https://itk.org/Wiki/ITK_Release_4/Users_Migration_Guide) -Software Guide (Update) -======================= +## Software Guide (Update) [Software Guide Update](https://itk.org/Wiki/ITK_Release_4/Software_Guide_Update) -A2D2 Projects -============= +## A2D2 Projects [A2D2 Projects](https://itk.org/Wiki/ITK_Release_4/A2D2_Projects) -New Fields -========== +## New Fields ITKv4 will provide improved support for @@ -210,18 +188,15 @@ ITKv4 will provide improved support for - [Microscopy](https://itk.org/Wiki/ITK_Release_4/Microscopy) - [Remote Sensing](https://itk.org/Wiki/ITK_Release_4/Remote_Sensing) -Discussion Points -================= +## Discussion Points [Discussion Points](https://itk.org/Wiki/ITK_Release_4/Discussion_Points) -Outreach -======== +## Outreach [Outreach](https://itk.org/Wiki/ITK_Release_4/Outreach) -New Code Contribution Process -============================= +## New Code Contribution Process [New Code Contribution Process](https://itk.org/Wiki/ITK_Release_4/New_Code_Contribution_Process) diff --git a/Documentation/Releases/4.1.md b/Documentation/docs/releases/4.1.md similarity index 100% rename from Documentation/Releases/4.1.md rename to Documentation/docs/releases/4.1.md diff --git a/Documentation/Releases/4.10.md b/Documentation/docs/releases/4.10.md similarity index 100% rename from Documentation/Releases/4.10.md rename to Documentation/docs/releases/4.10.md diff --git a/Documentation/Releases/4.11.md b/Documentation/docs/releases/4.11.md similarity index 100% rename from Documentation/Releases/4.11.md rename to Documentation/docs/releases/4.11.md diff --git a/Documentation/Releases/4.12.md b/Documentation/docs/releases/4.12.md similarity index 100% rename from Documentation/Releases/4.12.md rename to Documentation/docs/releases/4.12.md diff --git a/Documentation/Releases/4.13.md b/Documentation/docs/releases/4.13.md similarity index 100% rename from Documentation/Releases/4.13.md rename to Documentation/docs/releases/4.13.md diff --git a/Documentation/Releases/4.2.md b/Documentation/docs/releases/4.2.md similarity index 99% rename from Documentation/Releases/4.2.md rename to Documentation/docs/releases/4.2.md index 4925ab83899..f96e6b35ef9 100644 --- a/Documentation/Releases/4.2.md +++ b/Documentation/docs/releases/4.2.md @@ -24,9 +24,6 @@ We have also improved compiler support. Specifically, we have been compiling with the latest gcc 4.7.0. And now Visual Studio 10 works without any workarounds. -A complete list of changes since the prior release can be found here: -[ITK/Release\_4.2\_Changed\_From\_Previous](ITK/Release_4.2_Changed_From_Previous "wikilink") - New contributors with merged patches include: - Dave Chen diff --git a/Documentation/Releases/4.3.md b/Documentation/docs/releases/4.3.md similarity index 99% rename from Documentation/Releases/4.3.md rename to Documentation/docs/releases/4.3.md index 3d70721e784..46a2b9f4263 100644 --- a/Documentation/Releases/4.3.md +++ b/Documentation/docs/releases/4.3.md @@ -17,9 +17,7 @@ independently of the ITK build system. Then, specify the location to the external build after setting the CMake option ITK\_USE\_SYSTEM\_DCMTK ON. -WrapITK has undergone extensive improvements and bug fixes. The status -of WrapITK on various platforms can be found on the following [WrapITK -Status page](ITK/WrapITK_Status "wikilink"). +WrapITK has undergone extensive improvements and bug fixes. A number of registration-related feature enhancements were added. The image registration methods have been updated to accommodate multiple diff --git a/Documentation/Releases/4.4.md b/Documentation/docs/releases/4.4.md similarity index 100% rename from Documentation/Releases/4.4.md rename to Documentation/docs/releases/4.4.md diff --git a/Documentation/Releases/4.5.md b/Documentation/docs/releases/4.5.md similarity index 100% rename from Documentation/Releases/4.5.md rename to Documentation/docs/releases/4.5.md diff --git a/Documentation/Releases/4.6.md b/Documentation/docs/releases/4.6.md similarity index 100% rename from Documentation/Releases/4.6.md rename to Documentation/docs/releases/4.6.md diff --git a/Documentation/Releases/4.7.md b/Documentation/docs/releases/4.7.md similarity index 100% rename from Documentation/Releases/4.7.md rename to Documentation/docs/releases/4.7.md diff --git a/Documentation/Releases/4.8.md b/Documentation/docs/releases/4.8.md similarity index 100% rename from Documentation/Releases/4.8.md rename to Documentation/docs/releases/4.8.md diff --git a/Documentation/Releases/4.9.md b/Documentation/docs/releases/4.9.md similarity index 100% rename from Documentation/Releases/4.9.md rename to Documentation/docs/releases/4.9.md diff --git a/Documentation/Releases/5.0.md b/Documentation/docs/releases/5.0.md similarity index 100% rename from Documentation/Releases/5.0.md rename to Documentation/docs/releases/5.0.md diff --git a/Documentation/Releases/5.0a01.md b/Documentation/docs/releases/5.0a01.md similarity index 99% rename from Documentation/Releases/5.0a01.md rename to Documentation/docs/releases/5.0a01.md index 1c9d8b9bdec..d45f7634190 100644 --- a/Documentation/Releases/5.0a01.md +++ b/Documentation/docs/releases/5.0a01.md @@ -15,7 +15,7 @@ Important [changes in style](https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoft As shown below, toolkit has adopted the application of the `using` keyword for [type aliases](https://en.cppreference.com/w/cpp/language/type_alias), which many developers find easier to read and understand. -```cpp +``` template< typename TInputImage, typename TOutputImage > class ITK_TEMPLATE_EXPORT BoxImageFilter: public ImageToImageFilter< TInputImage, TOutputImage > diff --git a/Documentation/Releases/5.0a02.md b/Documentation/docs/releases/5.0a02.md similarity index 100% rename from Documentation/Releases/5.0a02.md rename to Documentation/docs/releases/5.0a02.md diff --git a/Documentation/Releases/5.0b01.md b/Documentation/docs/releases/5.0b01.md similarity index 100% rename from Documentation/Releases/5.0b01.md rename to Documentation/docs/releases/5.0b01.md diff --git a/Documentation/Releases/5.0b02.md b/Documentation/docs/releases/5.0b02.md similarity index 100% rename from Documentation/Releases/5.0b02.md rename to Documentation/docs/releases/5.0b02.md diff --git a/Documentation/Releases/5.0b03.md b/Documentation/docs/releases/5.0b03.md similarity index 100% rename from Documentation/Releases/5.0b03.md rename to Documentation/docs/releases/5.0b03.md diff --git a/Documentation/Releases/5.0rc01.md b/Documentation/docs/releases/5.0rc01.md similarity index 100% rename from Documentation/Releases/5.0rc01.md rename to Documentation/docs/releases/5.0rc01.md diff --git a/Documentation/Releases/5.0rc02.md b/Documentation/docs/releases/5.0rc02.md similarity index 100% rename from Documentation/Releases/5.0rc02.md rename to Documentation/docs/releases/5.0rc02.md diff --git a/Documentation/Releases/5.1.md b/Documentation/docs/releases/5.1.md similarity index 100% rename from Documentation/Releases/5.1.md rename to Documentation/docs/releases/5.1.md diff --git a/Documentation/docs/releases/5.2.md b/Documentation/docs/releases/5.2.md new file mode 100644 index 00000000000..ec74b62b503 --- /dev/null +++ b/Documentation/docs/releases/5.2.md @@ -0,0 +1,1807 @@ +ITK 5.2.0 Release Notes +======================= + +We are happy to announce the release of [Insight Toolkit (ITK)](https://itk.org) 5.2.0! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. + +ITK 5.2 is a feature release that improves and extends interfaces to deep learning, artificial intelligence (AI) libraries, with an emphasis on [Project MONAI](https://monai.io), the Medical Open Network for AI. ITK 5.2 feature highlights include functional filter support for PyTorch tensors, Python dictionary interfaces to `itk.Image` metadata, NumPy-based pixel indexing, 4D Python image support, and improved multi-component image support. + +Changes from Release Candidate 3 include an updated [Python Quick Start Guide](https://itkpythonpackage.readthedocs.io/en/master/Quick_start_guide.html) and many improvements to the [ITK Sphinx Examples](https://itk.org/ITKExamples/). + +Experimental pip-installable Python packages are available for ARMv8 on macOS for the Apple M1 Silicon processor, and Linux, also known as aarch64. For a scientific computing environment on these platforms, we recommend [mini-forge](https://github.com/conda-forge/miniforge). + +The pip-installable Python packages work with conda across all platforms. We are working to add native conda-forge packages in a future release. + +All Pythonic, functional filter interfaces have type annotations with common, standard types along with `numpy.typing.ArrayLike` and `itk.support.types.ImageLike`. + +Many other improvements were made since RC 3 based on community feedback. A full list can be found in the Changelog below. + +Downloads +--------- + +**Python Packages** + +Install [ITK Python packages](https://itkpythonpackage.readthedocs.io/en/latest/Quick_start_guide.html) with: + +``` +pip install --upgrade itk +``` + + +**Guide and Textbook** + +- [InsightSoftwareGuide-Book1-5.2.0.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/InsightSoftwareGuide-Book1-5.2.0.pdf) +- [InsightSoftwareGuide-Book2-5.2.0.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/InsightSoftwareGuide-Book2-5.2.0.pdf) + +**Library Sources** + +- [InsightToolkit-5.2.0.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/InsightToolkit-5.2.0.tar.gz) +- [InsightToolkit-5.2.0.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/InsightToolkit-5.2.0.zip) + +**Testing Data** + +Unpack optional testing data in the same directory where the Library Source is unpacked. + +- [InsightData-5.2.0.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/InsightData-5.2.0.tar.gz) +- [InsightData-5.2.0.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/InsightData-5.2.0.zip) + +**Checksums** + +- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/MD5SUMS) +- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.0/SHA512SUMS) + + + + +Features +-------- + +### MONAI-compatible `itk.Image` metadata dict and NumPy-indexing pixel set/get Python interfaces. + +``` + print(image['0008|0008']) + image['origin'] = [4.0, 2.0, 2.0] +``` + + +or a dictionary can be retrieved with: + +``` + meta_dict = dict(image) +``` +For example: + +``` +In [3]: dict(image) +Out[3]: +{'0008|0005': 'ISO IR 100', + '0008|0008': 'ORIGINAL\\PRIMARY\\AXIAL', + '0008|0016': '1.2.840.10008.5.1.4.1.1.2', + '0008|0018': '1.3.12.2.1107.5.8.99.484849.834848.79844848.2001082217554549', + '0008|0020': '20010822', +``` + +For non-string keys, they are passed to the NumPy array view so array views can be set and get with NumPy indexing syntax, e.g. + +``` +In [6]: image[0,:2,4] = [5,5] + +In [7]: image[0,:4,4:6] +Out[7]: +NDArrayITKBase([[ 5, -997], + [ 5, -1003], + [ -993, -999], + [ -996, -994]], dtype=int16) +``` + +Provides a Python dictionary interface to image metadata, keys are +`MetaDataDictionary` entries along with *'origin'*, *'spacing'*, and +*'direction' keys. The latter reverse their order to be consistent with +the NumPy array index order resulting from array views of the image. + +The `itk.xarray_from_image` and `itk.image_from_xarray` functions gained support for transfer of `itk` `MetaDataDictionary` and `xarray` `attrs` along with support for ordering `xarray` `DataArray` `dims`. + + +### Pythonic enhancements + +Improved Xarray support was added in the functional [filter support for NumPy `ndarray`-like images, i.e. a `numpy.ndarray`, Dask Array or `xarray.DataArray`s](https://github.com/InsightSoftwareConsortium/ITK/releases/tag/v5.1.0). + + +`itk.Image` now provides an `astype()` method for casting to a NumPy `dtype` or `itk` pixel type. + +In addition to single files or an image stack in a Python list, a directory can be passed to `itk.imread` containing a DICOM series. A spatially ordered 3D image will be obtained. + +The conversion functions, `itk.vtk_image_from_image()` and `itk.image_from_vtk_image()` are directly available for working with [VTK](https://vtk.org). + +We now generate `.pyi` Python interface files, providing better feedback in integrated development environments (IDE)'s like PyCharm. + +Python code was modernized for Python 3.6, including some typehints. We now use the [`black`](https://github.com/psf/black) Python style. + +An `itk.set_nthreads()` convenience function is available to set the default number of threads. Support is now available for use in the Python `multiprocessing` module. + +In addition to `itk.imread`, `itk.imwrite`, `itk.meshread`, `itk.meshwrite`, spatial transformation IO functions are available, `itk.transformread`, `itk.transformwrite`. + +To provide an `itk.ImageIOBase` derived object to read a specific file format, `itk.imread` and `itk.imwrite` gained support for the `imageio` keyword argument. + +### Python package layout improvements + +Python support module organization has been organized into the `itk.support.*` package. + +Python development was added for multi-config CMake generators, e.g. Visual Studio or multi-config Ninja, with the limitation that it only works with the most recently built configuration. When developing ITK Python wrapping or ITK remote modules, copy the `WrapITK.pth` build tree file to your virtual environment or conda environment `site-packages` to experiment with the wrapping. + +### Python package advances + +Improved `VectorImage` and multi-component image support is available in the ITK Python packages. + +NumPy is now a required package dependency. + +Python packages are now built with interprodedural optimizations (IPO). Linux Python packages are built with the `manylinux2014` toolchain. + +Binary Python packages are available for ARM on macOS and Linux. + +Python packages are available for Python 3.6 to 3.9. Following CPython deprecation schedule, this is the last release to support Python 3.6. + +### C++ interface improvements + +A new `itk::FunctionCommand` class is available, an `itk::Command` subclass that calls `std::function` objects or lambda functions. + +New `itk::ReadImage`, `itk::WriteImage` convenience functions are available for reading and writing image files with minimal code. + +An `itk::Image` now supports `operator==` and `operator!=`. + + +A new `itk::TernaryGeneratorImageFilter` class is now available. + +### Third party library updates + +Updates were made for the third party libraries: + +* GDCM +* HDF5 +* double-conversion +* pygccxml +* castxml +* swig +* VXL +* KWIML +* KWSys +* MetaIO +* cuFFTW + + +### Remote Module Updates + +We added a new [adaptive denoising](https://github.com/ntustison/ITKAdaptiveDenoising) remote module. + +Many remote modules were updated: *AdaptiveDenoising*, *AnalyzeObjectLabelMap*, *AnisotropicDiffusionLBR*, *BSplineGradient*, *BioCell*, *BoneEnhancement*, *BoneMorphometry*, *Cuberille*, *FixedPointInverseDisplacementField*, *GenericLabelInterpolator*, *HigherOrderAccurateGradient*, *IOFDF*, *IOMeshSTL*, *IOOpenSlide*, *IOScanco*, *IOTransformDCMTK*, *IsotropicWavelets*, *LabelErodeDilate*, *LesionSizingToolkit*, *MGHIO*, *MeshNoise*, *MinimalPathExtraction*, *Montage*, *MorphologicalContourInterpolation*, *MultipleImageIterator*, *ParabolicMorphology*, *PerformanceBenchmarking*, *PhaseSymmetry*, *PolarTransform*, *PrincipalComponentsAnalysis*, *RLEImage*, *RTK*, *SCIFIO*, *SimpleITKFilters*, *SkullStrip*, *SmoothingRecursiveYvvGaussianFilter*, *SplitComponents*, *Strain*, *SubdivisionQuadEdgeMeshFilter*, *TextureFeatures*, *Thickness3D*, *TotalVariation*, *TubeTK*, *TwoProjectionRegistration*, and *VariationalRegistration*. + Their updates are included in the detailed changelog below. + + Support for cross-platform C++ testing, Python package generation, and PyPI deployment with GitHub Actions was added to almost all remote modules. + + +### Test coverage and bug fixes + +A multitude of test code coverage improvements were made -- our code coverage is [now 90.09%](https://open.cdash.org/index.php?project=Insight) with 127,103 lines tested. + +Many more bug fixes and improvements have been made. For details, see the changelog below. + +### Congratulations + +Congratulations and **thank you** to everyone who contributed to this release. + +Of the *63 authors* who contributed since v5.1.0, we would like to specially recognize the new contributors: + +Horea Christian, Baptiste Depalle, David Thompson, Pierre Wargnier, Darren Thompson, Sebastien Brousmiche, Alexander Burchardt, Marco Nolden, Michael Kuczynski, MrTzschr, Bernhard M. Wiedemann, Charles Garraud, Lee Newberg, Bryn Lloyd, Gregory Lee, justbennet, Kenji Tsumura, Zhiyuan Liu, Jonathan Daniel, Moritz Schaar, Atri Bhattacharya, Mon-ius, Michael Jackson, Tom Birdsong, Alex Domingo, Laurent Malka, Kris Thielemans, Andreas Huber, and Melvin Robinson. + +And the new contributors since **v5.2rc03**: + +Michael Kuczynski, Flanz, Robert, Adrien Boucaud, Tom Birdsong, and suryanshsangwan. + + +What's Next +----------- + + +Our next feature release, [ITK 5.3](https://github.com/InsightSoftwareConsortium/ITK/milestones/17), will follow a few [patch releases](https://github.com/InsightSoftwareConsortium/ITK/milestone/18). Remote module Python packages will be updated to leverage and work with `itk-5.2.0.post3`. Join the community discussion at [discourse.itk.org](https://discourse.itk.org). Contribute with pull requests, code reviews, and issue discussions in our [GitHub Organization](https://github.com/InsightSoftwareConsortium). + +**Enjoy ITK!** + +ITK Changes Since v5.2rc03 +--------------------------------------------- + +### Bradley Lowekamp (6): + +#### Enhancements + +- Use dynamic threading model ([38dec0a2ce](https://github.com/InsightSoftwareConsortium/ITK/commit/38dec0a2ce)) + +#### Performance Improvements + +- Replace thread index array with thread local storage ([18f764f23a](https://github.com/InsightSoftwareConsortium/ITK/commit/18f764f23a)) + +#### Platform Fixes + +- Address gcc 4.8 compilation errors ([050172153c](https://github.com/InsightSoftwareConsortium/ITK/commit/050172153c)) + +#### Bug Fixes + +- Use graft of input to mini-pipeline ([6390ebf540](https://github.com/InsightSoftwareConsortium/ITK/commit/6390ebf540)) +- Initialize member variables ([2819485a51](https://github.com/InsightSoftwareConsortium/ITK/commit/2819485a51)) + +#### Style Changes + +- Prefer in class initialization ([46f9452491](https://github.com/InsightSoftwareConsortium/ITK/commit/46f9452491)) + + +### Dženan Zukić (13): + +#### Enhancements + +- update remote modules using the script ([289564b5ff](https://github.com/InsightSoftwareConsortium/ITK/commit/289564b5ff)) +- update remote modules ([b71b85f9cd](https://github.com/InsightSoftwareConsortium/ITK/commit/b71b85f9cd)) +- add Ultrasound remote module ([04a661c78a](https://github.com/InsightSoftwareConsortium/ITK/commit/04a661c78a)) +- update remote modules by running the script ([87de84a9b0](https://github.com/InsightSoftwareConsortium/ITK/commit/87de84a9b0)) + +#### Performance Improvements + +- using constant boundary condition instead of filling the edge ([a3429dd18e](https://github.com/InsightSoftwareConsortium/ITK/commit/a3429dd18e)) + +#### Documentation Updates + +- fix AtomicInt and MutexLock broken links in migration guide ([eb0e5a01fc](https://github.com/InsightSoftwareConsortium/ITK/commit/eb0e5a01fc)) +- improve description of LBFGSERR_ROUNDING_ERROR stopping condition ([3cff310b8c](https://github.com/InsightSoftwareConsortium/ITK/commit/3cff310b8c)) + +#### Platform Fixes + +- fix CMake Deprecation Warning (Compatibility with CMake < 2.8.12) ([ff2643f37b](https://github.com/InsightSoftwareConsortium/ITK/commit/ff2643f37b)) +- Fix CMake warning by setting policy 0120 to OLD ([ce2efb1b9e](https://github.com/InsightSoftwareConsortium/ITK/commit/ce2efb1b9e)) +- Disable CMake warning by setting policy 0120 to OLD ([d9de577a7f](https://github.com/InsightSoftwareConsortium/ITK/commit/d9de577a7f)) + +#### Bug Fixes + +- Fix crash in itk.image_from_xarray if is_vector and Dimension==4 ([3f2d117175](https://github.com/InsightSoftwareConsortium/ITK/commit/3f2d117175)) + +#### Style Changes + +- mark ultrasound remote module enablement as advanced variable ([2c660a404c](https://github.com/InsightSoftwareConsortium/ITK/commit/2c660a404c)) +- use ReadImage and WriteImage in PolygonSpatialObjectIsInsideTest ([75adb9fa30](https://github.com/InsightSoftwareConsortium/ITK/commit/75adb9fa30)) + + +### Flanz, Robert (1): + +#### Bug Fixes + +- Fix regression in PolygonSpatialObject::IsInsideInObjectSpace ([e3bf8e9af8](https://github.com/InsightSoftwareConsortium/ITK/commit/e3bf8e9af8)) + + +### James Butler (1): + +#### Platform Fixes + +- Fix OpenJPEG build error with Visual Studio 16.9 ([7cebc26dfa](https://github.com/InsightSoftwareConsortium/ITK/commit/7cebc26dfa)) + + +### Jon Haitz Legarreta Gorroño (11): + +#### Enhancements + +- Label PRs on filenames ([1db37989c2](https://github.com/InsightSoftwareConsortium/ITK/commit/1db37989c2)) +- Trigger PR labeler workflows from forks ([3afcc781a0](https://github.com/InsightSoftwareConsortium/ITK/commit/3afcc781a0)) +- Increase code coverage ([f704b5f12c](https://github.com/InsightSoftwareConsortium/ITK/commit/f704b5f12c)) + +#### Documentation Updates + +- Remove duplicate `README` file from `Review` module test folder ([c077bb3f62](https://github.com/InsightSoftwareConsortium/ITK/commit/c077bb3f62)) + +#### Platform Fixes + +- Fix deduced type initialization warning and operand mismatch error ([25dea2f73d](https://github.com/InsightSoftwareConsortium/ITK/commit/25dea2f73d)) +- Fix image pointer casting error ([1c25350c93](https://github.com/InsightSoftwareConsortium/ITK/commit/1c25350c93)) +- Fix missing initializer warning ([7548a390d7](https://github.com/InsightSoftwareConsortium/ITK/commit/7548a390d7)) +- Avoid creating a copy variable ([6c352afd04](https://github.com/InsightSoftwareConsortium/ITK/commit/6c352afd04)) +- Fix unreachable code warning ([4b8767b7c5](https://github.com/InsightSoftwareConsortium/ITK/commit/4b8767b7c5)) + +#### Style Changes + +- Add missing source file extension to `Common` module tests ([d5bfbef81c](https://github.com/InsightSoftwareConsortium/ITK/commit/d5bfbef81c)) +- Move `DCMTK` test baselines to module's `Baseline` folder ([55a186f1d4](https://github.com/InsightSoftwareConsortium/ITK/commit/55a186f1d4)) + + +### Lee Newberg (11): + +#### Enhancements + +- Use (Shaped)RegionRange instead of (Shaped)RegionIterator. ([ca23a2b2ad](https://github.com/InsightSoftwareConsortium/ITK/commit/ca23a2b2ad)) +- Mark most CMake variables as advanced ([4c785c2176](https://github.com/InsightSoftwareConsortium/ITK/commit/4c785c2176)) +- Support ArrayLike type with both numpy>=1.20 and numpy<1.20. ([5c86c02178](https://github.com/InsightSoftwareConsortium/ITK/commit/5c86c02178)) + +#### Performance Improvements + +- Make loop over labels be multi-threaded ([b1ffefe79a](https://github.com/InsightSoftwareConsortium/ITK/commit/b1ffefe79a)) +- Use std::unordered_map in itkContourExtractor2DImageFilter. ([5e884ceb29](https://github.com/InsightSoftwareConsortium/ITK/commit/5e884ceb29)) + +#### Platform Fixes + +- type and const safety in ContourExtractor2DImageFilter ([ad81939921](https://github.com/InsightSoftwareConsortium/ITK/commit/ad81939921)) +- Fix gcc4.8 warnings + errors itkContourExtractor2DImageFilter.hxx ([396c2a172e](https://github.com/InsightSoftwareConsortium/ITK/commit/396c2a172e)) +- Replace Type{} with Type() for gcc4. ([22ca5dd83d](https://github.com/InsightSoftwareConsortium/ITK/commit/22ca5dd83d)) +- Address ContourExtractor2DImageFilter valgrind defects ([be7c5fda7e](https://github.com/InsightSoftwareConsortium/ITK/commit/be7c5fda7e)) + +#### Bug Fixes + +- Fix reference counts for HDF5 DataSet assignment operator ([479b9424e8](https://github.com/InsightSoftwareConsortium/ITK/commit/479b9424e8)) + +#### Style Changes + +- Mimic code that was reviewed for the upstream HDF5 source ([090399dbf0](https://github.com/InsightSoftwareConsortium/ITK/commit/090399dbf0)) + + +### Matt McCormick (21): + +#### Enhancements + +- Support 32 bit integer IO in wrapping ([beb286c327](https://github.com/InsightSoftwareConsortium/ITK/commit/beb286c327)) +- Bump KWStyle to 2021-03-17 master ([541b779329](https://github.com/InsightSoftwareConsortium/ITK/commit/541b779329)) +- Add typehints for itk types to extras ([22827a5e97](https://github.com/InsightSoftwareConsortium/ITK/commit/22827a5e97)) +- Add typehints for itk functional filters ([ed11fdcf73](https://github.com/InsightSoftwareConsortium/ITK/commit/ed11fdcf73)) +- Add .process_object attribute to functional filters ([06fe2c3c0b](https://github.com/InsightSoftwareConsortium/ITK/commit/06fe2c3c0b)) +- Update testing data content links for ITK 5.2.0 ([ac080c97b1](https://github.com/InsightSoftwareConsortium/ITK/commit/ac080c97b1)) + +#### Documentation Updates + +- Update notes for ITKExamples -> ITKSphinxExamples repository renaming ([bf7600b317](https://github.com/InsightSoftwareConsortium/ITK/commit/bf7600b317)) +- Update .zenodo ([bbf4a978c0](https://github.com/InsightSoftwareConsortium/ITK/commit/bbf4a978c0)) + +#### Platform Fixes + +- Wrap FastSymmetricForcesDemonsRegistrationFilter like its parent class ([a9d9690b32](https://github.com/InsightSoftwareConsortium/ITK/commit/a9d9690b32)) +- Set Windows Python CI version to 3.8 ([f1978435f8](https://github.com/InsightSoftwareConsortium/ITK/commit/f1978435f8)) +- Build PNG arm sources for aarch64 CMAKE_SYSTEM_PROCESSOR ([27216ceb98](https://github.com/InsightSoftwareConsortium/ITK/commit/27216ceb98)) +- Constrain x86_64 optimization flags according to CMAKE_SYSTEM_PROCESSOR ([28d2b22ca7](https://github.com/InsightSoftwareConsortium/ITK/commit/28d2b22ca7)) +- Add lxmml for Windows Python CI build ([0fb00c7977](https://github.com/InsightSoftwareConsortium/ITK/commit/0fb00c7977)) +- Do not explicitly instantiate Array in itkArrayTest ([f5ce437b9d](https://github.com/InsightSoftwareConsortium/ITK/commit/f5ce437b9d)) +- Add tolerance for patch-based denoising tests on Apple M1 ([84b59dcee4](https://github.com/InsightSoftwareConsortium/ITK/commit/84b59dcee4)) + +#### Bug Fixes + +- Checkout full depths for clang-format-linter ([3f0d124b8f](https://github.com/InsightSoftwareConsortium/ITK/commit/3f0d124b8f)) +- Add __all__ to itk.support.init_helpers ([14992c6cd7](https://github.com/InsightSoftwareConsortium/ITK/commit/14992c6cd7)) +- Set ElementType for wrapping PyVectorContainer ([dcde43cb41](https://github.com/InsightSoftwareConsortium/ITK/commit/dcde43cb41)) + +#### Style Changes + +- Remove extra itk prefix from support Python modules ([4aba024e75](https://github.com/InsightSoftwareConsortium/ITK/commit/4aba024e75)) +- Use modern, Pythonic style in ImageRegistration3.py ([224043546e](https://github.com/InsightSoftwareConsortium/ITK/commit/224043546e)) +- black formatting on Python modules ([08eb3675b8](https://github.com/InsightSoftwareConsortium/ITK/commit/08eb3675b8)) + + +### Mihail Isakov (1): + +#### Platform Fixes + +- Forward CMAKE_APPLE_SILICON_PROCESSOR ([4fbacb9513](https://github.com/InsightSoftwareConsortium/ITK/commit/4fbacb9513)) + + +### Niels Dekker (27): + +#### Enhancements + +- Add explicit OptimizerParameters(inputData, dimension) constructor ([800e59e9ea](https://github.com/InsightSoftwareConsortium/ITK/commit/800e59e9ea)) +- Make itk::Matrix trivially copyable, following Rule of Zero ([59ebc33c6e](https://github.com/InsightSoftwareConsortium/ITK/commit/59ebc33c6e)) +- Add static member function, `itk::Matrix::GetIdentity()` ([f8ad6cfdee](https://github.com/InsightSoftwareConsortium/ITK/commit/f8ad6cfdee)) + +#### Platform Fixes + +- Add virtual destructor to TestClass in ExceptionObject unit test ([e2c62faf10](https://github.com/InsightSoftwareConsortium/ITK/commit/e2c62faf10)) +- Avoid "message" naming conflicts when calling an exception macro ([3d35e43c08](https://github.com/InsightSoftwareConsortium/ITK/commit/3d35e43c08)) +- Define ExceptionObject destructor out-of-line (doing Rule of Five) ([0fce3ff86b](https://github.com/InsightSoftwareConsortium/ITK/commit/0fce3ff86b)) +- Fix macOS clang warnings [-Wunused-variable] in test source files ([24744f9ef4](https://github.com/InsightSoftwareConsortium/ITK/commit/24744f9ef4)) +- Fix macOS clang warning [-Wunused-variable] in itkMINCImageIOTest ([b2c3042da9](https://github.com/InsightSoftwareConsortium/ITK/commit/b2c3042da9)) +- No longer test `is_trivially_copyable` in itkMatrixGTest on GCC 4 ([f24496d1b8](https://github.com/InsightSoftwareConsortium/ITK/commit/f24496d1b8)) +- Workaround Clang 3 error default initialization const MatrixGTest ([874f51dba7](https://github.com/InsightSoftwareConsortium/ITK/commit/874f51dba7)) + +#### Bug Fixes + +- Remove duplicate "itk::ERROR: itk::ERROR: " from itkExceptionMacro ([df0a977dd4](https://github.com/InsightSoftwareConsortium/ITK/commit/df0a977dd4)) +- Remove duplicate "itk::ERROR: " from itkSpecializedExceptionMacro ([1bd35b3bd5](https://github.com/InsightSoftwareConsortium/ITK/commit/1bd35b3bd5)) + +#### Style Changes + +- Remove 6 no-op dynamic_casts (casting T* to T*) from Modules/Core ([5b3fc71e87](https://github.com/InsightSoftwareConsortium/ITK/commit/5b3fc71e87)) +- Avoid "no-op" dynamic_cast from inside LightObject::New() ([64cafdf93d](https://github.com/InsightSoftwareConsortium/ITK/commit/64cafdf93d)) +- Remove 9 no-op dynamic_casts (casting T* to T*) ([5089a04475](https://github.com/InsightSoftwareConsortium/ITK/commit/5089a04475)) +- Remove unintended extra space from destructors and operators ([1e99f17cf3](https://github.com/InsightSoftwareConsortium/ITK/commit/1e99f17cf3)) +- ExceptionObject may assume that std::string::c_str() never throws ([bf82b3cfee](https://github.com/InsightSoftwareConsortium/ITK/commit/bf82b3cfee)) +- Follow Rule of Zero and use std::shared_ptr in ExceptionObject ([f88fefff52](https://github.com/InsightSoftwareConsortium/ITK/commit/f88fefff52)) +- C++11 inheriting constructors from ExceptionObject for 4 classes ([e41b2ef921](https://github.com/InsightSoftwareConsortium/ITK/commit/e41b2ef921)) +- Remove destructors ExceptionObject derived classes (Rule of Zero) ([79cf5c07b2](https://github.com/InsightSoftwareConsortium/ITK/commit/79cf5c07b2)) +- Use equal_to on pixel containers DenseFiniteDifferenceImageFilter ([670863f3c8](https://github.com/InsightSoftwareConsortium/ITK/commit/670863f3c8)) +- Replace "itk::ERROR" by "ITK ERROR" in description of exception ([2b34388159](https://github.com/InsightSoftwareConsortium/ITK/commit/2b34388159)) +- Inherit constructors (C++11) inside itkDeclareExceptionMacro ([301a0482ee](https://github.com/InsightSoftwareConsortium/ITK/commit/301a0482ee)) +- Remove ITK_MACROEND_NOOP_STATEMENT calls from exception macro's ([3f6c15eb53](https://github.com/InsightSoftwareConsortium/ITK/commit/3f6c15eb53)) +- Remove dynamic_casts PosteriorImage BayesianClassifierImageFilter ([faf3d3b223](https://github.com/InsightSoftwareConsortium/ITK/commit/faf3d3b223)) +- Remove `;` from itkExceptionMacro PatchBasedDenoisingImageFilter ([c9f07d9d73](https://github.com/InsightSoftwareConsortium/ITK/commit/c9f07d9d73)) +- Default ImageBase default-constructor, call Matrix::GetIdentity() ([254a9691ae](https://github.com/InsightSoftwareConsortium/ITK/commit/254a9691ae)) + + +### Samuel Gerber (2): + +#### Enhancements + +- Add option to access index in point set registration ([b6a142a5b3](https://github.com/InsightSoftwareConsortium/ITK/commit/b6a142a5b3)) + +#### Performance Improvements + +- Avoid Superfluous PointsLocator Updates ([79c3c960c5](https://github.com/InsightSoftwareConsortium/ITK/commit/79c3c960c5)) + + +### Sean McBride (6): + +#### Enhancements + +- changed CTEST_DROP_METHOD from http to https ([3cd8502cd9](https://github.com/InsightSoftwareConsortium/ITK/commit/3cd8502cd9)) +- fixed failing test with macOS Rosetta emulation by increasing buffer size ([bca298ab36](https://github.com/InsightSoftwareConsortium/ITK/commit/bca298ab36)) + +#### Platform Fixes + +- removed dead atomic operation checks ([a44407b73f](https://github.com/InsightSoftwareConsortium/ITK/commit/a44407b73f)) +- remove try-compile for SSE2 detection ([0402e50150](https://github.com/InsightSoftwareConsortium/ITK/commit/0402e50150)) +- cherrypick HDF5 commit that added C++11 override keywords ([dded4df49e](https://github.com/InsightSoftwareConsortium/ITK/commit/dded4df49e)) +- fix link error building Universal Binary on Intel Mac ([3fe5595ae6](https://github.com/InsightSoftwareConsortium/ITK/commit/3fe5595ae6)) + + +### Simon Rit (1): + +#### Platform Fixes + +- add FFTW library directory to FFT module ([c5f8949654](https://github.com/InsightSoftwareConsortium/ITK/commit/c5f8949654)) + + +### Tom Birdsong (3): + +#### Enhancements + +- Expose numpy / vector container interface ([cca42db412](https://github.com/InsightSoftwareConsortium/ITK/commit/cca42db412)) +- Type hints in functional interface ([208e1e59e0](https://github.com/InsightSoftwareConsortium/ITK/commit/208e1e59e0)) + +#### Bug Fixes + +- Wrap PyVectorContainer for all VectorContainer templates ([7216ed1ebd](https://github.com/InsightSoftwareConsortium/ITK/commit/7216ed1ebd)) + + +### VXL Maintainers (2): + +#### Miscellaneous Changes + +- VXL 2021-03-16 (e323b72d) ([1044055af6](https://github.com/InsightSoftwareConsortium/ITK/commit/1044055af6)) +- VXL 2021-03-24 (188a98c0) ([74eaa203d2](https://github.com/InsightSoftwareConsortium/ITK/commit/74eaa203d2)) + + + + +ITK Sphinx Examples Changes Since v5.2rc03 +--------------------------------------------- + +### Brian Helba (1): + +#### Enhancements + +- Use the upstream CMake ExternalData module, instead of a vendored local copy ([d1f7d985](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d1f7d985)) + + +### Dženan Zukić (1): + +#### Style Changes + +- Switch to the new code order: Python before C++ ([5db4da31](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/5db4da31)) + + +### Lee Newberg (5): + +#### Documentation Updates + +- Indicate how to adjust resolution in ResampleAnImage ([896d48e2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/896d48e2)) +- Add details for running CreateNewExample.py ([532ca008](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/532ca008)) +- RescaleAnImage -> RescaleIntensity to clarify that it's not about size. ([a732d546](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/a732d546)) + +#### Platform Fixes + +- Include for some files ([87ab548a](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/87ab548a)) + +#### Bug Fixes + +- Fix continuous integration failure of ResampleAnImage ([66b8d2f0](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/66b8d2f0)) + + +### Mathew Seng (7): + +#### Enhancements + +- Enable use of titlecase for header creation ([b33b3806](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b33b3806)) + +#### Documentation Updates + +- Rename folder directories ([3190a58e](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/3190a58e)) +- Allow consistent Documentation.rst headers ([65e5b8f9](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/65e5b8f9)) +- Put remaining example headers into proper format ([d2b99b30](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d2b99b30)) +- Enable LineSpatialObject doxygen references in Sphinx ([8dd5e762](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/8dd5e762)) + +#### Bug Fixes + +- Submodules not ordered in alphabetical order ([c806da3e](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c806da3e)) +- Rename LineSpatialObject to CreateALineSpatialObject ([47e05d48](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/47e05d48)) + + +### Matt McCormick (44): + +#### Enhancements + +- Add .ipynb_checkpoints to .gitignore ([81a58211](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/81a58211)) +- Upgrade to ITK 5.2 RC 3 ([227eeff5](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/227eeff5)) +- Add clang-format pre-commit hook ([eb063108](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/eb063108)) +- Add black style pre-commit hook ([0175c886](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0175c886)) +- Bump Netlify GitHub Action to v1.1.13 ([0ee18172](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0ee18172)) +- Test Python in CI with the Superbuild ([57e24097](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/57e24097)) +- Add IsPixelInsideRegion Python example ([b9b630b2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b9b630b2)) +- Update ITK Required version to 5.2.0 ([f76453ee](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f76453ee)) +- Update ITK to v5.2.0 ([5377df13](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/5377df13)) +- Simplify ResampleAnImage output parameters ([e148246a](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/e148246a)) + +#### Documentation Updates + +- Place Jupyter Notebook section before Code ([54f836da](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/54f836da)) +- Rename UpsampleOrDownsampleAScalarImage to ResampleAScalarImage ([86f62137](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/86f62137)) +- Add Python code for ResampleAScalarImage ([0a458df4](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0a458df4)) +- Place resample examples next to each other in module index ([33cdf2c4](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/33cdf2c4)) +- Simplify ResampleSegmentedImage, Python version ([d3ae2969](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d3ae2969)) +- Add pandoc, nbsphinx to the documentation deps ([63634901](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/63634901)) +- Rename build-test-superbuild to build-test-python ([d5505edb](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d5505edb)) +- Install titlecase package for CreateNewExample.py script ([7489cce3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/7489cce3)) +- Update example Download link instructions ([c17864d3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c17864d3)) +- Update build instructions for example .zip files ([249b93e9](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/249b93e9)) + +#### Platform Fixes + +- Bump ITK version to 2021-03-14 master ([74142c32](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/74142c32)) +- Make the Sphinx linkcheck optional ([7eae01a1](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/7eae01a1)) + +#### Bug Fixes + +- Remove Compatibility/Deprecated group ([b0777843](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b0777843)) +- Enable production-deploy on Netlify GitHub Action ([8bcc38b8](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/8bcc38b8)) +- Do not use shallow checkout for linting ([43a59ba7](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/43a59ba7)) +- Use super-linter GitHub Action for black linting ([2be5415c](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/2be5415c)) +- Remove unnecessary matrix options for notebook testing ([017d6fd3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/017d6fd3)) +- Add nbsphinx to the superbuild Python packages ([71aecd82](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/71aecd82)) +- Require itk>=5.2.0.post2 for notebook tests ([97c6e553](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/97c6e553)) +- Tarball html output path when not built as a remote module ([f76dc431](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f76dc431)) +- Fix download links ([635cbc75](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/635cbc75)) +- Add ipython to Python environment for documentation build ([f6cbeb76](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f6cbeb76)) +- Correct MutualInformationAffine output ([f5e029f2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f5e029f2)) +- Transform SVG files in Sphinx ([0e0de5fb](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0e0de5fb)) +- Fix epub output path link in documentation ([0ca83aa3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0ca83aa3)) + +#### Style Changes + +- Pythonic style for ResampleAVectorImage ([4cdd7029](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/4cdd7029)) +- Use itk::ReadImage and itk::WriteImage in ApplyAffineTransform ([fc822448](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/fc822448)) +- Use Pythonic interface for ResampleAnImage ([473070bf](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/473070bf)) +- Run black on all Python examples ([05bd86a4](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/05bd86a4)) +- Add black, flake8 GitHub Action linters ([6dd94077](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/6dd94077)) +- Disable JSCPD check ([dbda6ab0](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/dbda6ab0)) +- Explicitly enable black linting for super-linter ([4fdae985](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/4fdae985)) +- Rename ITKExamples to ITKSphinxExamples ([b0d53207](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b0d53207)) +- Only output downloadable .zip archives for examples ([567b01c6](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/567b01c6)) + + +### Melvin Robinson (3): + +#### Documentation Updates + +- Update documentation output to match Code.cxx output ([0e2eca92](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0e2eca92)) + +#### Miscellaneous Changes + +- Fix filename for Create3DVolume. Need to add test ([8176dc90](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/8176dc90)) +- Fix another small doc file ([d695005d](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d695005d)) + + +### Pablo Hernandez-Cerdan (2): + +#### Enhancements + +- Use itk.image_to_vtk_image ([49750fad](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/49750fad)) + +#### Platform Fixes + +- Remove "vtk" prefix from VTK COMPONENTS ([9c045a18](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/9c045a18)) + + +### Stephen Aylward (5): + +#### Platform Fixes + +- Bump min required version for CMake to > 2.8 to avoid warning ([f75e9c87](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f75e9c87)) + +#### Bug Fixes + +- CreateTarball assumes /src/ is unique in path ([37da5d6c](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/37da5d6c)) + +#### Style Changes + +- Reformatting CreateTarball.py to match lint ([e706163a](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/e706163a)) +- Additional lint changes to CreateTarball.py ([d19ecc34](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d19ecc34)) + +#### Miscellaneous Changes + +- Style: Fix remaining lint issues ([94d58947](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/94d58947)) + + +### Tom Birdsong (4): + +#### Enhancements + +- Build notebook docs with nbsphinx ([c5eae3cc](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c5eae3cc)) +- Add ComputeMeanSquareBetweenTwoImages Python example ([d7928a96](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d7928a96)) + +#### Bug Fixes + +- Move build-test-cxx CI source tree to path with shorter name ([2f3b1dfc](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/2f3b1dfc)) +- Use GZip for Doxygen XML archive ([2d30a5bc](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/2d30a5bc)) + + +### suryanshsangwan (1): + +#### Miscellaneous Changes + +- Fixed issue 220 ([ea1de658](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/ea1de658)) + + + + +ITK Software Guide Changes Since v5.2rc03 +--------------------------------------------- + +### Matt McCormick (4): + +#### Enhancements + +- Bump ITK version to 5.2rc03 ([3fda610](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/3fda610)) +- Update ITK to v5.2.0 ([d5dab33](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/d5dab33)) + +#### Documentation Updates + +- Update for ITKExamples -> ITKSphinxExamples renaming ([c4846a2](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/c4846a2)) + +#### Bug Fixes + +- Work around CI environmental variable setting ([944a3e2](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/944a3e2)) + + + + +Remote Module Changes Since v5.2rc03 +--------------------------------------------- + +## AnisotropicDiffusionLBR: +### Mathew Seng (1): + +#### Platform Fixes + +- Update GitHub Actions from ITKModuleTemplate ([3df1fde](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/3df1fde)) + + +### Matt McCormick (3): + +#### Enhancements + +- Update CI for ITK 5.2 RC 3 ([cc6c28c](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/cc6c28c)) + +#### Platform Fixes + +- Constrain wrapping to 2D, 3D images ([4cec024](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/4cec024)) + +#### Bug Fixes + +- Incorporate ITKModuleTemplate CI configuration updates ([1720bae](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/1720bae)) + + + +## BSplineGradient: +### Matt McCormick (1): + +#### Enhancements + +- Bump CI to ITK 5.2 RC 3 ([76996c4](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/76996c4)) + + + +## HigherOrderAccurateGradient: +### Matt McCormick (1): + +#### Enhancements + +- Bump CI to ITK 5.2 RC 3 ([59fa983](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient/commit/59fa983)) + + + +## IOFDF: +### Matt McCormick (2): + +#### Enhancements + +- Update CI for ITK 5.2 RC 3 ([f79f207](https://github.com/InsightSoftwareConsortium/ITKIOFDF/commit/f79f207)) + +#### Documentation Updates + +- Add PyPI, License badges ([587a000](https://github.com/InsightSoftwareConsortium/ITKIOFDF/commit/587a000)) + + + +## IOScanco: +### Dženan Zukić (6): + +#### Enhancements + +- enable writing ISQ files ([08e269a](https://github.com/KitwareMedical/ITKIOScanco/commit/08e269a)) +- avoid possible buffer overflows on string ivar setters ([0f60565](https://github.com/KitwareMedical/ITKIOScanco/commit/0f60565)) +- Initializing MuWater constant to the usual value ([50aafe1](https://github.com/KitwareMedical/ITKIOScanco/commit/50aafe1)) +- update CI to 5.2RC3+ ([823fb92](https://github.com/KitwareMedical/ITKIOScanco/commit/823fb92)) + +#### Performance Improvements + +- do not re-scale the data if there is no need for it ([b4392f4](https://github.com/KitwareMedical/ITKIOScanco/commit/b4392f4)) + +#### Bug Fixes + +- do not crash in CanReadFile if the path does not exist ([7569472](https://github.com/KitwareMedical/ITKIOScanco/commit/7569472)) + + +### Matt McCormick (3): + +#### Enhancements + +- Populate the Image MetaDataDictionary when reading ([4e887b2](https://github.com/KitwareMedical/ITKIOScanco/commit/4e887b2)) +- Update build for ITK 5.2 RC 3 ([4dd399f](https://github.com/KitwareMedical/ITKIOScanco/commit/4dd399f)) +- Populate the Image MetaDataDictionary when reading ([f44399d](https://github.com/KitwareMedical/ITKIOScanco/commit/f44399d)) + + +### Michael Kuczynski (3): + +#### Enhancements + +- Add Tests for AIM Reading ([05a019d](https://github.com/KitwareMedical/ITKIOScanco/commit/05a019d)) + +#### Bug Fixes + +- Updated Baseline AIM Image to Pass Tests ([8b0ab02](https://github.com/KitwareMedical/ITKIOScanco/commit/8b0ab02)) + +#### Style Changes + +- Update Output File Names in Tests ([530cc34](https://github.com/KitwareMedical/ITKIOScanco/commit/530cc34)) + + + +## MinimalPathExtraction: +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK v5.2rc03+ ([537b34a](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/537b34a)) + + + +## Montage: +### Dženan Zukić (10): + +#### Enhancements + +- update CI to 5.2RC3+ ([2869345](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/2869345)) +- add getters and setters to Tile and TileConfiguration for Python access ([325add3](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/325add3)) +- avoid deadlock when invoked via Python ([62d6492](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/62d6492)) +- support RGB and RGBA pixel types for TileMergeImageFilter ([7f565de](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/7f565de)) +- adding a Python example ([ebe2dc3](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/ebe2dc3)) +- review suggestions ([fc0a8d6](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/fc0a8d6)) + +#### Documentation Updates + +- Fix a broken article link ([65dbdc8](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/65dbdc8)) + +#### Bug Fixes + +- Do not use shallow checkout for linting ([458424d](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/458424d)) + +#### Style Changes + +- minor corrections ([29707c0](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/29707c0)) +- allow wider range of types for instantiating merge filter ([cb86803](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/cb86803)) + + +### Matt McCormick (3): + +#### Enhancements + +- Update builds for ITK 5.2 RC 3 ([4b6aa42](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/4b6aa42)) + +#### Documentation Updates + +- Add article citation ([86fa4e0](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/86fa4e0)) +- Improve authors for Zukić, Dž. ([b66bb4f](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/b66bb4f)) + + + +## MorphologicalContourInterpolation: +### Adrien Boucaud (2): + +#### Enhancements + +- Add a flag to enable/disable extrapolation ([ca5f688](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/ca5f688)) +- Update CI for ITK 5.2rc03 ([87deba0](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/87deba0)) + + +### Dženan Zukić (2): + +#### Enhancements + +- adding a Python example with a simple test with an input image ([2f90b24](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/2f90b24)) +- build examples as part of CI testing ([539da4f](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/539da4f)) + + + +## RLEImage: +### Matt McCormick (1): + +#### Enhancements + +- Update Python package version requirement to 5.2rc1 ([3ac76da](https://github.com/KitwareMedical/ITKRLEImage/commit/3ac76da)) + + + +## RTK: +### Lucas Gandel (1): + +#### Platform Fixes + +- Add missing iostream include for CUDA classes ([3dba9889](https://github.com/SimonRit/RTK/commit/3dba9889)) + + +### Simon Rit (6): + +#### Enhancements + +- upgrade CI for python packages to 5.2rc02 ([3a00f178](https://github.com/SimonRit/RTK/commit/3a00f178)) +- wrap RegularizedConjugateGradientConeBeamReconstructionFilter ([4f3b7506](https://github.com/SimonRit/RTK/commit/4f3b7506)) +- upgrade CI for python packages to 5.2rc03 ([6da67e06](https://github.com/SimonRit/RTK/commit/6da67e06)) + +#### Documentation Updates + +- fix broken links to Siggraph pages ([70cd3b37](https://github.com/SimonRit/RTK/commit/70cd3b37)) + +#### Bug Fixes + +- missing initialization of SART division threshold ([dd7a5fe9](https://github.com/SimonRit/RTK/commit/dd7a5fe9)) + +#### Style Changes + +- rename guards for Cuda includes following ITK's style ([dd660a00](https://github.com/SimonRit/RTK/commit/dd660a00)) + + + +## SplitComponents: +### Matt McCormick (3): + +#### Enhancements + +- Bump CI for ITK 5.2 RC 3 ([5c70947](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/5c70947)) + +#### Documentation Updates + +- Remove Azure Pipelines badge ([72594b2](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/72594b2)) + +#### Platform Fixes + +- Update ITK version to 2021-03-14 master for Windows CI builds ([fc7de89](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/fc7de89)) + + + +## Strain: +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK 5.2 RC 3 ([9af85d8](https://github.com/KitwareMedical/ITKStrain/commit/9af85d8)) + + + +## Thickness3D: +### Mathew Seng (1): + +#### Platform Fixes + +- Update GitHub Actions from ITKModuleTemplate ([82bb742](https://github.com/InsightSoftwareConsortium/ITKThickness3D/commit/82bb742)) + + +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK v5.2rc02 ([2150b11](https://github.com/InsightSoftwareConsortium/ITKThickness3D/commit/2150b11)) + + + +## TotalVariation: +### Matt McCormick (2): + +#### Enhancements + +- Update CI for ITK 5.2 RC 2 ([147c4cb](https://github.com/InsightSoftwareConsortium/ITKTotalVariation/commit/147c4cb)) + +#### Documentation Updates + +- Update setup.py download_url ([b3564d7](https://github.com/InsightSoftwareConsortium/ITKTotalVariation/commit/b3564d7)) + + + +## TubeTK: +### Mathew Seng (6): + +#### Enhancements + +- Cannot have both a modifiable and constant object macro ([b3b717c3](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/b3b717c3)) + +#### Platform Fixes + +- Update GitHub Actions from ITKModuleTemplate ([79485ec1](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/79485ec1)) + +#### Bug Fixes + +- Remove old CI configurations ([d0769c36](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/d0769c36)) + +#### Style Changes + +- Update itkGetObjectMacro macros ([b8e642e9](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/b8e642e9)) +- Rename ITK_DISALLOW_COPY_AND_ASSIGN to ITK_DISALLOW_COPY_AND_MOVE Fixes changes made in #2053. ITK_DISALLOW_COPY_AND_ASSIGN will be used if ITK_FUTURE_LEGACY_REMOVE=OFF. ([918d7b01](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/918d7b01)) +- Place ';' at the end of each macro ([7bb42067](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/7bb42067)) + + +### Matt McCormick (3): + +#### Enhancements + +- Update CI configuration for ITK 5.2 RC 3 ([40bbcfb1](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/40bbcfb1)) + +#### Documentation Updates + +- Fix CI status badge ([e4cb53d0](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/e4cb53d0)) + +#### Platform Fixes + +- Add cmake_minimum_required to top level CMakeLists.txt ([05b347c4](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/05b347c4)) + + +### Stephen Aylward (3): + +#### Enhancements + +- Combine jupyter notebooks into single .py file for CTP-Head ([53a34786](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/53a34786)) +- Remove cmake_minimum_requirements since ITK defines them. ([4024de62](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/4024de62)) + +#### Bug Fixes + +- Eliminate chance of divide by zero in itktubeBlurImageFunction ([7d90c1f3](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/7d90c1f3)) + + + +## Ultrasound: +### Matt McCormick (3): + +#### Enhancements + +- Update Notebook to Python 3 ([61bec2c](https://github.com/KitwareMedical/ITKUltrasound/commit/61bec2c)) +- Add notebook CI testing ([cae3e45](https://github.com/KitwareMedical/ITKUltrasound/commit/cae3e45)) + +#### Style Changes + +- Move notebooks into examples/ directory directly ([d8ebede](https://github.com/KitwareMedical/ITKUltrasound/commit/d8ebede)) + + +ITK Changes Since v5.2rc03 +--------------------------------------------- + +### Bradley Lowekamp (6): + +#### Enhancements + +- Use dynamic threading model ([38dec0a2ce](https://github.com/InsightSoftwareConsortium/ITK/commit/38dec0a2ce)) + +#### Performance Improvements + +- Replace thread index array with thread local storage ([18f764f23a](https://github.com/InsightSoftwareConsortium/ITK/commit/18f764f23a)) + +#### Platform Fixes + +- Address gcc 4.8 compilation errors ([050172153c](https://github.com/InsightSoftwareConsortium/ITK/commit/050172153c)) + +#### Bug Fixes + +- Use graft of input to mini-pipeline ([6390ebf540](https://github.com/InsightSoftwareConsortium/ITK/commit/6390ebf540)) +- Initialize member variables ([2819485a51](https://github.com/InsightSoftwareConsortium/ITK/commit/2819485a51)) + +#### Style Changes + +- Prefer in class initialization ([46f9452491](https://github.com/InsightSoftwareConsortium/ITK/commit/46f9452491)) + + +### Dženan Zukić (13): + +#### Enhancements + +- update remote modules using the script ([289564b5ff](https://github.com/InsightSoftwareConsortium/ITK/commit/289564b5ff)) +- update remote modules ([b71b85f9cd](https://github.com/InsightSoftwareConsortium/ITK/commit/b71b85f9cd)) +- add Ultrasound remote module ([04a661c78a](https://github.com/InsightSoftwareConsortium/ITK/commit/04a661c78a)) +- update remote modules by running the script ([87de84a9b0](https://github.com/InsightSoftwareConsortium/ITK/commit/87de84a9b0)) + +#### Performance Improvements + +- using constant boundary condition instead of filling the edge ([a3429dd18e](https://github.com/InsightSoftwareConsortium/ITK/commit/a3429dd18e)) + +#### Documentation Updates + +- fix AtomicInt and MutexLock broken links in migration guide ([eb0e5a01fc](https://github.com/InsightSoftwareConsortium/ITK/commit/eb0e5a01fc)) +- improve description of LBFGSERR_ROUNDING_ERROR stopping condition ([3cff310b8c](https://github.com/InsightSoftwareConsortium/ITK/commit/3cff310b8c)) + +#### Platform Fixes + +- fix CMake Deprecation Warning (Compatibility with CMake < 2.8.12) ([ff2643f37b](https://github.com/InsightSoftwareConsortium/ITK/commit/ff2643f37b)) +- Fix CMake warning by setting policy 0120 to OLD ([ce2efb1b9e](https://github.com/InsightSoftwareConsortium/ITK/commit/ce2efb1b9e)) +- Disable CMake warning by setting policy 0120 to OLD ([d9de577a7f](https://github.com/InsightSoftwareConsortium/ITK/commit/d9de577a7f)) + +#### Bug Fixes + +- Fix crash in itk.image_from_xarray if is_vector and Dimension==4 ([3f2d117175](https://github.com/InsightSoftwareConsortium/ITK/commit/3f2d117175)) + +#### Style Changes + +- mark ultrasound remote module enablement as advanced variable ([2c660a404c](https://github.com/InsightSoftwareConsortium/ITK/commit/2c660a404c)) +- use ReadImage and WriteImage in PolygonSpatialObjectIsInsideTest ([75adb9fa30](https://github.com/InsightSoftwareConsortium/ITK/commit/75adb9fa30)) + + +### Flanz, Robert (1): + +#### Bug Fixes + +- Fix regression in PolygonSpatialObject ([e3bf8e9af8](https://github.com/InsightSoftwareConsortium/ITK/commit/e3bf8e9af8)) + + +### James Butler (1): + +#### Platform Fixes + +- Fix OpenJPEG build error with Visual Studio 16.9 ([7cebc26dfa](https://github.com/InsightSoftwareConsortium/ITK/commit/7cebc26dfa)) + + +### Jon Haitz Legarreta Gorroño (11): + +#### Enhancements + +- Label PRs on filenames ([1db37989c2](https://github.com/InsightSoftwareConsortium/ITK/commit/1db37989c2)) +- Trigger PR labeler workflows from forks ([3afcc781a0](https://github.com/InsightSoftwareConsortium/ITK/commit/3afcc781a0)) +- Increase code coverage ([f704b5f12c](https://github.com/InsightSoftwareConsortium/ITK/commit/f704b5f12c)) + +#### Documentation Updates + +- Remove duplicate `README` file from `Review` module test folder ([c077bb3f62](https://github.com/InsightSoftwareConsortium/ITK/commit/c077bb3f62)) + +#### Platform Fixes + +- Fix deduced type initialization warning and operand mismatch error ([25dea2f73d](https://github.com/InsightSoftwareConsortium/ITK/commit/25dea2f73d)) +- Fix image pointer casting error ([1c25350c93](https://github.com/InsightSoftwareConsortium/ITK/commit/1c25350c93)) +- Fix missing initializer warning ([7548a390d7](https://github.com/InsightSoftwareConsortium/ITK/commit/7548a390d7)) +- Avoid creating a copy variable ([6c352afd04](https://github.com/InsightSoftwareConsortium/ITK/commit/6c352afd04)) +- Fix unreachable code warning ([4b8767b7c5](https://github.com/InsightSoftwareConsortium/ITK/commit/4b8767b7c5)) + +#### Style Changes + +- Add missing source file extension to `Common` module tests ([d5bfbef81c](https://github.com/InsightSoftwareConsortium/ITK/commit/d5bfbef81c)) +- Move `DCMTK` test baselines to module's `Baseline` folder ([55a186f1d4](https://github.com/InsightSoftwareConsortium/ITK/commit/55a186f1d4)) + + +### Lee Newberg (11): + +#### Enhancements + +- Use (Shaped)RegionRange instead of (Shaped)RegionIterator. ([ca23a2b2ad](https://github.com/InsightSoftwareConsortium/ITK/commit/ca23a2b2ad)) +- Mark most CMake variables as advanced ([4c785c2176](https://github.com/InsightSoftwareConsortium/ITK/commit/4c785c2176)) +- Support ArrayLike type with both numpy>=1.20 and numpy<1.20. ([5c86c02178](https://github.com/InsightSoftwareConsortium/ITK/commit/5c86c02178)) + +#### Performance Improvements + +- Make loop over labels be multi-threaded ([b1ffefe79a](https://github.com/InsightSoftwareConsortium/ITK/commit/b1ffefe79a)) +- Use std ([5e884ceb29](https://github.com/InsightSoftwareConsortium/ITK/commit/5e884ceb29)) + +#### Platform Fixes + +- type and const safety in ContourExtractor2DImageFilter ([ad81939921](https://github.com/InsightSoftwareConsortium/ITK/commit/ad81939921)) +- Fix gcc4.8 warnings + errors itkContourExtractor2DImageFilter.hxx ([396c2a172e](https://github.com/InsightSoftwareConsortium/ITK/commit/396c2a172e)) +- Replace Type{} with Type() for gcc4. ([22ca5dd83d](https://github.com/InsightSoftwareConsortium/ITK/commit/22ca5dd83d)) +- Address ContourExtractor2DImageFilter valgrind defects ([be7c5fda7e](https://github.com/InsightSoftwareConsortium/ITK/commit/be7c5fda7e)) + +#### Bug Fixes + +- Fix reference counts for HDF5 DataSet assignment operator ([479b9424e8](https://github.com/InsightSoftwareConsortium/ITK/commit/479b9424e8)) + +#### Style Changes + +- Mimic code that was reviewed for the upstream HDF5 source ([090399dbf0](https://github.com/InsightSoftwareConsortium/ITK/commit/090399dbf0)) + + +### Matt McCormick (21): + +#### Enhancements + +- Support 32 bit integer IO in wrapping ([beb286c327](https://github.com/InsightSoftwareConsortium/ITK/commit/beb286c327)) +- Bump KWStyle to 2021-03-17 master ([541b779329](https://github.com/InsightSoftwareConsortium/ITK/commit/541b779329)) +- Add typehints for itk types to extras ([22827a5e97](https://github.com/InsightSoftwareConsortium/ITK/commit/22827a5e97)) +- Add typehints for itk functional filters ([ed11fdcf73](https://github.com/InsightSoftwareConsortium/ITK/commit/ed11fdcf73)) +- Add .process_object attribute to functional filters ([06fe2c3c0b](https://github.com/InsightSoftwareConsortium/ITK/commit/06fe2c3c0b)) +- Update testing data content links for ITK 5.2.0 ([ac080c97b1](https://github.com/InsightSoftwareConsortium/ITK/commit/ac080c97b1)) + +#### Documentation Updates + +- Update notes for ITKExamples -> ITKSphinxExamples repository renaming ([bf7600b317](https://github.com/InsightSoftwareConsortium/ITK/commit/bf7600b317)) +- Update .zenodo ([bbf4a978c0](https://github.com/InsightSoftwareConsortium/ITK/commit/bbf4a978c0)) + +#### Platform Fixes + +- Wrap FastSymmetricForcesDemonsRegistrationFilter like its parent class ([a9d9690b32](https://github.com/InsightSoftwareConsortium/ITK/commit/a9d9690b32)) +- Set Windows Python CI version to 3.8 ([f1978435f8](https://github.com/InsightSoftwareConsortium/ITK/commit/f1978435f8)) +- Build PNG arm sources for aarch64 CMAKE_SYSTEM_PROCESSOR ([27216ceb98](https://github.com/InsightSoftwareConsortium/ITK/commit/27216ceb98)) +- Constrain x86_64 optimization flags according to CMAKE_SYSTEM_PROCESSOR ([28d2b22ca7](https://github.com/InsightSoftwareConsortium/ITK/commit/28d2b22ca7)) +- Add lxmml for Windows Python CI build ([0fb00c7977](https://github.com/InsightSoftwareConsortium/ITK/commit/0fb00c7977)) +- Do not explicitly instantiate Array in itkArrayTest ([f5ce437b9d](https://github.com/InsightSoftwareConsortium/ITK/commit/f5ce437b9d)) +- Add tolerance for patch-based denoising tests on Apple M1 ([84b59dcee4](https://github.com/InsightSoftwareConsortium/ITK/commit/84b59dcee4)) + +#### Bug Fixes + +- Checkout full depths for clang-format-linter ([3f0d124b8f](https://github.com/InsightSoftwareConsortium/ITK/commit/3f0d124b8f)) +- Add __all__ to itk.support.init_helpers ([14992c6cd7](https://github.com/InsightSoftwareConsortium/ITK/commit/14992c6cd7)) +- Set ElementType for wrapping PyVectorContainer ([dcde43cb41](https://github.com/InsightSoftwareConsortium/ITK/commit/dcde43cb41)) + +#### Style Changes + +- Remove extra itk prefix from support Python modules ([4aba024e75](https://github.com/InsightSoftwareConsortium/ITK/commit/4aba024e75)) +- Use modern, Pythonic style in ImageRegistration3.py ([224043546e](https://github.com/InsightSoftwareConsortium/ITK/commit/224043546e)) +- black formatting on Python modules ([08eb3675b8](https://github.com/InsightSoftwareConsortium/ITK/commit/08eb3675b8)) + + +### Mihail Isakov (1): + +#### Platform Fixes + +- Forward CMAKE_APPLE_SILICON_PROCESSOR ([4fbacb9513](https://github.com/InsightSoftwareConsortium/ITK/commit/4fbacb9513)) + + +### Niels Dekker (27): + +#### Enhancements + +- Add explicit OptimizerParameters(inputData, dimension) constructor ([800e59e9ea](https://github.com/InsightSoftwareConsortium/ITK/commit/800e59e9ea)) +- Make itk ([59ebc33c6e](https://github.com/InsightSoftwareConsortium/ITK/commit/59ebc33c6e)) +- Add static member function, `itk ([f8ad6cfdee](https://github.com/InsightSoftwareConsortium/ITK/commit/f8ad6cfdee)) + +#### Platform Fixes + +- Add virtual destructor to TestClass in ExceptionObject unit test ([e2c62faf10](https://github.com/InsightSoftwareConsortium/ITK/commit/e2c62faf10)) +- Avoid "message" naming conflicts when calling an exception macro ([3d35e43c08](https://github.com/InsightSoftwareConsortium/ITK/commit/3d35e43c08)) +- Define ExceptionObject destructor out-of-line (doing Rule of Five) ([0fce3ff86b](https://github.com/InsightSoftwareConsortium/ITK/commit/0fce3ff86b)) +- Fix macOS clang warnings [-Wunused-variable] in test source files ([24744f9ef4](https://github.com/InsightSoftwareConsortium/ITK/commit/24744f9ef4)) +- Fix macOS clang warning [-Wunused-variable] in itkMINCImageIOTest ([b2c3042da9](https://github.com/InsightSoftwareConsortium/ITK/commit/b2c3042da9)) +- No longer test `is_trivially_copyable` in itkMatrixGTest on GCC 4 ([f24496d1b8](https://github.com/InsightSoftwareConsortium/ITK/commit/f24496d1b8)) +- Workaround Clang 3 error default initialization const MatrixGTest ([874f51dba7](https://github.com/InsightSoftwareConsortium/ITK/commit/874f51dba7)) + +#### Bug Fixes + +- Remove duplicate "itk ([df0a977dd4](https://github.com/InsightSoftwareConsortium/ITK/commit/df0a977dd4)) +- Remove duplicate "itk ([1bd35b3bd5](https://github.com/InsightSoftwareConsortium/ITK/commit/1bd35b3bd5)) + +#### Style Changes + +- Remove 6 no-op dynamic_casts (casting T* to T*) from Modules/Core ([5b3fc71e87](https://github.com/InsightSoftwareConsortium/ITK/commit/5b3fc71e87)) +- Avoid "no-op" dynamic_cast from inside LightObject ([64cafdf93d](https://github.com/InsightSoftwareConsortium/ITK/commit/64cafdf93d)) +- Remove 9 no-op dynamic_casts (casting T* to T*) ([5089a04475](https://github.com/InsightSoftwareConsortium/ITK/commit/5089a04475)) +- Remove unintended extra space from destructors and operators ([1e99f17cf3](https://github.com/InsightSoftwareConsortium/ITK/commit/1e99f17cf3)) +- ExceptionObject may assume that std ([bf82b3cfee](https://github.com/InsightSoftwareConsortium/ITK/commit/bf82b3cfee)) +- Follow Rule of Zero and use std ([f88fefff52](https://github.com/InsightSoftwareConsortium/ITK/commit/f88fefff52)) +- C++11 inheriting constructors from ExceptionObject for 4 classes ([e41b2ef921](https://github.com/InsightSoftwareConsortium/ITK/commit/e41b2ef921)) +- Remove destructors ExceptionObject derived classes (Rule of Zero) ([79cf5c07b2](https://github.com/InsightSoftwareConsortium/ITK/commit/79cf5c07b2)) +- Use equal_to on pixel containers DenseFiniteDifferenceImageFilter ([670863f3c8](https://github.com/InsightSoftwareConsortium/ITK/commit/670863f3c8)) +- Replace "itk ([2b34388159](https://github.com/InsightSoftwareConsortium/ITK/commit/2b34388159)) +- Inherit constructors (C++11) inside itkDeclareExceptionMacro ([301a0482ee](https://github.com/InsightSoftwareConsortium/ITK/commit/301a0482ee)) +- Remove ITK_MACROEND_NOOP_STATEMENT calls from exception macro's ([3f6c15eb53](https://github.com/InsightSoftwareConsortium/ITK/commit/3f6c15eb53)) +- Remove dynamic_casts PosteriorImage BayesianClassifierImageFilter ([faf3d3b223](https://github.com/InsightSoftwareConsortium/ITK/commit/faf3d3b223)) +- Remove `;` from itkExceptionMacro PatchBasedDenoisingImageFilter ([c9f07d9d73](https://github.com/InsightSoftwareConsortium/ITK/commit/c9f07d9d73)) +- Default ImageBase default-constructor, call Matrix ([254a9691ae](https://github.com/InsightSoftwareConsortium/ITK/commit/254a9691ae)) + + +### Samuel Gerber (2): + +#### Enhancements + +- Add option to access index in point set registration ([b6a142a5b3](https://github.com/InsightSoftwareConsortium/ITK/commit/b6a142a5b3)) + +#### Performance Improvements + +- Avoid Superfluous PointsLocator Updates ([79c3c960c5](https://github.com/InsightSoftwareConsortium/ITK/commit/79c3c960c5)) + + +### Sean McBride (6): + +#### Enhancements + +- changed CTEST_DROP_METHOD from http to https ([3cd8502cd9](https://github.com/InsightSoftwareConsortium/ITK/commit/3cd8502cd9)) +- fixed failing test with macOS Rosetta emulation by increasing buffer size ([bca298ab36](https://github.com/InsightSoftwareConsortium/ITK/commit/bca298ab36)) + +#### Platform Fixes + +- removed dead atomic operation checks ([a44407b73f](https://github.com/InsightSoftwareConsortium/ITK/commit/a44407b73f)) +- remove try-compile for SSE2 detection ([0402e50150](https://github.com/InsightSoftwareConsortium/ITK/commit/0402e50150)) +- cherrypick HDF5 commit that added C++11 override keywords ([dded4df49e](https://github.com/InsightSoftwareConsortium/ITK/commit/dded4df49e)) +- fix link error building Universal Binary on Intel Mac ([3fe5595ae6](https://github.com/InsightSoftwareConsortium/ITK/commit/3fe5595ae6)) + + +### Simon Rit (1): + +#### Platform Fixes + +- add FFTW library directory to FFT module ([c5f8949654](https://github.com/InsightSoftwareConsortium/ITK/commit/c5f8949654)) + + +### Tom Birdsong (3): + +#### Enhancements + +- Expose numpy / vector container interface ([cca42db412](https://github.com/InsightSoftwareConsortium/ITK/commit/cca42db412)) +- Type hints in functional interface ([208e1e59e0](https://github.com/InsightSoftwareConsortium/ITK/commit/208e1e59e0)) + +#### Bug Fixes + +- Wrap PyVectorContainer for all VectorContainer templates ([7216ed1ebd](https://github.com/InsightSoftwareConsortium/ITK/commit/7216ed1ebd)) + + +### VXL Maintainers (2): + +#### Miscellaneous Changes + +- 1044055af6 ([1044055af6](https://github.com/InsightSoftwareConsortium/ITK/commit/1044055af6)) +- 74eaa203d2 ([74eaa203d2](https://github.com/InsightSoftwareConsortium/ITK/commit/74eaa203d2)) + + + + +ITK Sphinx Examples Changes Since v5.2rc03 +--------------------------------------------- + +### Brian Helba (1): + +#### Enhancements + +- Use the upstream CMake ExternalData module, instead of a vendored local copy ([d1f7d985](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d1f7d985)) + + +### Dženan Zukić (1): + +#### Style Changes + +- Switch to the new code order ([5db4da31](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/5db4da31)) + + +### Lee Newberg (5): + +#### Documentation Updates + +- Indicate how to adjust resolution in ResampleAnImage ([896d48e2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/896d48e2)) +- Add details for running CreateNewExample.py ([532ca008](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/532ca008)) +- RescaleAnImage -> RescaleIntensity to clarify that it's not about size. ([a732d546](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/a732d546)) + +#### Platform Fixes + +- Include for some files ([87ab548a](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/87ab548a)) + +#### Bug Fixes + +- Fix continuous integration failure of ResampleAnImage ([66b8d2f0](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/66b8d2f0)) + + +### Mathew Seng (7): + +#### Enhancements + +- Enable use of titlecase for header creation ([b33b3806](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b33b3806)) + +#### Documentation Updates + +- Rename folder directories ([3190a58e](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/3190a58e)) +- Allow consistent Documentation.rst headers ([65e5b8f9](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/65e5b8f9)) +- Put remaining example headers into proper format ([d2b99b30](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d2b99b30)) +- Enable LineSpatialObject doxygen references in Sphinx ([8dd5e762](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/8dd5e762)) + +#### Bug Fixes + +- Submodules not ordered in alphabetical order ([c806da3e](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c806da3e)) +- Rename LineSpatialObject to CreateALineSpatialObject ([47e05d48](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/47e05d48)) + + +### Matt McCormick (44): + +#### Enhancements + +- Add .ipynb_checkpoints to .gitignore ([81a58211](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/81a58211)) +- Upgrade to ITK 5.2 RC 3 ([227eeff5](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/227eeff5)) +- Add clang-format pre-commit hook ([eb063108](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/eb063108)) +- Add black style pre-commit hook ([0175c886](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0175c886)) +- Bump Netlify GitHub Action to v1.1.13 ([0ee18172](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0ee18172)) +- Test Python in CI with the Superbuild ([57e24097](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/57e24097)) +- Add IsPixelInsideRegion Python example ([b9b630b2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b9b630b2)) +- Update ITK Required version to 5.2.0 ([f76453ee](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f76453ee)) +- Update ITK to v5.2.0 ([5377df13](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/5377df13)) +- Simplify ResampleAnImage output parameters ([e148246a](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/e148246a)) + +#### Documentation Updates + +- Place Jupyter Notebook section before Code ([54f836da](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/54f836da)) +- Rename UpsampleOrDownsampleAScalarImage to ResampleAScalarImage ([86f62137](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/86f62137)) +- Add Python code for ResampleAScalarImage ([0a458df4](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0a458df4)) +- Place resample examples next to each other in module index ([33cdf2c4](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/33cdf2c4)) +- Simplify ResampleSegmentedImage, Python version ([d3ae2969](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d3ae2969)) +- Add pandoc, nbsphinx to the documentation deps ([63634901](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/63634901)) +- Rename build-test-superbuild to build-test-python ([d5505edb](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d5505edb)) +- Install titlecase package for CreateNewExample.py script ([7489cce3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/7489cce3)) +- Update example Download link instructions ([c17864d3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c17864d3)) +- Update build instructions for example .zip files ([249b93e9](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/249b93e9)) + +#### Platform Fixes + +- Bump ITK version to 2021-03-14 master ([74142c32](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/74142c32)) +- Make the Sphinx linkcheck optional ([7eae01a1](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/7eae01a1)) + +#### Bug Fixes + +- Remove Compatibility/Deprecated group ([b0777843](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b0777843)) +- Enable production-deploy on Netlify GitHub Action ([8bcc38b8](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/8bcc38b8)) +- Do not use shallow checkout for linting ([43a59ba7](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/43a59ba7)) +- Use super-linter GitHub Action for black linting ([2be5415c](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/2be5415c)) +- Remove unnecessary matrix options for notebook testing ([017d6fd3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/017d6fd3)) +- Add nbsphinx to the superbuild Python packages ([71aecd82](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/71aecd82)) +- Require itk>=5.2.0.post2 for notebook tests ([97c6e553](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/97c6e553)) +- Tarball html output path when not built as a remote module ([f76dc431](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f76dc431)) +- Fix download links ([635cbc75](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/635cbc75)) +- Add ipython to Python environment for documentation build ([f6cbeb76](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f6cbeb76)) +- Correct MutualInformationAffine output ([f5e029f2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f5e029f2)) +- Transform SVG files in Sphinx ([0e0de5fb](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0e0de5fb)) +- Fix epub output path link in documentation ([0ca83aa3](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0ca83aa3)) + +#### Style Changes + +- Pythonic style for ResampleAVectorImage ([4cdd7029](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/4cdd7029)) +- Use itk ([fc822448](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/fc822448)) +- Use Pythonic interface for ResampleAnImage ([473070bf](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/473070bf)) +- Run black on all Python examples ([05bd86a4](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/05bd86a4)) +- Add black, flake8 GitHub Action linters ([6dd94077](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/6dd94077)) +- Disable JSCPD check ([dbda6ab0](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/dbda6ab0)) +- Explicitly enable black linting for super-linter ([4fdae985](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/4fdae985)) +- Rename ITKExamples to ITKSphinxExamples ([b0d53207](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/b0d53207)) +- Only output downloadable .zip archives for examples ([567b01c6](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/567b01c6)) + + +### Melvin Robinson (3): + +#### Documentation Updates + +- Update documentation output to match Code.cxx output ([0e2eca92](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0e2eca92)) + +#### Miscellaneous Changes + +- 8176dc90 ([8176dc90](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/8176dc90)) +- d695005d ([d695005d](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d695005d)) + + +### Pablo Hernandez-Cerdan (2): + +#### Enhancements + +- Use itk.image_to_vtk_image ([49750fad](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/49750fad)) + +#### Platform Fixes + +- Remove "vtk" prefix from VTK COMPONENTS ([9c045a18](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/9c045a18)) + + +### Stephen Aylward (5): + +#### Platform Fixes + +- Bump min required version for CMake to > 2.8 to avoid warning ([f75e9c87](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f75e9c87)) + +#### Bug Fixes + +- CreateTarball assumes /src/ is unique in path ([37da5d6c](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/37da5d6c)) + +#### Style Changes + +- Reformatting CreateTarball.py to match lint ([e706163a](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/e706163a)) +- Additional lint changes to CreateTarball.py ([d19ecc34](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d19ecc34)) + +#### Miscellaneous Changes + +- Fix remaining lint issues ([94d58947](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/94d58947)) + + +### Tom Birdsong (4): + +#### Enhancements + +- Build notebook docs with nbsphinx ([c5eae3cc](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c5eae3cc)) +- Add ComputeMeanSquareBetweenTwoImages Python example ([d7928a96](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d7928a96)) + +#### Bug Fixes + +- Move build-test-cxx CI source tree to path with shorter name ([2f3b1dfc](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/2f3b1dfc)) +- Use GZip for Doxygen XML archive ([2d30a5bc](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/2d30a5bc)) + + +### suryanshsangwan (1): + +#### Miscellaneous Changes + +- ea1de658 ([ea1de658](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/ea1de658)) + + + + +ITK Software Guide Changes Since v5.2rc03 +--------------------------------------------- + +### Matt McCormick (4): + +#### Enhancements + +- Bump ITK version to 5.2rc03 ([3fda610](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/3fda610)) +- Update ITK to v5.2.0 ([d5dab33](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/d5dab33)) + +#### Documentation Updates + +- Update for ITKExamples -> ITKSphinxExamples renaming ([c4846a2](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/c4846a2)) + +#### Bug Fixes + +- Work around CI environmental variable setting ([944a3e2](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/944a3e2)) + + + + +Remote Module Changes Since v5.2rc03 +--------------------------------------------- + +## AnisotropicDiffusionLBR: +### Mathew Seng (1): + +#### Platform Fixes + +- Update GitHub Actions from ITKModuleTemplate ([3df1fde](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/3df1fde)) + + +### Matt McCormick (3): + +#### Enhancements + +- Update CI for ITK 5.2 RC 3 ([cc6c28c](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/cc6c28c)) + +#### Platform Fixes + +- Constrain wrapping to 2D, 3D images ([4cec024](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/4cec024)) + +#### Bug Fixes + +- Incorporate ITKModuleTemplate CI configuration updates ([1720bae](https://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR/commit/1720bae)) + + + +## BSplineGradient: +### Matt McCormick (1): + +#### Enhancements + +- Bump CI to ITK 5.2 RC 3 ([76996c4](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/76996c4)) + + + +## HigherOrderAccurateGradient: +### Matt McCormick (1): + +#### Enhancements + +- Bump CI to ITK 5.2 RC 3 ([59fa983](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient/commit/59fa983)) + + + +## IOFDF: +### Matt McCormick (2): + +#### Enhancements + +- Update CI for ITK 5.2 RC 3 ([f79f207](https://github.com/InsightSoftwareConsortium/ITKIOFDF/commit/f79f207)) + +#### Documentation Updates + +- Add PyPI, License badges ([587a000](https://github.com/InsightSoftwareConsortium/ITKIOFDF/commit/587a000)) + + + +## IOScanco: +### Dženan Zukić (6): + +#### Enhancements + +- enable writing ISQ files ([08e269a](https://github.com/KitwareMedical/ITKIOScanco/commit/08e269a)) +- avoid possible buffer overflows on string ivar setters ([0f60565](https://github.com/KitwareMedical/ITKIOScanco/commit/0f60565)) +- Initializing MuWater constant to the usual value ([50aafe1](https://github.com/KitwareMedical/ITKIOScanco/commit/50aafe1)) +- update CI to 5.2RC3+ ([823fb92](https://github.com/KitwareMedical/ITKIOScanco/commit/823fb92)) + +#### Performance Improvements + +- do not re-scale the data if there is no need for it ([b4392f4](https://github.com/KitwareMedical/ITKIOScanco/commit/b4392f4)) + +#### Bug Fixes + +- do not crash in CanReadFile if the path does not exist ([7569472](https://github.com/KitwareMedical/ITKIOScanco/commit/7569472)) + + +### Matt McCormick (3): + +#### Enhancements + +- Populate the Image MetaDataDictionary when reading ([4e887b2](https://github.com/KitwareMedical/ITKIOScanco/commit/4e887b2)) +- Update build for ITK 5.2 RC 3 ([4dd399f](https://github.com/KitwareMedical/ITKIOScanco/commit/4dd399f)) +- Populate the Image MetaDataDictionary when reading ([f44399d](https://github.com/KitwareMedical/ITKIOScanco/commit/f44399d)) + + +### Michael Kuczynski (3): + +#### Enhancements + +- Add Tests for AIM Reading ([05a019d](https://github.com/KitwareMedical/ITKIOScanco/commit/05a019d)) + +#### Bug Fixes + +- Updated Baseline AIM Image to Pass Tests ([8b0ab02](https://github.com/KitwareMedical/ITKIOScanco/commit/8b0ab02)) + +#### Style Changes + +- Update Output File Names in Tests ([530cc34](https://github.com/KitwareMedical/ITKIOScanco/commit/530cc34)) + + + +## MinimalPathExtraction: +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK v5.2rc03+ ([537b34a](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/537b34a)) + + + +## Montage: +### Dženan Zukić (10): + +#### Enhancements + +- update CI to 5.2RC3+ ([2869345](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/2869345)) +- add getters and setters to Tile and TileConfiguration for Python access ([325add3](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/325add3)) +- avoid deadlock when invoked via Python ([62d6492](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/62d6492)) +- support RGB and RGBA pixel types for TileMergeImageFilter ([7f565de](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/7f565de)) +- adding a Python example ([ebe2dc3](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/ebe2dc3)) +- review suggestions ([fc0a8d6](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/fc0a8d6)) + +#### Documentation Updates + +- Fix a broken article link ([65dbdc8](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/65dbdc8)) + +#### Bug Fixes + +- Do not use shallow checkout for linting ([458424d](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/458424d)) + +#### Style Changes + +- minor corrections ([29707c0](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/29707c0)) +- allow wider range of types for instantiating merge filter ([cb86803](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/cb86803)) + + +### Matt McCormick (3): + +#### Enhancements + +- Update builds for ITK 5.2 RC 3 ([4b6aa42](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/4b6aa42)) + +#### Documentation Updates + +- Add article citation ([86fa4e0](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/86fa4e0)) +- Improve authors for Zukić, Dž. ([b66bb4f](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/b66bb4f)) + + + +## MorphologicalContourInterpolation: +### Adrien Boucaud (2): + +#### Enhancements + +-  Add a flag to enable/disable extrapolation ([ca5f688](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/ca5f688)) +-  Update CI for ITK 5.2rc03 ([87deba0](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/87deba0)) + + +### Dženan Zukić (2): + +#### Enhancements + +- adding a Python example with a simple test with an input image ([2f90b24](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/2f90b24)) +- build examples as part of CI testing ([539da4f](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/539da4f)) + + + +## RLEImage: +### Matt McCormick (1): + +#### Enhancements + +- Update Python package version requirement to 5.2rc1 ([3ac76da](https://github.com/KitwareMedical/ITKRLEImage/commit/3ac76da)) + + + +## RTK: +### Lucas Gandel (1): + +#### Platform Fixes + +- Add missing iostream include for CUDA classes ([3dba9889](https://github.com/SimonRit/RTK/commit/3dba9889)) + + +### Simon Rit (6): + +#### Enhancements + +- upgrade CI for python packages to 5.2rc02 ([3a00f178](https://github.com/SimonRit/RTK/commit/3a00f178)) +- wrap RegularizedConjugateGradientConeBeamReconstructionFilter ([4f3b7506](https://github.com/SimonRit/RTK/commit/4f3b7506)) +- upgrade CI for python packages to 5.2rc03 ([6da67e06](https://github.com/SimonRit/RTK/commit/6da67e06)) + +#### Documentation Updates + +- fix broken links to Siggraph pages ([70cd3b37](https://github.com/SimonRit/RTK/commit/70cd3b37)) + +#### Bug Fixes + +- missing initialization of SART division threshold ([dd7a5fe9](https://github.com/SimonRit/RTK/commit/dd7a5fe9)) + +#### Style Changes + +- rename guards for Cuda includes following ITK's style ([dd660a00](https://github.com/SimonRit/RTK/commit/dd660a00)) + + + +## SplitComponents: +### Matt McCormick (3): + +#### Enhancements + +- Bump CI for ITK 5.2 RC 3 ([5c70947](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/5c70947)) + +#### Documentation Updates + +- Remove Azure Pipelines badge ([72594b2](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/72594b2)) + +#### Platform Fixes + +- Update ITK version to 2021-03-14 master for Windows CI builds ([fc7de89](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/fc7de89)) + + + +## Strain: +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK 5.2 RC 3 ([9af85d8](https://github.com/KitwareMedical/ITKStrain/commit/9af85d8)) + + + +## Thickness3D: +### Mathew Seng (1): + +#### Platform Fixes + +- Update GitHub Actions from ITKModuleTemplate ([82bb742](https://github.com/InsightSoftwareConsortium/ITKThickness3D/commit/82bb742)) + + +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK v5.2rc02 ([2150b11](https://github.com/InsightSoftwareConsortium/ITKThickness3D/commit/2150b11)) + + + +## TotalVariation: +### Matt McCormick (2): + +#### Enhancements + +- Update CI for ITK 5.2 RC 2 ([147c4cb](https://github.com/InsightSoftwareConsortium/ITKTotalVariation/commit/147c4cb)) + +#### Documentation Updates + +- Update setup.py download_url ([b3564d7](https://github.com/InsightSoftwareConsortium/ITKTotalVariation/commit/b3564d7)) + + + +## TubeTK: +### Mathew Seng (6): + +#### Enhancements + +- Cannot have both a modifiable and constant object macro ([b3b717c3](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/b3b717c3)) + +#### Platform Fixes + +- Update GitHub Actions from ITKModuleTemplate ([79485ec1](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/79485ec1)) + +#### Bug Fixes + +- Remove old CI configurations ([d0769c36](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/d0769c36)) + +#### Style Changes + +- Update itkGetObjectMacro macros ([b8e642e9](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/b8e642e9)) +- Rename ITK_DISALLOW_COPY_AND_ASSIGN to ITK_DISALLOW_COPY_AND_MOVE Fixes changes made in #2053. ITK_DISALLOW_COPY_AND_ASSIGN will be used if ITK_FUTURE_LEGACY_REMOVE=OFF. ([918d7b01](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/918d7b01)) +- Place ';' at the end of each macro ([7bb42067](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/7bb42067)) + + +### Matt McCormick (3): + +#### Enhancements + +- Update CI configuration for ITK 5.2 RC 3 ([40bbcfb1](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/40bbcfb1)) + +#### Documentation Updates + +- Fix CI status badge ([e4cb53d0](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/e4cb53d0)) + +#### Platform Fixes + +- Add cmake_minimum_required to top level CMakeLists.txt ([05b347c4](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/05b347c4)) + + +### Stephen Aylward (3): + +#### Enhancements + +- Combine jupyter notebooks into single .py file for CTP-Head ([53a34786](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/53a34786)) +- Remove cmake_minimum_requirements since ITK defines them. ([4024de62](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/4024de62)) + +#### Bug Fixes + +- Eliminate chance of divide by zero in itktubeBlurImageFunction ([7d90c1f3](https://github.com/InsightSoftwareConsortium/ITKTubeTK/commit/7d90c1f3)) + + + +## Ultrasound: +### Matt McCormick (3): + +#### Enhancements + +- Update Notebook to Python 3 ([61bec2c](https://github.com/KitwareMedical/ITKUltrasound/commit/61bec2c)) +- Add notebook CI testing ([cae3e45](https://github.com/KitwareMedical/ITKUltrasound/commit/cae3e45)) + +#### Style Changes + +- Move notebooks into examples/ directory directly ([d8ebede](https://github.com/KitwareMedical/ITKUltrasound/commit/d8ebede)) + + + + diff --git a/Documentation/Releases/5.3.md b/Documentation/docs/releases/5.3.md similarity index 99% rename from Documentation/Releases/5.3.md rename to Documentation/docs/releases/5.3.md index 308e7e8eb09..be4a7ef2399 100644 --- a/Documentation/Releases/5.3.md +++ b/Documentation/docs/releases/5.3.md @@ -1,5 +1,5 @@ -ITK 5.3.0 Release Notes -========================================== +ITK 5.3.0 Release Notes: 3D Slicer Python Packages +=================================================== We are exceedingly pleased to announce the [Insight Toolkit (ITK)](https://itk.org) 5.3.0 is available for download! :tada: :santa: :gift: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration in a spatially-oriented architecture. diff --git a/Documentation/Releases/5.3rc01.md b/Documentation/docs/releases/5.3rc01.md similarity index 99% rename from Documentation/Releases/5.3rc01.md rename to Documentation/docs/releases/5.3rc01.md index bda964df1fc..849e8ef1958 100644 --- a/Documentation/Releases/5.3rc01.md +++ b/Documentation/docs/releases/5.3rc01.md @@ -1,5 +1,5 @@ -ITK 5.3 Release Candidate 1 Release Notes -========================================== +ITK 5.3 Release Candidate 1 Release Notes: Performance +======================================================= We are happy to announce the [Insight Toolkit (ITK)](https://itk.org) 5.3 Release Candidate 1 is available for testing! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. diff --git a/Documentation/Releases/5.3rc02.md b/Documentation/docs/releases/5.3rc02.md similarity index 99% rename from Documentation/Releases/5.3rc02.md rename to Documentation/docs/releases/5.3rc02.md index 3d98c99a395..e1b0a88ce0a 100644 --- a/Documentation/Releases/5.3rc02.md +++ b/Documentation/docs/releases/5.3rc02.md @@ -1,5 +1,5 @@ -ITK 5.3 Release Candidate 2 Release Notes -========================================== +ITK 5.3 Release Candidate 2 Release Notes: Grow Cuts +===================================================== We are happy to announce the [Insight Toolkit (ITK)](https://itk.org) 5.3 Release Candidate 2 is available for testing! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. diff --git a/Documentation/Releases/5.3rc03.md b/Documentation/docs/releases/5.3rc03.md similarity index 99% rename from Documentation/Releases/5.3rc03.md rename to Documentation/docs/releases/5.3rc03.md index 1b63b215bbb..e247815c69d 100644 --- a/Documentation/Releases/5.3rc03.md +++ b/Documentation/docs/releases/5.3rc03.md @@ -1,5 +1,5 @@ -ITK 5.3 Release Candidate 3 Release Notes -========================================== +ITK 5.3 Release Candidate 3 Release Notes: Documentation +========================================================= We are happy to announce the [Insight Toolkit (ITK)](https://itk.org) 5.3 Release Candidate 3 is available for testing! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. diff --git a/Documentation/Releases/5.3rc04.md b/Documentation/docs/releases/5.3rc04.md similarity index 99% rename from Documentation/Releases/5.3rc04.md rename to Documentation/docs/releases/5.3rc04.md index 6aac1580eb5..7af7c4db06e 100644 --- a/Documentation/Releases/5.3rc04.md +++ b/Documentation/docs/releases/5.3rc04.md @@ -1,3 +1,5 @@ +# ITK 5.3 Release Candidate 4: Distributed Computing + We are happy to announce the [Insight Toolkit (ITK)](https://itk.org) 5.3 Release Candidate 4 is available for testing! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. ITK 5.3 is a feature release that accelerates performance, provides new segmentation and shape analysis algorithms, improves documentation, adds distributed computing support, among many more improvements. For more information about performance improvements, see [the 5.3 RC 1 Release Notes](https://github.com/InsightSoftwareConsortium/ITK/releases/tag/v5.3rc01). For more information about new segmentation and shape analysis algorithms, see [the 5.3 RC 2 Release Notes](https://github.com/InsightSoftwareConsortium/ITK/releases/tag/v5.3rc02). For more information about documentation improvements, see [the 5.3 RC 3 Release Notes](https://github.com/InsightSoftwareConsortium/ITK/releases/tag/v5.3rc03). diff --git a/Documentation/docs/releases/5.4rc01.md b/Documentation/docs/releases/5.4rc01.md new file mode 100644 index 00000000000..78bf2de4941 --- /dev/null +++ b/Documentation/docs/releases/5.4rc01.md @@ -0,0 +1,1873 @@ +# ITK 5.4 Release Candidate 1: C++17 + +We are happy to announce the [Insight Toolkit (ITK)](https://itk.org) 5.4 Release Candidate 1 is available for testing! :tada: ITK is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration. + +:flashlight: Highlights +------------------------- + +ITK 5.4 is a feature release that continues our modern C++ evolution by requiring C\+\+17. The toolkit progresses in performance with a simple and elegant style and syntax. Through hundreds of changes in this release, we advance in readability and maintainability for the library and client code, often facilitated by improvements in the C++ standards. + +Community contributions through Remote extension Modules are a valuable source of innovation in ITK, and updates to 30 modules in this release are no exception. A few examples of the Remote Modules updated include: *BoneMorphometry, Cleaver, GenericLabelInterpolator, IOScanco, LabelErodeDilate, MinimalPathExtraction, Montage, MorphologicalContourInterpolation, ParabolicMorphology, RANSAC, ReconstructionToolkit (RTK), TextureFeatures, TubeTK, Ultrasound, VkFFTBackend,* and *WebAssemblyInterface*. New modules can quickly be created with [a cookiecutter](https://github.com/InsightSoftwareConsortium/ITKModuleTemplate) and cross-platform testing for high quality development and Python package generation is supported by a [reusable GitHub Action](https://github.com/InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction). For more information, see Chapter 9 of the [ITK Software Guide](https://itk.org/ItkSoftwareGuide.pdf). + +![image](https://github.com/InsightSoftwareConsortium/ITK/assets/25432/5c603076-1ab0-41e2-aedf-a2b29522d7d2) + +*Highlights from the [ITKElastix Remote Module](https://github.com/InsightSoftwareConsortium/ITKElastix) presentation at SciPy 2023, the Annual Scientific Computing with Python Conference. Konstantinos Ntatsis, Niels Dekker, Viktor van der Valk, Tom Birdsong, Dženan Zukić, Stefan Klein, Marius Staring, & Matthew McCormick. (2023). itk-elastix: Medical image registration in Python [SciPy 2023 Poster]. Zenodo. [https://doi.org/10.5281/zenodo.8136801](https://doi.org/10.5281/zenodo.8136801).* + +💾 Download +------------- + +**Python Packages** + +Install [ITK Python packages](https://itkpythonpackage.readthedocs.io/en/latest/Quick_start_guide.html) with: + +```sh +pip install --upgrade --pre itk +``` + +**Guide and Textbook** + +- [InsightSoftwareGuide-Book1-5.4rc01.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/InsightSoftwareGuide-Book1-5.4rc01.pdf) +- [InsightSoftwareGuide-Book2-5.4rc01.pdf](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/InsightSoftwareGuide-Book2-5.4rc01.pdf) + +**Library Sources** + +- [InsightToolkit-5.4rc01.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/InsightToolkit-5.4rc01.tar.gz) +- [InsightToolkit-5.4rc01.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/InsightToolkit-5.4rc01.zip) + +**Testing Data** + +Unpack optional testing data in the same directory where the Library Source is unpacked. + +- [InsightData-5.4rc01.tar.gz](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/InsightData-5.4rc01.tar.gz) +- [InsightData-5.4rc01.zip](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/InsightData-5.4rc01.zip) + +**Checksums** + +- [MD5SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/MD5SUMS) +- [SHA512SUMS](https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.4rc01/SHA512SUMS) + + +✨ Features +------------ + +### Python + +- `itk.imread` supports a `series_uid` kwarg for DICOM series selection +- TBB version updated to latest stable version, disabled on Intel macOS +- Python binaries for 3.7-3.11 across platforms +- This will be the last release with Python 3.7 suppport +- Remote module GitHub action updated, Python 3.7 is not supported in Remote module builds +- Updated to the latest version of scikit-build + +### C++ + +- C++17 is now required +- Many style improvements for modern C++ +- GCC 13 support +- Name mangling prefix for third party libraries is configurable +- Many improvements to code coverage +- Improved SSE2 detection +- Enhanced NRRD and Nifti metadata support + +### Documentation + +- Doxygen formatting cleanup +- Doxygen spelling fixes +- Doxygen Insight Journal links are consistent +- Software Guide updated for style modernization + +### Remote module updates + +Updated modules: +- [BSplineGradient](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient.git) +- [BoneMorphometry](https://github.com/InsightSoftwareConsortium/ITKBoneMorphometry.git) +- [Cleaver](https://github.com/SCIInstitute/ITKCleaver.git) +- [Cuberille](https://github.com/InsightSoftwareConsortium/ITKCuberille.git), +- [CudaCommon](https://github.com/RTKConsortium/ITKCudaCommon.git) +- [FPFH](https://github.com/InsightSoftwareConsortium/ITKFPFH.git) +- [GenericLabelInterpolator](https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator.git) +- [HASI](https://github.com/KitwareMedical/HASI.git) +- [HigherOrderAccurateGradient](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient.git) +- [IOMeshSTL](https://github.com/InsightSoftwareConsortium/ITKIOMeshSTL.git) +- [IOMeshSWC](https://github.com/InsightSoftwareConsortium/ITKIOMeshSWC.git) +- [IOScanco](https://github.com/KitwareMedical/ITKIOScanco.git) +- [LabelErodeDilate](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate.git) +- [MeshToPolyData](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData.git) +- [MinimalPathExtraction](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction.git) +- [Montage](https://github.com/InsightSoftwareConsortium/ITKMontage.git) +- [MorphologicalContourInterpolation](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation.git) +- [ParabolicMorphology](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology.git) +- [RANSAC](https://github.com/InsightSoftwareConsortium/ITKRANSAC.git) +- [RLEImage](https://github.com/KitwareMedical/ITKRLEImage.git) +- [RTK](https://github.com/RTKConsortium/RTK.git) +- [Shape](https://github.com/SlicerSALT/ITKShape.git) +- [SimpleITKFilters](https://github.com/InsightSoftwareConsortium/ITKSimpleITKFilters.git) +- [SplitComponents](https://github.com/InsightSoftwareConsortium/ITKSplitComponents.git) +- [Strain](https://github.com/KitwareMedical/ITKStrain.git) +- [TextureFeatures](https://github.com/InsightSoftwareConsortium/ITKTextureFeatures.git) +- [Thickness3D](https://github.com/InsightSoftwareConsortium/ITKThickness3D.git) +- [TubeTK](https://github.com/InsightSoftwareConsortium/ITKTubeTK.git) +- [Ultrasound](https://github.com/KitwareMedical/ITKUltrasound.git) +- [VkFFTBackend](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend.git) +- [WebAssemblyInterface](https://github.com/InsightSoftwareConsortium/itk-wasm.git) + + +### Third party library updates + +- eigen +- gdcm +- googletest +- kwsys +- nifti +- vxl +- zlib-ng + + +🙏 Congratulations +------------------------ + +Congratulations and **thank you** to everyone who contributed to this release. + +Of the *42 authors* who contributed since v5.3.0, we would like to specially recognize the new contributors: + +*huangjxbq, Sankhesh Jhaveri, adrinkwater, FabioLolix, Vaibhaw, Ningfei Li, Max Aehle, Noah Egnatis, Federico Zivolo, Patrick Linnane, LAURENDEAU Matthieu, Shreeraj Jadhav, Shengpeng YU, Fernando Bordignon, and Andras Lasso.* + +🗣️ What's Next +--------------- + +Our next release candidate will include improvements based on experiences with 5.4 RC 1. Please try out the current release candidate, and discuss your experiences at [discourse.itk.org](https://discourse.itk.org). Contribute with pull requests, code reviews, and issue discussions in our [GitHub Organization](https://github.com/InsightSoftwareConsortium). + +**Enjoy ITK!** + +ITK Changes Since v5.3.0 +--------------------------------------------- + +### Andras Lasso (1): + +#### Bug Fixes + +- Fix read/write of displacement field in NIFTI file format ([d007ee8e78](https://github.com/InsightSoftwareConsortium/ITK/commit/d007ee8e78)) + + +### Bradley Lowekamp (20): + +#### Enhancements + +- Add VectorImage support to MaskNegateImageFilter ([e3a1a598c8](https://github.com/InsightSoftwareConsortium/ITK/commit/e3a1a598c8)) +- Set ITK_TEST_OUTPUT_DIR with module path ([7d50786353](https://github.com/InsightSoftwareConsortium/ITK/commit/7d50786353)) +- Use generator/lambda ITK filter for pixel computation ([0624dad082](https://github.com/InsightSoftwareConsortium/ITK/commit/0624dad082)) +- Restore integer support for laplacian sharpening ([6a5060be54](https://github.com/InsightSoftwareConsortium/ITK/commit/6a5060be54)) + +#### Platform Fixes + +- Supress warning in MSVC for non-float complex ([3a9c76273e](https://github.com/InsightSoftwareConsortium/ITK/commit/3a9c76273e)) +- fix linkage for MINCTransformIO ([97f003cb91](https://github.com/InsightSoftwareConsortium/ITK/commit/97f003cb91)) +- Supress warning in MSVC for non-float complex ([a7a3e5dfe0](https://github.com/InsightSoftwareConsortium/ITK/commit/a7a3e5dfe0)) +- Address HasNumericTraits failure for Vector pixel type. ([c9fc138886](https://github.com/InsightSoftwareConsortium/ITK/commit/c9fc138886)) +- address missing enum error ([dbc9c9112f](https://github.com/InsightSoftwareConsortium/ITK/commit/dbc9c9112f)) +- QualifiedIterator follow rule of zero ([df6aa66e40](https://github.com/InsightSoftwareConsortium/ITK/commit/df6aa66e40)) + +#### Bug Fixes + +- Set GTest discovery timeout to 120 ([050bab52f2](https://github.com/InsightSoftwareConsortium/ITK/commit/050bab52f2)) +- Restore setting TargetPoints after ReachMode ([bb0f6e84fe](https://github.com/InsightSoftwareConsortium/ITK/commit/bb0f6e84fe)) +- Remove dead code in MRC Header ([d96191b40e](https://github.com/InsightSoftwareConsortium/ITK/commit/d96191b40e)) +- Fix MRC zero spacing for tilt series ([c380670dd1](https://github.com/InsightSoftwareConsortium/ITK/commit/c380670dd1)) +- MRC write full machine stamp ([cac4e26b69](https://github.com/InsightSoftwareConsortium/ITK/commit/cac4e26b69)) +- Remove dead code in MRC Header ([3b643f53f9](https://github.com/InsightSoftwareConsortium/ITK/commit/3b643f53f9)) +- Fix MRC zero spacing for tilt series ([e7ffba648f](https://github.com/InsightSoftwareConsortium/ITK/commit/e7ffba648f)) +- MRC write full machine stamp ([8ca5d1f676](https://github.com/InsightSoftwareConsortium/ITK/commit/8ca5d1f676)) +- Add missing string value for NoTargets enum ([ac32a50e6e](https://github.com/InsightSoftwareConsortium/ITK/commit/ac32a50e6e)) + +#### Style Changes + +- Use inline initializers for MaskImageFilter ([c0374a334c](https://github.com/InsightSoftwareConsortium/ITK/commit/c0374a334c)) + + +### Darren Thompson (2): + +#### Platform Fixes + +- Reworked ITKFFT_SRCS for FFTW and cuFFTW use ([5703c74375](https://github.com/InsightSoftwareConsortium/ITK/commit/5703c74375)) + +#### Bug Fixes + +- itkFFTWFFTImageFilterInitFactory.cxx is required for ITK_USE_CUFFTW ([5b9861d743](https://github.com/InsightSoftwareConsortium/ITK/commit/5b9861d743)) + + +### Dave Chen (10): + +#### Documentation Updates + +- fixed spelling errors in Modules/IO subdir ([64f2428bd0](https://github.com/InsightSoftwareConsortium/ITK/commit/64f2428bd0)) +- Fixed spelling bugs in Modules/Filtering headers ([2513f8f62e](https://github.com/InsightSoftwareConsortium/ITK/commit/2513f8f62e)) +- Spell checking Registration headers ([b44e0b13f8](https://github.com/InsightSoftwareConsortium/ITK/commit/b44e0b13f8)) +- Spell checking Modules/Segmentation ([9cf6ee9081](https://github.com/InsightSoftwareConsortium/ITK/commit/9cf6ee9081)) +- spell checking Modules/Numerics ([f51ac27b98](https://github.com/InsightSoftwareConsortium/ITK/commit/f51ac27b98)) +- Spellcheck Filtering HXX and Video headers ([ed7ad92dd6](https://github.com/InsightSoftwareConsortium/ITK/commit/ed7ad92dd6)) +- Spell check remaining headers ([61b0a16d22](https://github.com/InsightSoftwareConsortium/ITK/commit/61b0a16d22)) +- spell out OOP ([379eb109e9](https://github.com/InsightSoftwareConsortium/ITK/commit/379eb109e9)) +- Spell check the code in Examples ([e6b03bbd4b](https://github.com/InsightSoftwareConsortium/ITK/commit/e6b03bbd4b)) + +#### Style Changes + +- Fixed spelling errors in Modules/Core headers ([2ec7cd1cf7](https://github.com/InsightSoftwareConsortium/ITK/commit/2ec7cd1cf7)) + + +### Dženan Zukić (24): + +#### Enhancements + +- Disable itkNiftiLargeImageRegionReadTest on 32-bit architectures ([f77c8dbd0a](https://github.com/InsightSoftwareConsortium/ITK/commit/f77c8dbd0a)) +- Improve itk.imread error message when the input file doesn't exist ([3c802f650d](https://github.com/InsightSoftwareConsortium/ITK/commit/3c802f650d)) +- Use latest stable GTest v1.13.0 ([56875007ab](https://github.com/InsightSoftwareConsortium/ITK/commit/56875007ab)) +- Add ITK_NODISCARD(message) macro to Image "Transform" members ([bc75d43a41](https://github.com/InsightSoftwareConsortium/ITK/commit/bc75d43a41)) +- Update remote modules using the script ([455b06be6c](https://github.com/InsightSoftwareConsortium/ITK/commit/455b06be6c)) +- Update remote modules using the script ([a0c67bb21e](https://github.com/InsightSoftwareConsortium/ITK/commit/a0c67bb21e)) +- Drop support for MSVC toolset v141 aka Visual Studio 2017 ([140f3c249f](https://github.com/InsightSoftwareConsortium/ITK/commit/140f3c249f)) +- Update ContinuousIntegration Batch test to use VS2022 ([92c17bc4da](https://github.com/InsightSoftwareConsortium/ITK/commit/92c17bc4da)) +- Exclude Utilities/ITKv5Preparation/* from triggering CI builds ([f5cfdd4018](https://github.com/InsightSoftwareConsortium/ITK/commit/f5cfdd4018)) +- Update remote modules using the script ([56c7434002](https://github.com/InsightSoftwareConsortium/ITK/commit/56c7434002)) + +#### Documentation Updates + +- Add a reminder to update API docs link to older version ([da36517a51](https://github.com/InsightSoftwareConsortium/ITK/commit/da36517a51)) + +#### Platform Fixes + +- Use proper floating point-pixel type in Frequency FFT Layout Test ([9a7846e6a1](https://github.com/InsightSoftwareConsortium/ITK/commit/9a7846e6a1)) +- Fix new warning STL4037 raised by VS2022 ([37e4c71805](https://github.com/InsightSoftwareConsortium/ITK/commit/37e4c71805)) +- Use proper floating point-pixel type in Frequency FFT Layout Test ([19e02a4e9d](https://github.com/InsightSoftwareConsortium/ITK/commit/19e02a4e9d)) +- Fix new warning STL4037 raised by VS2022 ([0892cd1e3f](https://github.com/InsightSoftwareConsortium/ITK/commit/0892cd1e3f)) +- Fix deprecation warning for PyEval_CallObject ([138f9d9e8d](https://github.com/InsightSoftwareConsortium/ITK/commit/138f9d9e8d)) +- Fix boolean member print statement in `itk::GPUDataManager` ([9b55bcec62](https://github.com/InsightSoftwareConsortium/ITK/commit/9b55bcec62)) +- Add Superclass alias to GPUGradientAnisotropicDiffusionImageFilter ([296db6ac2b](https://github.com/InsightSoftwareConsortium/ITK/commit/296db6ac2b)) +- Update maintenance script to compile with C++17 ([04ef14a37a](https://github.com/InsightSoftwareConsortium/ITK/commit/04ef14a37a)) + +#### Bug Fixes + +- Fix a crash in itkDirectoryTest caused by updating to newest KWSys ([b92705851b](https://github.com/InsightSoftwareConsortium/ITK/commit/b92705851b)) + +#### Style Changes + +- Convert a tab indent into spaces in BuildHeaderTest.py ([0ca7901450](https://github.com/InsightSoftwareConsortium/ITK/commit/0ca7901450)) +- Change some declarations to use trailing return type ([b37ac53206](https://github.com/InsightSoftwareConsortium/ITK/commit/b37ac53206)) +- Use trailing return type instead of typename + dependent type ([5f83fb2537](https://github.com/InsightSoftwareConsortium/ITK/commit/5f83fb2537)) +- Use trailing return type for declarations containing "inline" ([f048a5b8a9](https://github.com/InsightSoftwareConsortium/ITK/commit/f048a5b8a9)) + + +### FabioLolix (1): + +#### Platform Fixes + +- add missing header with GCC 13.1.1 ([d3b5e8baa6](https://github.com/InsightSoftwareConsortium/ITK/commit/d3b5e8baa6)) + + +### Fernando Bordignon (1): + +#### Platform Fixes + +- Mangle HDF5 symbols: H5_debug_t, H5E_t and H5I_type_info_t ([17b0fded41](https://github.com/InsightSoftwareConsortium/ITK/commit/17b0fded41)) + + +### GDCM Upstream (2): + +#### Miscellaneous Changes + +- GDCM 2023-05-05 (401a81d7) ([8713d6f217](https://github.com/InsightSoftwareConsortium/ITK/commit/8713d6f217)) +- GDCM 2023-06-02 (2ea6fd87) ([6f3a0a8855](https://github.com/InsightSoftwareConsortium/ITK/commit/6f3a0a8855)) + + +### GoogleTest Upstream (1): + +#### Miscellaneous Changes + +- GoogleTest 2023-01-17 (b796f7d4) ([1a5c2de017](https://github.com/InsightSoftwareConsortium/ITK/commit/1a5c2de017)) + + +### Hans J. Johnson (17): + +#### Enhancements + +- Need large source for lbfg*.c files ([a5d61cb4d0](https://github.com/InsightSoftwareConsortium/ITK/commit/a5d61cb4d0)) +- Add more specific diagnostics for lbfgs stopping ([0de99b2d48](https://github.com/InsightSoftwareConsortium/ITK/commit/0de99b2d48)) +- Enforce computational requirements for SobelOperator ([03c8176dca](https://github.com/InsightSoftwareConsortium/ITK/commit/03c8176dca)) + +#### Performance Improvements + +- Should not check bounds by default with vnl ([67a791262f](https://github.com/InsightSoftwareConsortium/ITK/commit/67a791262f)) + +#### Platform Fixes + +- Threads package is required by TBB ([5d1aa4aced](https://github.com/InsightSoftwareConsortium/ITK/commit/5d1aa4aced)) +- Manually merged formatting changes for jpeg9f ([b37e416490](https://github.com/InsightSoftwareConsortium/ITK/commit/b37e416490)) +- Updated to jpeg9f to address ubsan failures ([e80db20c05](https://github.com/InsightSoftwareConsortium/ITK/commit/e80db20c05)) +- Manual review of itkjpeg and jpeg-8b differences ([cd6d907d5c](https://github.com/InsightSoftwareConsortium/ITK/commit/cd6d907d5c)) +- Suppress ubsan in H5detect.c code ([bdc523419f](https://github.com/InsightSoftwareConsortium/ITK/commit/bdc523419f)) +- Remove unused variables ([cd97879e6b](https://github.com/InsightSoftwareConsortium/ITK/commit/cd97879e6b)) +- Remove clang unsupported compiler flag from default ([4fc92814dc](https://github.com/InsightSoftwareConsortium/ITK/commit/4fc92814dc)) + +#### Bug Fixes + +- Testing of sobel operators was being done with unsigned data values ([a8eed95093](https://github.com/InsightSoftwareConsortium/ITK/commit/a8eed95093)) +- Casting negative numbers to unsigned char error ([1d6b3e92bc](https://github.com/InsightSoftwareConsortium/ITK/commit/1d6b3e92bc)) +- implicit conversion undefined behavior ([264114331f](https://github.com/InsightSoftwareConsortium/ITK/commit/264114331f)) + +#### Style Changes + +- Use typedef for type to ensure consistency ([1eb4fed9a3](https://github.com/InsightSoftwareConsortium/ITK/commit/1eb4fed9a3)) +- Prefer initialization to assignment ([1a6f2ce261](https://github.com/InsightSoftwareConsortium/ITK/commit/1a6f2ce261)) +- Prefer C++11 zero initializer to ZeroValue ([ef5cc8c495](https://github.com/InsightSoftwareConsortium/ITK/commit/ef5cc8c495)) + + +### Jon Haitz Legarreta Gorroño (83): + +#### Enhancements + +- Use windows-2019 image v141 toolchain in `Batch` Azure CI matrix ([2cf08be965](https://github.com/InsightSoftwareConsortium/ITK/commit/2cf08be965)) +- Apply the `type:Infrastructure` label to CI config files ([a83d4ded92](https://github.com/InsightSoftwareConsortium/ITK/commit/a83d4ded92)) +- Increase coverage for miscellaneous classes ([41339276ee](https://github.com/InsightSoftwareConsortium/ITK/commit/41339276ee)) +- Add boolean macro to use cluster labels ([4351f3651a](https://github.com/InsightSoftwareConsortium/ITK/commit/4351f3651a)) +- Use `itkPrintSelfObjectMacro` to print objects that can be null ([c6d374a457](https://github.com/InsightSoftwareConsortium/ITK/commit/c6d374a457)) +- Increase coverage for `itk::AttributeSelectionLabelMapFilter` ([e9bc06e6f5](https://github.com/InsightSoftwareConsortium/ITK/commit/e9bc06e6f5)) +- Increase coverage for `itk::OnePlusOneEvolutionaryOptimizer` ([5286bdb2f3](https://github.com/InsightSoftwareConsortium/ITK/commit/5286bdb2f3)) +- Increase coverage for `itk::ImageRegistrationMethodv4` ([ac019e3744](https://github.com/InsightSoftwareConsortium/ITK/commit/ac019e3744)) +- Add boolean macro to across-scale normalization ivar ([e7aca74334](https://github.com/InsightSoftwareConsortium/ITK/commit/e7aca74334)) +- Increase coverage for `itk::RecursiveGaussianImageFilter` ([7c13d36ba0](https://github.com/InsightSoftwareConsortium/ITK/commit/7c13d36ba0)) +- Add test for the `itk::BoundedReciprocalImageFilter` class ([9d2c892600](https://github.com/InsightSoftwareConsortium/ITK/commit/9d2c892600)) +- Fix `clang-format` workflow actions warnings linked to `Node.js` ([791686038e](https://github.com/InsightSoftwareConsortium/ITK/commit/791686038e)) +- Use strongly typed enums for FMUG filter target reached condition ([6919764fab](https://github.com/InsightSoftwareConsortium/ITK/commit/6919764fab)) +- Remove ivar memberless/static-only class `PrinSelf` ([d2ff3110f1](https://github.com/InsightSoftwareConsortium/ITK/commit/d2ff3110f1)) +- Increase coverage for miscellaneous classes ([f76d26a0e2](https://github.com/InsightSoftwareConsortium/ITK/commit/f76d26a0e2)) +- Add getter methods for `itk::KdTreeGenerator` publicly set ivars ([2c5dec142e](https://github.com/InsightSoftwareConsortium/ITK/commit/2c5dec142e)) +- Use ITK macros to print runtime type information ([74f557094b](https://github.com/InsightSoftwareConsortium/ITK/commit/74f557094b)) +- Remove ivar memberless `PrintSelf` ([1f81ef69d1](https://github.com/InsightSoftwareConsortium/ITK/commit/1f81ef69d1)) +- Remove `itkMath.h` duplicate include ([48025bd985](https://github.com/InsightSoftwareConsortium/ITK/commit/48025bd985)) +- Remove duplicate `itkMath.h` include in itkFEMRegistrationFilter ([4d440dc3ae](https://github.com/InsightSoftwareConsortium/ITK/commit/4d440dc3ae)) +- Provide with printing ability to time resource classes ([cd303c33ae](https://github.com/InsightSoftwareConsortium/ITK/commit/cd303c33ae)) +- Increase coverage for `itk::ConstantVelocityFieldTransform` ([33697686c7](https://github.com/InsightSoftwareConsortium/ITK/commit/33697686c7)) +- Increase coverage for miscellaneous classes ([bf183be9c4](https://github.com/InsightSoftwareConsortium/ITK/commit/bf183be9c4)) +- Increase coverage for `itk::Rigid3DTransform` ([9bc884e619](https://github.com/InsightSoftwareConsortium/ITK/commit/9bc884e619)) +- Test `itk::RegistrationParameterScales*` classes ([bc1025b1c0](https://github.com/InsightSoftwareConsortium/ITK/commit/bc1025b1c0)) +- Add macros to `itk::kRegistrationParameterScalesEstimator` ivars ([37a2151768](https://github.com/InsightSoftwareConsortium/ITK/commit/37a2151768)) +- Increase `RegistrationParameterScalesFromPhysicalShift` coverage ([165fb5b6fe](https://github.com/InsightSoftwareConsortium/ITK/commit/165fb5b6fe)) + +#### Performance Improvements + +- Remove immediately modified ivar assignment ([d1c46d63be](https://github.com/InsightSoftwareConsortium/ITK/commit/d1c46d63be)) + +#### Documentation Updates + +- Fix class names in documentation and comments ([482102d507](https://github.com/InsightSoftwareConsortium/ITK/commit/482102d507)) +- Fix typos in documentation ([d589e6b034](https://github.com/InsightSoftwareConsortium/ITK/commit/d589e6b034)) +- Remove unnecessary or empty implementation file method doc blocks ([aff7703dc8](https://github.com/InsightSoftwareConsortium/ITK/commit/aff7703dc8)) +- Document methods in header file ([c7d3cda80f](https://github.com/InsightSoftwareConsortium/ITK/commit/c7d3cda80f)) +- Make class description be a complete sentence ([4241506fa8](https://github.com/InsightSoftwareConsortium/ITK/commit/4241506fa8)) +- Fix grammar in documentation ([18609c6296](https://github.com/InsightSoftwareConsortium/ITK/commit/18609c6296)) +- Restrict the class authorship to the Doxygen documentation ([eae47ff0d1](https://github.com/InsightSoftwareConsortium/ITK/commit/eae47ff0d1)) +- Remove duplicate `FourierTransform` Doxygen grouping command ([138d135656](https://github.com/InsightSoftwareConsortium/ITK/commit/138d135656)) +- Clean up method Doxygen documentation ([d58bf56fe2](https://github.com/InsightSoftwareConsortium/ITK/commit/d58bf56fe2)) +- Clean up method Doxygen documentation ([c44f9c1b39](https://github.com/InsightSoftwareConsortium/ITK/commit/c44f9c1b39)) +- Change the Insight Journal handle links to insight-journal links ([e936cabc7a](https://github.com/InsightSoftwareConsortium/ITK/commit/e936cabc7a)) +- Make insight-journal links consistent: add www to URL ([7e000aec50](https://github.com/InsightSoftwareConsortium/ITK/commit/7e000aec50)) +- Consolidate `LaplacianSharpeningImageFilter` `UseImageSpacing` doc ([75bf848e27](https://github.com/InsightSoftwareConsortium/ITK/commit/75bf848e27)) +- Clean up method Doxygen documentation ([9d1a93dfb8](https://github.com/InsightSoftwareConsortium/ITK/commit/9d1a93dfb8)) + +#### Platform Fixes + +- Install the `lxml` Python package for the `Batch` Azure CI build ([1adbb26384](https://github.com/InsightSoftwareConsortium/ITK/commit/1adbb26384)) +- Fix missing initialization braces warnings ([5834520cc9](https://github.com/InsightSoftwareConsortium/ITK/commit/5834520cc9)) +- Fix missing initialization braces warning in Convolution test ([5094cfb7f5](https://github.com/InsightSoftwareConsortium/ITK/commit/5094cfb7f5)) +- Remove unused local variables in image iterator tests ([fd38fe7290](https://github.com/InsightSoftwareConsortium/ITK/commit/fd38fe7290)) +- Fix declaration and syntax errors in Review class `PrintSelf` ([94538d42c2](https://github.com/InsightSoftwareConsortium/ITK/commit/94538d42c2)) +- Fix `Regitration::FEM` module `PrintSelf` compiler errors ([dde9dc39c0](https://github.com/InsightSoftwareConsortium/ITK/commit/dde9dc39c0)) +- Restore `PrintSelf` in itkGPUPDEDeformableRegistrationFilter.h ([fc1cce56a9](https://github.com/InsightSoftwareConsortium/ITK/commit/fc1cce56a9)) +- Provide prefix-less member name to `itkPrintSelfObjectMacro` ([748ef3002a](https://github.com/InsightSoftwareConsortium/ITK/commit/748ef3002a)) +- Fix itkParallelSparseFieldLevelSetImageFilter uninitialized memory ([f11797b7a9](https://github.com/InsightSoftwareConsortium/ITK/commit/f11797b7a9)) +- Fix `itk::Histogram` uninitialized memory ([b32182fdec](https://github.com/InsightSoftwareConsortium/ITK/commit/b32182fdec)) + +#### Bug Fixes + +- Fix Superclass name in RTTI macro ([d60ed81f76](https://github.com/InsightSoftwareConsortium/ITK/commit/d60ed81f76)) +- Fix input argument indices in test ([dcc8ea3851](https://github.com/InsightSoftwareConsortium/ITK/commit/dcc8ea3851)) +- Fix Superclass name in RTTI macro ([84d402a619](https://github.com/InsightSoftwareConsortium/ITK/commit/84d402a619)) +- Set ivar to appropriate value when condition is met ([cd3e200ada](https://github.com/InsightSoftwareConsortium/ITK/commit/cd3e200ada)) +- Fix uninitialized value ImageRegistrationMethodv4::m_NumberOfLevels ([a31e8bf32a](https://github.com/InsightSoftwareConsortium/ITK/commit/a31e8bf32a)) +- Fix symbol exportation macro module name in `itk::DCMTKImageIO` ([736410b7e1](https://github.com/InsightSoftwareConsortium/ITK/commit/736410b7e1)) +- Add semicolon after `ITK_EXERCISE_BASIC_OBJECT_METHODS` call ([9a2379f0f7](https://github.com/InsightSoftwareConsortium/ITK/commit/9a2379f0f7)) + +#### Style Changes + +- Prefer using test macros for setter/getter method testing ([f0e6c56e6f](https://github.com/InsightSoftwareConsortium/ITK/commit/f0e6c56e6f)) +- Rename a type alias to honor the class purpose ([f20e3140c4](https://github.com/InsightSoftwareConsortium/ITK/commit/f20e3140c4)) +- Conform to ITK style in miscellaneous tests ([1de6b4fc4a](https://github.com/InsightSoftwareConsortium/ITK/commit/1de6b4fc4a)) +- Prefer using exception macros in tests ([f0ce6a871f](https://github.com/InsightSoftwareConsortium/ITK/commit/f0ce6a871f)) +- Prefer using local counters in loops ([b28578da4f](https://github.com/InsightSoftwareConsortium/ITK/commit/b28578da4f)) +- Improve style in miscellaneous `LabelMap` module tests ([3d6a2e147e](https://github.com/InsightSoftwareConsortium/ITK/commit/3d6a2e147e)) +- Prefer using exception macros in tests ([b3dadeee1d](https://github.com/InsightSoftwareConsortium/ITK/commit/b3dadeee1d)) +- Remove unnecessary test starting message ([acd4b67359](https://github.com/InsightSoftwareConsortium/ITK/commit/acd4b67359)) +- Use canonical naming for itkRecursiveGaussianImageFilter tests ([4156d3d563](https://github.com/InsightSoftwareConsortium/ITK/commit/4156d3d563)) +- Prefer double forward slashes for within-method body comments ([be6b447afc](https://github.com/InsightSoftwareConsortium/ITK/commit/be6b447afc)) +- Remove commented output stream messages ([f42c10a20f](https://github.com/InsightSoftwareConsortium/ITK/commit/f42c10a20f)) +- Remove unnecessary within-method body comments ([7a34977bd4](https://github.com/InsightSoftwareConsortium/ITK/commit/7a34977bd4)) +- Break line before calling `PrintSelf` in test ([626c1b4d99](https://github.com/InsightSoftwareConsortium/ITK/commit/626c1b4d99)) +- Remove commented code in `itk::LevelSetMotionRegistrationFunction` ([484ada7ff8](https://github.com/InsightSoftwareConsortium/ITK/commit/484ada7ff8)) +- Prefer double forward slashes for within-method body comments ([1a296b5dd3](https://github.com/InsightSoftwareConsortium/ITK/commit/1a296b5dd3)) +- Make `PrintSelf` implementation style consistent ([c47ed1c1b3](https://github.com/InsightSoftwareConsortium/ITK/commit/c47ed1c1b3)) +- Use the ellipsis properly in printed messages ([a925c70af8](https://github.com/InsightSoftwareConsortium/ITK/commit/a925c70af8)) +- Remove an unnecessary static_cast from Histogram::PrintSelf ([4aa66a29e2](https://github.com/InsightSoftwareConsortium/ITK/commit/4aa66a29e2)) +- Prefer in-class `{}` member initializers ([998b25b25a](https://github.com/InsightSoftwareConsortium/ITK/commit/998b25b25a)) +- Make `PrintSelf` implementation style consistent ([e750782e41](https://github.com/InsightSoftwareConsortium/ITK/commit/e750782e41)) +- Remove duplicate statement in `itk::Histogram::Initialize` ([bbc691ab30](https://github.com/InsightSoftwareConsortium/ITK/commit/bbc691ab30)) +- Prefer double forward slashes for within-method body comments ([647ef1fe6a](https://github.com/InsightSoftwareConsortium/ITK/commit/647ef1fe6a)) +- Remove unnecessary within-method body comments ([1d316c5454](https://github.com/InsightSoftwareConsortium/ITK/commit/1d316c5454)) +- Make PrintSelf implementation style consistent ([34a598a3a8](https://github.com/InsightSoftwareConsortium/ITK/commit/34a598a3a8)) + + +### KWSys Upstream (1): + +#### Miscellaneous Changes + +- KWSys 2023-01-19 (be3c441e) ([e8b74bbf06](https://github.com/InsightSoftwareConsortium/ITK/commit/e8b74bbf06)) + + +### Lee Newberg (1): + +#### Platform Fixes + +- Replace numpy.bool8 (deprecated in numpy>=1.24) with numpy.bool_ ([a508af5100](https://github.com/InsightSoftwareConsortium/ITK/commit/a508af5100)) + + +### Matt McCormick (23): + +#### Enhancements + +- Bump ITK_VERSION_MINOR to 4 ([928774748a](https://github.com/InsightSoftwareConsortium/ITK/commit/928774748a)) +- Update remote modules for 2022-11-24 ([dd3b4a2f9e](https://github.com/InsightSoftwareConsortium/ITK/commit/dd3b4a2f9e)) +- Bump Azure Testing ExternalDataVersion to 5.3.0 ([07c91df71e](https://github.com/InsightSoftwareConsortium/ITK/commit/07c91df71e)) + +#### Documentation Updates + +- Include links to updated remote modules in release notes ([81143d0775](https://github.com/InsightSoftwareConsortium/ITK/commit/81143d0775)) +- Add links to previous versions in the Doxygen footer ([205ce51d2a](https://github.com/InsightSoftwareConsortium/ITK/commit/205ce51d2a)) +- Improve doxygen footer formatting ([cf19aba2fa](https://github.com/InsightSoftwareConsortium/ITK/commit/cf19aba2fa)) +- Add archives of 5.3 release notes ([5a7dcb1a02](https://github.com/InsightSoftwareConsortium/ITK/commit/5a7dcb1a02)) +- Add link to 5.3 documentation in Doxygen footer ([542ae7b3d5](https://github.com/InsightSoftwareConsortium/ITK/commit/542ae7b3d5)) +- Release process updates for 5.3.0 ([d76a1833a7](https://github.com/InsightSoftwareConsortium/ITK/commit/d76a1833a7)) +- Add emojis to the first-interaction message ([ba054649ac](https://github.com/InsightSoftwareConsortium/ITK/commit/ba054649ac)) +- Consolidate release notes inte Documentation/Releases ([5093d831ba](https://github.com/InsightSoftwareConsortium/ITK/commit/5093d831ba)) +- Add contributing graph to CONTRIBUTING.md ([366ed3edc9](https://github.com/InsightSoftwareConsortium/ITK/commit/366ed3edc9)) + +#### Platform Fixes + +- Add CastXML binary for Windows 11 ([e30096df7d](https://github.com/InsightSoftwareConsortium/ITK/commit/e30096df7d)) +- zlib crc32_braid.c cast to smaller integer type ([0cd5391417](https://github.com/InsightSoftwareConsortium/ITK/commit/0cd5391417)) +- Use newer CastXML binary for latest versions of Windows 10 ([364c27a393](https://github.com/InsightSoftwareConsortium/ITK/commit/364c27a393)) +- Use pre-built swig for Linux/x86_64 ([bfc7f7b800](https://github.com/InsightSoftwareConsortium/ITK/commit/bfc7f7b800)) +- Replace numpy.bool8 with np.bool_ ([63fd7e7a89](https://github.com/InsightSoftwareConsortium/ITK/commit/63fd7e7a89)) + +#### Bug Fixes + +- pointset_type_from_wasm_type return a PointSet ([2f2e888612](https://github.com/InsightSoftwareConsortium/ITK/commit/2f2e888612)) +- transform_to_displacement_field_filter type inference ([f13070288b](https://github.com/InsightSoftwareConsortium/ITK/commit/f13070288b)) +- SetRegions in image_from_dict ([504f06f9e3](https://github.com/InsightSoftwareConsortium/ITK/commit/504f06f9e3)) +- Support heterogeneous inputs/outputs for PyImageFilter ([eee6f8ac9b](https://github.com/InsightSoftwareConsortium/ITK/commit/eee6f8ac9b)) +- Add other SWIG sources download URLs ([0e3a056e89](https://github.com/InsightSoftwareConsortium/ITK/commit/0e3a056e89)) +- wasm_type_from_image_type for VariableLengthVector ([99f16a0dfe](https://github.com/InsightSoftwareConsortium/ITK/commit/99f16a0dfe)) + + +### Max Aehle (3): + +#### Platform Fixes + +- Declare ZLIB_SYMBOL_PREFIX as cache variable ([f935f4c666](https://github.com/InsightSoftwareConsortium/ITK/commit/f935f4c666)) +- Perform TEST_LFS_WORKS in every CMake run ([1d056d2f19](https://github.com/InsightSoftwareConsortium/ITK/commit/1d056d2f19)) +- Decide early whether to use -msse2 ([52732a065e](https://github.com/InsightSoftwareConsortium/ITK/commit/52732a065e)) + + +### Mihail Isakov (4): + +#### Bug Fixes + +- ITK_COMPILER_SUPPORTS_SSE2_64 incorrectly set for 32-bit x86 ([6c800e4640](https://github.com/InsightSoftwareConsortium/ITK/commit/6c800e4640)) +- ITK_COMPILER_SUPPORTS_SSE2_64 incorrectly set for 32-bit x86 ([37c107436f](https://github.com/InsightSoftwareConsortium/ITK/commit/37c107436f)) +- fixed valgrind defect in FreeSurfer mesh test ([336cf57efc](https://github.com/InsightSoftwareConsortium/ITK/commit/336cf57efc)) +- Added missing semicolon in FastMarchingUpwindGradientTest ([4ca68daba0](https://github.com/InsightSoftwareConsortium/ITK/commit/4ca68daba0)) + + +### NIFTI Upstream (2): + +#### Miscellaneous Changes + +- nifti 2023-03-29 (2acc4449) ([5e40191542](https://github.com/InsightSoftwareConsortium/ITK/commit/5e40191542)) +- nifti 2023-05-22 (c135c3d4) ([8a04aa2070](https://github.com/InsightSoftwareConsortium/ITK/commit/8a04aa2070)) + + +### Nick Tustison (3): + +#### Enhancements + +- refactor LaplacianSharpeningImageFilter (#4052) ([c93f06865e](https://github.com/InsightSoftwareConsortium/ITK/commit/c93f06865e)) + +#### Bug Fixes + +- Need to initialize both seeds. ([8e1b8259f0](https://github.com/InsightSoftwareConsortium/ITK/commit/8e1b8259f0)) +- Need to initialize both seeds. ([490b5c6069](https://github.com/InsightSoftwareConsortium/ITK/commit/490b5c6069)) + + +### Niels Dekker (143): + +#### Enhancements + +- Mention the floating point type on a NumberToString expect failure ([43d3e848a6](https://github.com/InsightSoftwareConsortium/ITK/commit/43d3e848a6)) +- Add GTest `FixedArray.ValueInitialized` ([6bb951c394](https://github.com/InsightSoftwareConsortium/ITK/commit/6bb951c394)) +- Add C++ script to add in-class `{}` member initializers to ITK ([ef40e98381](https://github.com/InsightSoftwareConsortium/ITK/commit/ef40e98381)) +- Upgrade ITK from C++14 to C++17 ([513507e4c7](https://github.com/InsightSoftwareConsortium/ITK/commit/513507e4c7)) +- Test `bool` return value of TransformPhysicalPoint member functions ([1d03697690](https://github.com/InsightSoftwareConsortium/ITK/commit/1d03697690)) +- Add C++17 `[[nodiscard]]` to Image "Transform" member functions ([63d43546a3](https://github.com/InsightSoftwareConsortium/ITK/commit/63d43546a3)) +- Add C++17 CTAD deduction guides to `ImageScanlineIterator` ([7f934595eb](https://github.com/InsightSoftwareConsortium/ITK/commit/7f934595eb)) +- CTAD guide `ImageScanlineConstIterator` support non-const image ([a6c37421f6](https://github.com/InsightSoftwareConsortium/ITK/commit/a6c37421f6)) + +#### Performance Improvements + +- Declare TriangleCell::m_PointIds std::array instead of std::vector ([8aa679af1b](https://github.com/InsightSoftwareConsortium/ITK/commit/8aa679af1b)) +- SLICImageFilter use faster TransformPhysicalPointToContinuousIndex ([d0109630dc](https://github.com/InsightSoftwareConsortium/ITK/commit/d0109630dc)) +- Use faster TransformPhysicalPointToIndex/ContinuousIndex in Python ([87b48e49be](https://github.com/InsightSoftwareConsortium/ITK/commit/87b48e49be)) +- Use `std::move` inside `itkSetMacro`, declare parameter non-const ([e5011aeb76](https://github.com/InsightSoftwareConsortium/ITK/commit/e5011aeb76)) + +#### Documentation Updates + +- Mention that Utilities/Maintenance is excluded from CI triggers ([4728e7c436](https://github.com/InsightSoftwareConsortium/ITK/commit/4728e7c436)) +- Add note to Image "Transform" member functions that return `bool` ([dc43b54be6](https://github.com/InsightSoftwareConsortium/ITK/commit/dc43b54be6)) +- Add note constructors on class template argument deduction (CTAD) ([e421dac080](https://github.com/InsightSoftwareConsortium/ITK/commit/e421dac080)) +- ShapedImageNeighborhoodRange iterator types follow Rule of Zero ([a024dfa34d](https://github.com/InsightSoftwareConsortium/ITK/commit/a024dfa34d)) + +#### Platform Fixes + +- Fix MSVC warning C26495: `m_MetaDataObjectValue` uninitialized ([0dc5b66bd3](https://github.com/InsightSoftwareConsortium/ITK/commit/0dc5b66bd3)) +- Fix MSVC warning C26495: `ZwQuerySystemInformation` uninitialized ([a1f40a77ca](https://github.com/InsightSoftwareConsortium/ITK/commit/a1f40a77ca)) +- Fix MSVC `/permissive-` error C2516: ... is not a legal base class ([687f51e642](https://github.com/InsightSoftwareConsortium/ITK/commit/687f51e642)) +- Do #include "itkConfigure.h" before using `ITK_USE_WIN32_THREADS` ([15ce483e5b](https://github.com/InsightSoftwareConsortium/ITK/commit/15ce483e5b)) +- Fix MSVC warning C26495: `m_PositionIndex` uninitialized ([de142a0dbd](https://github.com/InsightSoftwareConsortium/ITK/commit/de142a0dbd)) +- Make ITK implementation `make_unique_for_overwrite` unconditional ([a0aecfe0a7](https://github.com/InsightSoftwareConsortium/ITK/commit/a0aecfe0a7)) +- Make ITK implementation `bit_cast` unconditional ([f187319530](https://github.com/InsightSoftwareConsortium/ITK/commit/f187319530)) +- MSVC Code Analysis warning, "redundant code" in ImageIORegionGTest ([3d14c44629](https://github.com/InsightSoftwareConsortium/ITK/commit/3d14c44629)) +- Exclude Utilities/Maintenance and documentation files from AZP CI ([eb5ca2585a](https://github.com/InsightSoftwareConsortium/ITK/commit/eb5ca2585a)) +- Fix warning: unused variable 'compensatedSum' [-Wunused-variable] ([a51d204c49](https://github.com/InsightSoftwareConsortium/ITK/commit/a51d204c49)) +- Move RayCastHelper from unnamed namespace to private class section ([208902e16a](https://github.com/InsightSoftwareConsortium/ITK/commit/208902e16a)) +- Place `#define _SILENCE_..._DEPRECATION_WARNING` before `#include` ([cd0ff94e4f](https://github.com/InsightSoftwareConsortium/ITK/commit/cd0ff94e4f)) +- Declare `operator-(const Self &)` member functions const ([8bd60993a7](https://github.com/InsightSoftwareConsortium/ITK/commit/8bd60993a7)) +- Declare `operator<(const SliceIterator &)` member function const ([f60dc98cef](https://github.com/InsightSoftwareConsortium/ITK/commit/f60dc98cef)) +- Declare `operator*` and `operator/` of VariableSizeMatrix const ([212c0e1cc4](https://github.com/InsightSoftwareConsortium/ITK/commit/212c0e1cc4)) +- Replace result_of_t with C++17 invoke_result_t in ThreadPool ([75350f1f81](https://github.com/InsightSoftwareConsortium/ITK/commit/75350f1f81)) +- Work around GCC < 10 bug, "no user-provided default constructor" ([79faea587c](https://github.com/InsightSoftwareConsortium/ITK/commit/79faea587c)) +- Require compiler versions that support C++17 ([45407f3560](https://github.com/InsightSoftwareConsortium/ITK/commit/45407f3560)) +- Fix `[[nodiscard]]` warnings in PolyLineParametricPath1 example ([6b2d4701bb](https://github.com/InsightSoftwareConsortium/ITK/commit/6b2d4701bb)) +- Remove CTAD because of clang "error: member reference base" bug ([2f30e35b4f](https://github.com/InsightSoftwareConsortium/ITK/commit/2f30e35b4f)) +- Remove use of C++17 CTAD from `lock_guard` variable declarations ([6958f05338](https://github.com/InsightSoftwareConsortium/ITK/commit/6958f05338)) +- Add CTAD deduction guides to ImageBufferRange and ImageRegionRange ([639e8ff31a](https://github.com/InsightSoftwareConsortium/ITK/commit/639e8ff31a)) +- Fix TransformPhysicalPointToIndex `nodiscard` warnings ([49ece7f608](https://github.com/InsightSoftwareConsortium/ITK/commit/49ece7f608)) +- Fix TransformPhysicalPointToContinuousIndex `nodiscard` warnings ([7cda5badd0](https://github.com/InsightSoftwareConsortium/ITK/commit/7cda5badd0)) +- Fix Nonunit/Review/test error: ContinuousIndexType is not a member ([fd2b6d6d72](https://github.com/InsightSoftwareConsortium/ITK/commit/fd2b6d6d72)) +- Fix Nonunit/Review/test error: 'cindex': undeclared identifier ([1a1281ce03](https://github.com/InsightSoftwareConsortium/ITK/commit/1a1281ce03)) +- Fix BinomialBlurImageFilter error, num_reps undeclared identifier ([1e3e606e83](https://github.com/InsightSoftwareConsortium/ITK/commit/1e3e606e83)) +- Add `template` to TransformPhysicalPointToContinuousIndex in tests ([1f8c0f8128](https://github.com/InsightSoftwareConsortium/ITK/commit/1f8c0f8128)) +- Enable warning on C++17 class template argument deduction (CTAD) ([d26c07ea57](https://github.com/InsightSoftwareConsortium/ITK/commit/d26c07ea57)) +- Disable KWStyle check "error: namespace is wrong" on *.cxx files ([cce48b3cfa](https://github.com/InsightSoftwareConsortium/ITK/commit/cce48b3cfa)) +- Rule of Zero, SFINAE ImageBufferRange, ImageRegionRange iterators ([19079c8bc7](https://github.com/InsightSoftwareConsortium/ITK/commit/19079c8bc7)) + +#### Style Changes + +- Remove `diff` variables from ConvertPixelBuffer (warning C26451) ([288d87b89f](https://github.com/InsightSoftwareConsortium/ITK/commit/288d87b89f)) +- Replace C-style cast (size_t) ConvertPixelBuffer with static_cast ([622fb69f84](https://github.com/InsightSoftwareConsortium/ITK/commit/622fb69f84)) +- NumberToStringGTest: add #include, avoid narrowing conversion pow ([d5beb7a657](https://github.com/InsightSoftwareConsortium/ITK/commit/d5beb7a657)) +- Add `const` to `inputData` parameters of `ConvertPixelBuffer` ([c28be8ba00](https://github.com/InsightSoftwareConsortium/ITK/commit/c28be8ba00)) +- Use range-based `for` loops to iterate over `faceList` variables ([2de7e24b0b](https://github.com/InsightSoftwareConsortium/ITK/commit/2de7e24b0b)) +- Do not suppress clang "-Wfloat-equal" inside `itkSetObjectMacro` ([10f6e6bc5e](https://github.com/InsightSoftwareConsortium/ITK/commit/10f6e6bc5e)) +- Declare m_PointIds of Cell types std::array instead of C-array ([09e5548a07](https://github.com/InsightSoftwareConsortium/ITK/commit/09e5548a07)) +- Add `const` to `inputData` of `DoConvertBuffer` member functions ([f8dc373884](https://github.com/InsightSoftwareConsortium/ITK/commit/f8dc373884)) +- Initialize `faceList` directly by ImageBoundaryFacesCalculator ([18a672368d](https://github.com/InsightSoftwareConsortium/ITK/commit/18a672368d)) +- Replace `for` loops SetPointIds(PointIdConstIterator) by copy_n ([e019779ba5](https://github.com/InsightSoftwareConsortium/ITK/commit/e019779ba5)) +- Add missing `<< indent` insertions to `PrintSelf` implementations ([48c6ed7697](https://github.com/InsightSoftwareConsortium/ITK/commit/48c6ed7697)) +- Replace `*x.begin()` with `x.front()` ([c8103b4e55](https://github.com/InsightSoftwareConsortium/ITK/commit/c8103b4e55)) +- Replace `*x.begin()` with `x.front()` in DecisionRule test ([eb26094080](https://github.com/InsightSoftwareConsortium/ITK/commit/eb26094080)) +- Chain consecutive insertions (`<<`) to the same output stream ([67ca856a8c](https://github.com/InsightSoftwareConsortium/ITK/commit/67ca856a8c)) +- Make data of PixelReferenceWrapper (in ImageBufferRange) private ([ca965f3300](https://github.com/InsightSoftwareConsortium/ITK/commit/ca965f3300)) +- In-class default-member-initialization in Command derived classes ([76dad9f321](https://github.com/InsightSoftwareConsortium/ITK/commit/76dad9f321)) +- In-class default-member-initialization in VTKImageImport ([a0488b99f3](https://github.com/InsightSoftwareConsortium/ITK/commit/a0488b99f3)) +- Move ObjectFactorBase `OverrideInformation` to unnamed namespace ([cdd5408631](https://github.com/InsightSoftwareConsortium/ITK/commit/cdd5408631)) +- Add in-class `{}` member initializers to objects created by New() ([5e2c49f9eb](https://github.com/InsightSoftwareConsortium/ITK/commit/5e2c49f9eb)) +- Add missing braces to the substatements of `if` statements ([8d12282fd7](https://github.com/InsightSoftwareConsortium/ITK/commit/8d12282fd7)) +- Add missing braces to the substatements of `for` loops ([57624fda9a](https://github.com/InsightSoftwareConsortium/ITK/commit/57624fda9a)) +- Default default-constructors of class templates in Core/Common ([c2c67ac48c](https://github.com/InsightSoftwareConsortium/ITK/commit/c2c67ac48c)) +- Replace double quotes around a space character with single quotes ([e8773472dd](https://github.com/InsightSoftwareConsortium/ITK/commit/e8773472dd)) +- Default default-constructor ImageConstIteratorWithIndex/OnlyIndex ([ca0021b93c](https://github.com/InsightSoftwareConsortium/ITK/commit/ca0021b93c)) +- Replace double quotes around single characters with single quotes ([ea231d6002](https://github.com/InsightSoftwareConsortium/ITK/commit/ea231d6002)) +- Replace double quotes around double quote with single quotes ([ffa592d124](https://github.com/InsightSoftwareConsortium/ITK/commit/ffa592d124)) +- Replace double quotes around escaped chars with single quotes ([3ec88007fc](https://github.com/InsightSoftwareConsortium/ITK/commit/3ec88007fc)) +- Add in-class `{}` initializers to classes with itkSimpleNewMacro ([21f500a807](https://github.com/InsightSoftwareConsortium/ITK/commit/21f500a807)) +- Use `lock_guard` in Logger classes and GPUImageDataManager ([a744aef227](https://github.com/InsightSoftwareConsortium/ITK/commit/a744aef227)) +- Use range-based `for` in MultipleLogOutput and LoggerManager ([4bd1e7a10a](https://github.com/InsightSoftwareConsortium/ITK/commit/4bd1e7a10a)) +- Remove unnecessary private type aliases from Log classes ([b91931b381](https://github.com/InsightSoftwareConsortium/ITK/commit/b91931b381)) +- Add in-class `{}` initializers to classes with virtual functions ([5c97b7605e](https://github.com/InsightSoftwareConsortium/ITK/commit/5c97b7605e)) +- Add in-class `{}` initializers to classes with override = default ([5635b75d8f](https://github.com/InsightSoftwareConsortium/ITK/commit/5635b75d8f)) +- Default default-constructor of ConstantBoundaryCondition ([67ec6584a3](https://github.com/InsightSoftwareConsortium/ITK/commit/67ec6584a3)) +- Default default-constructor of CompensatedSummation ([015e93635b](https://github.com/InsightSoftwareConsortium/ITK/commit/015e93635b)) +- Default default-constructor of SpatialFunction classes ([554c442430](https://github.com/InsightSoftwareConsortium/ITK/commit/554c442430)) +- Default default-constructor of Image classes ([e596c0110f](https://github.com/InsightSoftwareConsortium/ITK/commit/e596c0110f)) +- Default default-constructor of ImageRandom ConstIterator classes ([4e46cb6ef5](https://github.com/InsightSoftwareConsortium/ITK/commit/4e46cb6ef5)) +- Default default-constructor of ConstNeighborhoodIterator ([6a1ccdccb6](https://github.com/InsightSoftwareConsortium/ITK/commit/6a1ccdccb6)) +- Default default-constructor ImageVectorOptimizerParametersHelper ([6df203ab20](https://github.com/InsightSoftwareConsortium/ITK/commit/6df203ab20)) +- Default default-constructor of ImportImageContainer and Filter ([b9e08130d0](https://github.com/InsightSoftwareConsortium/ITK/commit/b9e08130d0)) +- Default default-constructor of MinimumMaximumImageCalculator ([791e2d462b](https://github.com/InsightSoftwareConsortium/ITK/commit/791e2d462b)) +- Default default-constructor of ObjectStore and MemoryBlock ([a77ace2e26](https://github.com/InsightSoftwareConsortium/ITK/commit/a77ace2e26)) +- Default default-constructor of PointSet ([e996dac415](https://github.com/InsightSoftwareConsortium/ITK/commit/e996dac415)) +- Default default-constructor of PriorityQueueContainer ([ea237faaac](https://github.com/InsightSoftwareConsortium/ITK/commit/ea237faaac)) +- Default default-constructor of RegularizedHeavisideStepFunction ([8aa993b758](https://github.com/InsightSoftwareConsortium/ITK/commit/8aa993b758)) +- Default default-constructor of ThreadedImageRegionPartitioner ([992537a393](https://github.com/InsightSoftwareConsortium/ITK/commit/992537a393)) +- Default default-constructor of VariableLengthVector ([74a55f9f8b](https://github.com/InsightSoftwareConsortium/ITK/commit/74a55f9f8b)) +- Default default-constructor of Versor ([1b5da45dc7](https://github.com/InsightSoftwareConsortium/ITK/commit/1b5da45dc7)) +- Add in-class `{}` member initializers to 3-letter data members ([ffe5eb6118](https://github.com/InsightSoftwareConsortium/ITK/commit/ffe5eb6118)) +- Construct local variables by passing their arguments directly ([9e5dda5425](https://github.com/InsightSoftwareConsortium/ITK/commit/9e5dda5425)) +- Add in-class `{}` member initializers having trailing comments ([8f233d177a](https://github.com/InsightSoftwareConsortium/ITK/commit/8f233d177a)) +- Remove unnecessary iterator `GoToBegin()` calls from Filtering ([5a60ed00ad](https://github.com/InsightSoftwareConsortium/ITK/commit/5a60ed00ad)) +- Remove duplicate `InLineIt.GoToBegin()` calls from Filtering ([dfbc85fd77](https://github.com/InsightSoftwareConsortium/ITK/commit/dfbc85fd77)) +- Move ITK iterator declarations into init-statement of `for` loops ([d91d2b15b2](https://github.com/InsightSoftwareConsortium/ITK/commit/d91d2b15b2)) +- Replace `T var = NumericTraits::ZeroValue()` with `T var{}` ([42b0bfc077](https://github.com/InsightSoftwareConsortium/ITK/commit/42b0bfc077)) +- Replace `while (!outIt.IsAtEnd())` with `for` loops, in Filtering ([31c713eb10](https://github.com/InsightSoftwareConsortium/ITK/commit/31c713eb10)) +- Replace `T var = T()` with modern `T var{}` value-initialization ([6e3d4b3dc7](https://github.com/InsightSoftwareConsortium/ITK/commit/6e3d4b3dc7)) +- Construct local variables by passing arguments directly (part 2) ([ef24b65d02](https://github.com/InsightSoftwareConsortium/ITK/commit/ef24b65d02)) +- Reduce scope ResampleImageFilter::NonlinearThreadedGenerateData ([6b0d4b8337](https://github.com/InsightSoftwareConsortium/ITK/commit/6b0d4b8337)) +- Default default-constructors MultiTransform, CompositeTransform ([8fbbcd5a6e](https://github.com/InsightSoftwareConsortium/ITK/commit/8fbbcd5a6e)) +- Remove std::allocator from TestImportImageContainer (Common/test) ([55fb520252](https://github.com/InsightSoftwareConsortium/ITK/commit/55fb520252)) +- Default default-constructor BSplineBaseTransform ([94f5a43e71](https://github.com/InsightSoftwareConsortium/ITK/commit/94f5a43e71)) +- Simplify `BSplineBaseTransform::SetIdentity()` ([12df6f4d1c](https://github.com/InsightSoftwareConsortium/ITK/commit/12df6f4d1c)) +- Declare local supportSize variables in BSplineTransform constexpr ([85dccb237f](https://github.com/InsightSoftwareConsortium/ITK/commit/85dccb237f)) +- Use C++17 `_v` variable templates from `std` library type traits ([1a914b71bd](https://github.com/InsightSoftwareConsortium/ITK/commit/1a914b71bd)) +- Remove pre-C++17 definition constexpr data member `SupportSize` ([014ea433aa](https://github.com/InsightSoftwareConsortium/ITK/commit/014ea433aa)) +- Remove GCC 5.2 specific code from IntensityLinearTransform ([9e81d6d88d](https://github.com/InsightSoftwareConsortium/ITK/commit/9e81d6d88d)) +- Use C++17 CTAD for `ImageBufferRange` ([acab22f238](https://github.com/InsightSoftwareConsortium/ITK/commit/acab22f238)) +- Use C++17 CTAD for `ImageRegionRange` ([8ee4d9a410](https://github.com/InsightSoftwareConsortium/ITK/commit/8ee4d9a410)) +- Replace `std::min` and `std::max` calls with C++17 `std::clamp` ([fa667ebe40](https://github.com/InsightSoftwareConsortium/ITK/commit/fa667ebe40)) +- Use C++17 class template argument deduction (CTAD) for lock_guard ([3bfdc28908](https://github.com/InsightSoftwareConsortium/ITK/commit/3bfdc28908)) +- Declare all lock_guard variables `const` ([357503ea5b](https://github.com/InsightSoftwareConsortium/ITK/commit/357503ea5b)) +- Replace `sizeof(array) / sizeof(array[0])` with C++17 `std::size` ([feb86b8a81](https://github.com/InsightSoftwareConsortium/ITK/commit/feb86b8a81)) +- Remove private ImageBufferRange ImageType alias, just use TImage ([136064885e](https://github.com/InsightSoftwareConsortium/ITK/commit/136064885e)) +- Add `const` to TransformPhysicalPointToIndex results in "Review" ([7c4b827b44](https://github.com/InsightSoftwareConsortium/ITK/commit/7c4b827b44)) +- Replace `T var = NumericTraits::ZeroValue()` having whitespace ([b7bfef30a8](https://github.com/InsightSoftwareConsortium/ITK/commit/b7bfef30a8)) +- Use TImage for CTAD supporting constructors ImageScanlineIterator ([1b14a34459](https://github.com/InsightSoftwareConsortium/ITK/commit/1b14a34459)) +- Use C++17 CTAD for `ImageScanlineIterator` variable declarations ([e287d819f5](https://github.com/InsightSoftwareConsortium/ITK/commit/e287d819f5)) +- Use C++17 "constexpr if" in `ImageRegionRange` ([2e1b8fffe0](https://github.com/InsightSoftwareConsortium/ITK/commit/2e1b8fffe0)) +- Use C++17 "constexpr if" in `ImageHelper` ComputeIndex, Offset ([a980ae9faf](https://github.com/InsightSoftwareConsortium/ITK/commit/a980ae9faf)) +- Replace `T var{ NumericTraits::ZeroValue() }` with `T var{}` ([5ac803e290](https://github.com/InsightSoftwareConsortium/ITK/commit/5ac803e290)) +- Remove local ImageScanlineIterator type aliases, using C++17 CTAD ([788e55897c](https://github.com/InsightSoftwareConsortium/ITK/commit/788e55897c)) +- Default default-constructor SimpleDataObjectDecorator ([7a89717c1a](https://github.com/InsightSoftwareConsortium/ITK/commit/7a89717c1a)) +- Replace ImageScanlineIterator `while` loops with `for` loops ([dbd3db552f](https://github.com/InsightSoftwareConsortium/ITK/commit/dbd3db552f)) +- Move ImageScanlineIterator variable declarations into `for` loops ([869b22217d](https://github.com/InsightSoftwareConsortium/ITK/commit/869b22217d)) +- Remove empty ResourceProbe legacy function GetSystemInformation() ([1ee4cd8e63](https://github.com/InsightSoftwareConsortium/ITK/commit/1ee4cd8e63)) +- Use trailing return type instead of `typename` in "*.h" files ([c1628d5ff9](https://github.com/InsightSoftwareConsortium/ITK/commit/c1628d5ff9)) +- More trailing return types for declarations containing "inline" ([b3f74ffbda](https://github.com/InsightSoftwareConsortium/ITK/commit/b3f74ffbda)) +- Use trailing return types in multi-line function declarations ([f7fa2693f6](https://github.com/InsightSoftwareConsortium/ITK/commit/f7fa2693f6)) +- Remove initial `<<` insertion from `itkExceptionMacro(<< "` calls ([89beb0447f](https://github.com/InsightSoftwareConsortium/ITK/commit/89beb0447f)) +- Remove initial `<<` from `itkGenericExceptionMacro(<< "` calls ([1d0d43cc6d](https://github.com/InsightSoftwareConsortium/ITK/commit/1d0d43cc6d)) +- Remove initial `<<` insertion from `itkDebugMacro(<< "` calls ([b52f423117](https://github.com/InsightSoftwareConsortium/ITK/commit/b52f423117)) +- Remove initial `<<` insertion from `itkWarningMacro(<< "` calls ([c6fedbdb9a](https://github.com/InsightSoftwareConsortium/ITK/commit/c6fedbdb9a)) +- Remove initial `<<` from `itkGenericOutputMacro(<< "` calls ([30ef8733c1](https://github.com/InsightSoftwareConsortium/ITK/commit/30ef8733c1)) +- MultiTransform iterate over m_TransformQueue by range-based `for` ([da9ecbb513](https://github.com/InsightSoftwareConsortium/ITK/commit/da9ecbb513)) + + +### Ningfei Li (1): + +#### Platform Fixes + +- Update itkExternal_Eigen3.cmake ([b8c2c94be4](https://github.com/InsightSoftwareConsortium/ITK/commit/b8c2c94be4)) + + +### Noah Egnatis (1): + +#### Platform Fixes + +- gcc-13 compatability ([9a719a0d2f](https://github.com/InsightSoftwareConsortium/ITK/commit/9a719a0d2f)) + + +### Pablo Hernandez-Cerdan (1): + +#### Bug Fixes + +- CMake, Eigen, pass CMAKE_SYSTEM_VERSION to Eigen ([c3bfb987b8](https://github.com/InsightSoftwareConsortium/ITK/commit/c3bfb987b8)) + + +### Patrick Linnane (1): + +#### Documentation Updates + +- add Homebrew instructions ([dbce33bc68](https://github.com/InsightSoftwareConsortium/ITK/commit/dbce33bc68)) + + +### Philip Cook (1): + +#### Documentation Updates + +- Remove outdated comment about sparse sampling ([8d6e787f2d](https://github.com/InsightSoftwareConsortium/ITK/commit/8d6e787f2d)) + + +### Sean McBride (1): + +#### Platform Fixes + +- Get the Utilities/gdcmext folder from GDCM, it's needed to build now ([6adfd15ab9](https://github.com/InsightSoftwareConsortium/ITK/commit/6adfd15ab9)) + + +### Simon Rit (3): + +#### Platform Fixes + +- Remove in-class {} member initializers of unique_ptr ([eac289d252](https://github.com/InsightSoftwareConsortium/ITK/commit/eac289d252)) +- Remove in class init of SmartPointer of forward declaration ([f5f8367875](https://github.com/InsightSoftwareConsortium/ITK/commit/f5f8367875)) + +#### Bug Fixes + +- Add missing Python string prefix in wrapping warning ([e7a9e9a48e](https://github.com/InsightSoftwareConsortium/ITK/commit/e7a9e9a48e)) + + +### Stephen R. Aylward (3): + +#### Enhancements + +- Bump to TubeTKv1.3.4 and MinimalPathExtractionv1.2.4 ([065c5d8539](https://github.com/InsightSoftwareConsortium/ITK/commit/065c5d8539)) +- Bump TubeTK to v1.3.5 and MinimalPathExtraction to v1.2.6 ([fe46f35f00](https://github.com/InsightSoftwareConsortium/ITK/commit/fe46f35f00)) +- Add series_uid arg to imread() for dicom series selection ([9759b63e56](https://github.com/InsightSoftwareConsortium/ITK/commit/9759b63e56)) + + +### Tom Birdsong (2): + +#### Documentation Updates + +- Update remote module docs for git hash instead of tag ([bdbbf82c9a](https://github.com/InsightSoftwareConsortium/ITK/commit/bdbbf82c9a)) + +#### Bug Fixes + +- Use hashes instead of tags for remote modules ([fd386e4c29](https://github.com/InsightSoftwareConsortium/ITK/commit/fd386e4c29)) + + +### VXL Maintainers (3): + +#### Miscellaneous Changes + +- VXL 2022-11-22 (4fd87cd5) ([24cb223828](https://github.com/InsightSoftwareConsortium/ITK/commit/24cb223828)) +- VXL 2022-12-23 (8169cc76) ([5e4d60e58c](https://github.com/InsightSoftwareConsortium/ITK/commit/5e4d60e58c)) +- VXL 2023-04-06 (4cfb87fc) ([37351308a3](https://github.com/InsightSoftwareConsortium/ITK/commit/37351308a3)) + + +### Vaibhaw (1): + +#### Bug Fixes + +- Update UpdateRequiredITKVersionInRemoteModules.sh ([05d3490db4](https://github.com/InsightSoftwareConsortium/ITK/commit/05d3490db4)) + + +### Vladimir S. FONOV (5): + +#### Enhancements + +- Added saving metadata in NRRD file in more data types ([94368f8ce3](https://github.com/InsightSoftwareConsortium/ITK/commit/94368f8ce3)) +- Added permissive mode to NIFTI reader ([5cdf6ee6c9](https://github.com/InsightSoftwareConsortium/ITK/commit/5cdf6ee6c9)) +- Made ITK_NIFTI_IO_SFORM_PERMISSIVE_DEFAULT OFF by default ([629f39c69c](https://github.com/InsightSoftwareConsortium/ITK/commit/629f39c69c)) + +#### Bug Fixes + +- fixed the itkNiftiReadWriteDirectionSmallVoxelTest test ([9c6e5fd4a6](https://github.com/InsightSoftwareConsortium/ITK/commit/9c6e5fd4a6)) +- orthogonalization should be done only on 3x3 submatrix ([815d0f0531](https://github.com/InsightSoftwareConsortium/ITK/commit/815d0f0531)) + + +### Zlib-ng Upstream (2): + +#### Miscellaneous Changes + +- zlib-ng 2023-01-09 (43fd1418) ([e49bab8469](https://github.com/InsightSoftwareConsortium/ITK/commit/e49bab8469)) +- zlib-ng 2023-02-08 (3e75a5c9) ([15cd2ffe33](https://github.com/InsightSoftwareConsortium/ITK/commit/15cd2ffe33)) + + +### huangjxbq (1): + +#### Bug Fixes + +- Error converting from rotation axis and rotation angle to quaternion ([e2f0d9aa6a](https://github.com/InsightSoftwareConsortium/ITK/commit/e2f0d9aa6a)) + + + + +ITK Sphinx Examples Changes Since v5.3.0 +--------------------------------------------- + +### Dženan Zukić (1): + +#### Enhancements + +- Rename CreateAnother into CreateAnotherInstanceOfAFilter ([724543b2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/724543b2)) + + +### Jon Haitz Legarreta Gorroño (4): + +#### Enhancements + +- Transition to `nbmake` to test notebooks ([f898fc5d](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/f898fc5d)) +- Fix workflow actions warnings linked to `Node.js` ([67c46c79](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/67c46c79)) +- Bump `actions/upload-artifact` action to v3 ([0d24e60d](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0d24e60d)) + +#### Style Changes + +- Capitalize first letter for `Histogram` class name in index ([ccde3363](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/ccde3363)) + + +### Matt McCormick (17): + +#### Enhancements + +- Bump ITK version to 5.3.0 ([4078f3fb](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/4078f3fb)) +- Add "Edit this page" links ([875c43bd](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/875c43bd)) +- Add DeformAVolumeWithAThinPlateSpline ([407addb2](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/407addb2)) +- Add Python version of ExtractIsoSurface ([a312fd34](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/a312fd34)) +- Update to ITK 5.4 RC 01 ([0b4ca644](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/0b4ca644)) + +#### Documentation Updates + +- Update README required CMake version ([c46ff9b9](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c46ff9b9)) +- Add GitHub repository icon link ([c7fda565](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c7fda565)) +- Browser-based editing is now available via GitHub ([4b25d62e](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/4b25d62e)) + +#### Platform Fixes + +- Remove Superbuild zlib ([56fcffdf](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/56fcffdf)) +- Enable IPython.sphinxext.ipython_console_highlighting ([a428ef2c](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/a428ef2c)) +- Bump CI images to latest versions ([c0c0fc3d](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/c0c0fc3d)) +- Address ITK Windows warnings ([d68014af](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/d68014af)) +- Fix traitlets version to 5.6.0 ([33888c1d](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/33888c1d)) +- Bump minimum CMake version to 3.16.3 ([cc99d7aa](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/cc99d7aa)) +- pandoc version for docs build ([3370d2ae](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/3370d2ae)) + +#### Bug Fixes + +- Bump srvaroa/labeler to v0.9 ([57a8dea5](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/57a8dea5)) +- Download HTML tarballs from GitHub Releases ([ec4ead33](https://github.com/InsightSoftwareConsortium/ITKSphinxExamples/commit/ec4ead33)) + + + + +ITK Software Guide Changes Since v5.3.0 +--------------------------------------------- + +### Dženan Zukić (1): + +#### Documentation Updates + +- Update supported compiler versions to C++17 ([cb8ba6e](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/cb8ba6e)) + + +### Jon Haitz Legarreta Gorroño (9): + +#### Enhancements + +- Update Python version in GitHub Actions to 3.9 ([10275b3](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/10275b3)) +- Fix workflow actions warnings linked to Node.js ([1999983](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/1999983)) +- Bump `actions/upload-artifact` action to v3 ([1cadef0](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/1cadef0)) +- Update GitHub Actions Ubuntu environment version ([013c3b5](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/013c3b5)) + +#### Documentation Updates + +- Avoid documenting ivar default values ([6a2861a](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/6a2861a)) +- Avoid using initialization lists in coding style snippets ([35a15c2](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/35a15c2)) +- Use non-boolean, built-in type ivars to illustrate `PrintSelf` ([8f61111](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/8f61111)) +- Do not encourage using empty comment lines ([278366c](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/278366c)) + +#### Style Changes + +- Finish coding style guideline item sentence with period ([14aee41](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/14aee41)) + + +### Matt McCormick (2): + +#### Enhancements + +- Bump ITK to 5.3.0 ([83a3e23](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/83a3e23)) +- Bump ITK Superbuild version to 5.4 RC 1 ([381c84c](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/381c84c)) + + +### Niels Dekker (4): + +#### Documentation Updates + +- Remove mistaken exception to data member initialization guideline ([6525a5c](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/6525a5c)) +- Adjust initialization rule for padding data, smart pointers, etc. ([6d5f5b5](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/6d5f5b5)) +- Do not require using NumericTraits, replace ZeroValue() with `{}` ([b5410c5](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/b5410c5)) +- Add "Integer Type Specifiers" section ([612adf5](https://github.com/InsightSoftwareConsortium/ITKSoftwareGuide/commit/612adf5)) + + + + +Remote Module Changes Since v5.3.0 +--------------------------------------------- + +## BSplineGradient: +### Tom Birdsong (6): + +#### Enhancements + +- Bump to ITK v5.3rc04.post3 ([16c1cc7](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/16c1cc7)) +- Bump ITK workflow for v5.3rc04.post4 ([1bff249](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/1bff249)) +- Bump ITK to v5.3 ([9281af8](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/9281af8)) +- Use ITK reusable CI workflow ([5bd41c5](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/5bd41c5)) + +#### Bug Fixes + +- Do not fail CI if archive is already removed ([bbf518e](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/bbf518e)) + +#### Miscellaneous Changes + +- Bump ITKBSplineGradient to 0.2.10 ([3577ec7](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient/commit/3577ec7)) + + + +## BoneMorphometry: +### Matt McCormick (1): + +#### Enhancements + +- Bump CI, package for ITK 5.3.0 ([cb826f5](https://github.com/InsightSoftwareConsortium/ITKBoneMorphometry/commit/cb826f5)) + + + +## Cleaver: +### Jean-Christophe Fillion-Robin (8): + +#### Enhancements + +- Update references to Cleaver repository to account for project rename ([ac2827b](https://github.com/SCIInstitute/ITKCleaver/commit/ac2827b)) +- Download Cleaver source from upstream repository instead of a fork ([767985f](https://github.com/SCIInstitute/ITKCleaver/commit/767985f)) +- Avoid triggering GitHub Actions workflow on both upstream and fork ([dd988f6](https://github.com/SCIInstitute/ITKCleaver/commit/dd988f6)) +- Bump Cleaver version to integrate build-system updates ([c5ed2c4](https://github.com/SCIInstitute/ITKCleaver/commit/c5ed2c4)) + +#### Documentation Updates + +- Fix license referenced in setup.py ([9cc174d](https://github.com/SCIInstitute/ITKCleaver/commit/9cc174d)) +- Tweak list of classifiers associated with the package ([56f8592](https://github.com/SCIInstitute/ITKCleaver/commit/56f8592)) + +#### Platform Fixes + +- Pin GitHub actions to full length commit SHA ([44ba697](https://github.com/SCIInstitute/ITKCleaver/commit/44ba697)) +- Add Dependabot workflow to update GitHub Actions ([5e844c2](https://github.com/SCIInstitute/ITKCleaver/commit/5e844c2)) + + +### Matt McCormick (26): + +#### Enhancements + +- Update for ITK 5.3.0 ([c1f76a0](https://github.com/SCIInstitute/ITKCleaver/commit/c1f76a0)) +- Generate Linux ARM wheels ([fc650e6](https://github.com/SCIInstitute/ITKCleaver/commit/fc650e6)) +- Add Emscripten Wasm build configuration ([f0d18e3](https://github.com/SCIInstitute/ITKCleaver/commit/f0d18e3)) +- Add WebAssembly CI build ([336b154](https://github.com/SCIInstitute/ITKCleaver/commit/336b154)) +- Add wasi build target ([9abbd0e](https://github.com/SCIInstitute/ITKCleaver/commit/9abbd0e)) +- Bump itk-wasm version to 1.0.0-b.84 ([a915fac](https://github.com/SCIInstitute/ITKCleaver/commit/a915fac)) +- Update JS package name to @itk-wasm/cleaver ([56c1be5](https://github.com/SCIInstitute/ITKCleaver/commit/56c1be5)) +- Bump itk-wasm to 1.0.0-b.85 ([5b251c8](https://github.com/SCIInstitute/ITKCleaver/commit/5b251c8)) +- Add TypeScript build to CI ([5b494ed](https://github.com/SCIInstitute/ITKCleaver/commit/5b494ed)) +- Add TypeScript sources ([e08e0a2](https://github.com/SCIInstitute/ITKCleaver/commit/e08e0a2)) +- Add wasi debug build script target ([ff2a6ac](https://github.com/SCIInstitute/ITKCleaver/commit/ff2a6ac)) +- Add WASI CTest configuration ([f9b1049](https://github.com/SCIInstitute/ITKCleaver/commit/f9b1049)) +- Test Emscripten Node.js function ([a2c6773](https://github.com/SCIInstitute/ITKCleaver/commit/a2c6773)) +- Add initial wasm browser testing ([d67b0d6](https://github.com/SCIInstitute/ITKCleaver/commit/d67b0d6)) +- Test TypeScript bindings generation ([cb2c6c2](https://github.com/SCIInstitute/ITKCleaver/commit/cb2c6c2)) + +#### Documentation Updates + +- Add wasm CI badge ([3af57cf](https://github.com/SCIInstitute/ITKCleaver/commit/3af57cf)) +- Add NPM badge ([1d050de](https://github.com/SCIInstitute/ITKCleaver/commit/1d050de)) + +#### Platform Fixes + +- Fix wasm CLI testing enablement ([895a8c3](https://github.com/SCIInstitute/ITKCleaver/commit/895a8c3)) +- Export and link to cleaver's jsoncpp ([1584960](https://github.com/SCIInstitute/ITKCleaver/commit/1584960)) +- Do not force enable BUILD_TESTING with WASI ([55a27bf](https://github.com/SCIInstitute/ITKCleaver/commit/55a27bf)) + +#### Bug Fixes + +- Fix wasm CI yaml name ([713c9d7](https://github.com/SCIInstitute/ITKCleaver/commit/713c9d7)) +- Fix input option identifier ([ff7099d](https://github.com/SCIInstitute/ITKCleaver/commit/ff7099d)) +- Add image and mesh type names to wasm pipeline ([f9ba30b](https://github.com/SCIInstitute/ITKCleaver/commit/f9ba30b)) +- Output triangle mesh should be a positional output ([46d152c](https://github.com/SCIInstitute/ITKCleaver/commit/46d152c)) +- Set BUILD_TESTING on CMake CACHE ([ae88148](https://github.com/SCIInstitute/ITKCleaver/commit/ae88148)) + +#### Miscellaneous Changes + +- build(WASI): Fix WASI build / execution ([0b9cbfc](https://github.com/SCIInstitute/ITKCleaver/commit/0b9cbfc)) + + +### dependabot[bot] (5): + +#### Platform Fixes + +- Bump actions/checkout from 1.2.0 to 3.4.0 ([739160b](https://github.com/SCIInstitute/ITKCleaver/commit/739160b)) +- Bump InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction ([0f0e2f9](https://github.com/SCIInstitute/ITKCleaver/commit/0f0e2f9)) +- Bump actions/checkout from 3.4.0 to 3.5.0 ([ae3a644](https://github.com/SCIInstitute/ITKCleaver/commit/ae3a644)) +- Bump actions/upload-artifact from 2 to 3 ([a45f652](https://github.com/SCIInstitute/ITKCleaver/commit/a45f652)) +- Bump actions/checkout from 3.5.0 to 3.5.2 ([c0d7137](https://github.com/SCIInstitute/ITKCleaver/commit/c0d7137)) + + + +## Cuberille: +### Pranjal Sahu (2): + +#### Enhancements + +- Bump ITK to make Python packages compatible ([3b4cd1e](https://github.com/InsightSoftwareConsortium/ITKCuberille/commit/3b4cd1e)) + +#### Miscellaneous Changes + +- Update package version to 2.6.0 ([859d3c4](https://github.com/InsightSoftwareConsortium/ITKCuberille/commit/859d3c4)) + + + +## CudaCommon: +### Simon Rit (10): + +#### Enhancements + +- Upgrade GitHub actions following ITKRemoteModuleBuildTestPackageAction ([f08c035](https://github.com/RTKConsortium/ITKCudaCommon/commit/f08c035)) +- Use cmake-options variable in GitHub action for Python packaging ([7763f2c](https://github.com/RTKConsortium/ITKCudaCommon/commit/7763f2c)) + +#### Documentation Updates + +- Changed radART to medPhoton in RTK consortium ([87c2643](https://github.com/RTKConsortium/ITKCudaCommon/commit/87c2643)) +- Change mailing list links to CREATIS website ([e5dba4a](https://github.com/RTKConsortium/ITKCudaCommon/commit/e5dba4a)) + +#### Platform Fixes + +- Set CMP0135 to remove DOWNLOAD_EXTRACT_TIMESTAMP config warning ([82ce410](https://github.com/RTKConsortium/ITKCudaCommon/commit/82ce410)) +- Fix unsigned int warning on image dimension ([319222c](https://github.com/RTKConsortium/ITKCudaCommon/commit/319222c)) +- Add missing ITK config include for external compilation ([36ea588](https://github.com/RTKConsortium/ITKCudaCommon/commit/36ea588)) +- Fix unused parameters argc / argv warnings ([cc77281](https://github.com/RTKConsortium/ITKCudaCommon/commit/cc77281)) + +#### Bug Fixes + +- Fix typo in wheel name ([5cb1187](https://github.com/RTKConsortium/ITKCudaCommon/commit/5cb1187)) +- Remove CUDA libraries from the CI generated Python packages ([cefcfbb](https://github.com/RTKConsortium/ITKCudaCommon/commit/cefcfbb)) + + + +## FPFH: +### Pranjal Sahu (6): + +#### Miscellaneous Changes + +- Update description in setup.py ([4c58393](https://github.com/InsightSoftwareConsortium/ITKFPFH/commit/4c58393)) +- Update github link in setup.py ([6c14c8d](https://github.com/InsightSoftwareConsortium/ITKFPFH/commit/6c14c8d)) +- Update the actions URL in setup.py ([7889e74](https://github.com/InsightSoftwareConsortium/ITKFPFH/commit/7889e74)) +- WIP: Removing not required dependencies ([f7bebe4](https://github.com/InsightSoftwareConsortium/ITKFPFH/commit/f7bebe4)) +- Update ITK tag to 5.3 ([b0d5a70](https://github.com/InsightSoftwareConsortium/ITKFPFH/commit/b0d5a70)) +- Bump tag to 0.1.1 ([b89bd09](https://github.com/InsightSoftwareConsortium/ITKFPFH/commit/b89bd09)) + + + +## GenericLabelInterpolator: +### Matt McCormick (3): + +#### Enhancements + +- Update CI configuration ([28398f8](https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/commit/28398f8)) +- Bump Python package version, dependency ([411d3b1](https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/commit/411d3b1)) +- Bump CI itk-git-tag to be closer to itk-wheel-tag ([f4de9ec](https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/commit/f4de9ec)) + + +### Tom Birdsong (1): + +#### Enhancements + +- Bump CI workflow to ITK v5.3.0 ([a4383b2](https://github.com/InsightSoftwareConsortium/ITKGenericLabelInterpolator/commit/a4383b2)) + + + +## HASI: +### Matt McCormick (1): + +#### Enhancements + +- Update CI for reusable workflow, ITK 5.3.0 ([65ec726](https://github.com/KitwareMedical/HASI/commit/65ec726)) + + +### Paul Elliott (36): + +#### Enhancements + +- add Vite and Lit frontend ([621287b](https://github.com/KitwareMedical/HASI/commit/621287b)) +- add some nav buttons and router ([bd824b6](https://github.com/KitwareMedical/HASI/commit/bd824b6)) +- router points to stub page components ([4eea911](https://github.com/KitwareMedical/HASI/commit/4eea911)) +- toggle nav sidebar with button ([0b79596](https://github.com/KitwareMedical/HASI/commit/0b79596)) +- add biomarker-picker ([04ac055](https://github.com/KitwareMedical/HASI/commit/04ac055)) +- add table ([a9dd01f](https://github.com/KitwareMedical/HASI/commit/a9dd01f)) +- add xstate machine ([e12f8c9](https://github.com/KitwareMedical/HASI/commit/e12f8c9)) +- set PlotParameters on machine context with types ([7a4453c](https://github.com/KitwareMedical/HASI/commit/7a4453c)) +- click grid row to select scan ([fc728f2](https://github.com/KitwareMedical/HASI/commit/fc728f2)) +- row cell color changes on selecting scan ([e94335b](https://github.com/KitwareMedical/HASI/commit/e94335b)) +- checkbox for row header, smaller width ([2600501](https://github.com/KitwareMedical/HASI/commit/2600501)) +- add scan-views, connect to selectedScans ([33b9896](https://github.com/KitwareMedical/HASI/commit/33b9896)) +- add SelectController for xstate ([d996faf](https://github.com/KitwareMedical/HASI/commit/d996faf)) +- refactor SelectController to SelectState ([c7e4b27](https://github.com/KitwareMedical/HASI/commit/c7e4b27)) +- can add and remove feature views ([322fcb5](https://github.com/KitwareMedical/HASI/commit/322fcb5)) +- add scan selection model ([a426584](https://github.com/KitwareMedical/HASI/commit/a426584)) +- color whole selected row ([308b6ef](https://github.com/KitwareMedical/HASI/commit/308b6ef)) +- rename ScanSelections, use color in feature view ([18efa93](https://github.com/KitwareMedical/HASI/commit/18efa93)) +- add focus row button to scan views ([3a6d25b](https://github.com/KitwareMedical/HASI/commit/3a6d25b)) +- add 3 sections of shoelace details on population ([e993d5c](https://github.com/KitwareMedical/HASI/commit/e993d5c)) +- style accordion headers, min height to sections ([8d8fac8](https://github.com/KitwareMedical/HASI/commit/8d8fac8)) +- styled navbar ([31b9cb3](https://github.com/KitwareMedical/HASI/commit/31b9cb3)) +- add chart placeholder images ([55a4781](https://github.com/KitwareMedical/HASI/commit/55a4781)) +- add feature view image placeholder ([3d5a112](https://github.com/KitwareMedical/HASI/commit/3d5a112)) +- add accordion layout component ([c90755e](https://github.com/KitwareMedical/HASI/commit/c90755e)) +- add upload scans component ([86e3180](https://github.com/KitwareMedical/HASI/commit/86e3180)) +- add upload process flow via button ([3b0001a](https://github.com/KitwareMedical/HASI/commit/3b0001a)) +- add upload progress component: ([8169f38](https://github.com/KitwareMedical/HASI/commit/8169f38)) + +#### Platform Fixes + +- build as website ([62edf44](https://github.com/KitwareMedical/HASI/commit/62edf44)) + +#### Bug Fixes + +- use keys for feature views for dom stability ([9172eee](https://github.com/KitwareMedical/HASI/commit/9172eee)) +- fix repeated clicks of focus scan ID button ([904f7af](https://github.com/KitwareMedical/HASI/commit/904f7af)) + +#### Style Changes + +- use single quotes ([def2ee6](https://github.com/KitwareMedical/HASI/commit/def2ee6)) + +#### Miscellaneous Changes + +- fix: router works in Firefox and full page row clickable ([72009be](https://github.com/KitwareMedical/HASI/commit/72009be)) +- FIX: remove top level await ([c6771dc](https://github.com/KitwareMedical/HASI/commit/c6771dc)) +- FIX: update DataGrid on menu close ([cd6841e](https://github.com/KitwareMedical/HASI/commit/cd6841e)) +- WIP ENH: stash machine state on url ([329f860](https://github.com/KitwareMedical/HASI/commit/329f860)) + + +### Tom Birdsong (1): + +#### Platform Fixes + +- Build ITK module dependencies in CI reusable workflow ([5ee74fd](https://github.com/KitwareMedical/HASI/commit/5ee74fd)) + + + +## HigherOrderAccurateGradient: +### Jon Haitz Legarreta Gorroño (1): + +#### Documentation Updates + +- Fix module description ([31e65e4](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient/commit/31e65e4)) + + +### Tom Birdsong (3): + +#### Enhancements + +- Bump ITK to v5.3rc04.post3 and reference ITK CI workflow ([449f2b1](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient/commit/449f2b1)) +- Bump ITK workflow to v5.3rc04.post4 ([6298ae1](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient/commit/6298ae1)) +- Bump for ITK v5.3 ([b524294](https://github.com/InsightSoftwareConsortium/ITKHigherOrderAccurateGradient/commit/b524294)) + + + +## IOMeshSTL: +### Jon Haitz Legarreta Gorroño (2): + +#### Enhancements + +- Update linter checkout action to v3 ([7779c09](https://github.com/InsightSoftwareConsortium/ITKIOMeshSTL/commit/7779c09)) + +#### Platform Fixes + +- Match CMake minimum required version to ITK's ([0fdd038](https://github.com/InsightSoftwareConsortium/ITKIOMeshSTL/commit/0fdd038)) + + +### Matt McCormick (1): + +#### Enhancements + +- Bump CI for ITK 5.3.0 ([cbe9793](https://github.com/InsightSoftwareConsortium/ITKIOMeshSTL/commit/cbe9793)) + + + +## IOMeshSWC: +### Matt McCormick (1): + +#### Enhancements + +- Update CI configuration for ITK 5.3.0 ([103e3c4](https://github.com/InsightSoftwareConsortium/ITKIOMeshSWC/commit/103e3c4)) + + + +## IOScanco: +### Matt McCormick (7): + +#### Enhancements + +- Update CI / packaging for ITK 5.3.0 ([18e17a2](https://github.com/KitwareMedical/ITKIOScanco/commit/18e17a2)) +- Bump Notebook Actions runner to ubuntu-22.04 ([e67f066](https://github.com/KitwareMedical/ITKIOScanco/commit/e67f066)) +- Update Notebook CI configuration ([fe56af4](https://github.com/KitwareMedical/ITKIOScanco/commit/fe56af4)) + +#### Documentation Updates + +- Add notebook tests CI badge ([32700b2](https://github.com/KitwareMedical/ITKIOScanco/commit/32700b2)) +- Update notebooks for new api, itkwidgets 1.0, pooch ([8a67a3b](https://github.com/KitwareMedical/ITKIOScanco/commit/8a67a3b)) + +#### Platform Fixes + +- Use Python version for notebook tests ([92c567a](https://github.com/KitwareMedical/ITKIOScanco/commit/92c567a)) +- Bump itk-ioscanco Notebook CI required version to 0.10.0 ([fdd18cc](https://github.com/KitwareMedical/ITKIOScanco/commit/fdd18cc)) + + +### Michael Kuczynski (4): + +#### Enhancements + +- Adding get/set functions for missing header parameters ([2d22baa](https://github.com/KitwareMedical/ITKIOScanco/commit/2d22baa)) + +#### Miscellaneous Changes + +- Updated tests for new get/set functions ([ce0727a](https://github.com/KitwareMedical/ITKIOScanco/commit/ce0727a)) +- Updated formatting ([c468eba](https://github.com/KitwareMedical/ITKIOScanco/commit/c468eba)) +- Updating format as line length was less than limit ([bc0d40a](https://github.com/KitwareMedical/ITKIOScanco/commit/bc0d40a)) + + + +## LabelErodeDilate: +### Bryn Lloyd (1): + +#### Enhancements + +- update to ITK 5.3.0 (#38) ([7e23b12](https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate/commit/7e23b12)) + + + +## MeshToPolyData: +### Matt McCormick (11): + +#### Enhancements + +- Bump CI itk-git-tag to v5.3rc04 ([12d3c3d](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/12d3c3d)) +- Bump Python package version to 0.9.0 ([f26b80c](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/f26b80c)) +- Bump itk-wasm to 1.0.0-b.71 ([a77ed2e](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/a77ed2e)) +- Move wasm/ to top level ([4c3df79](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/4c3df79)) +- Add .gitignore for wasm artifacts ([3b53d80](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/3b53d80)) +- Bump itk-wasm to 1.0.0-b.73 ([0b98db4](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/0b98db4)) +- Add wasi build step ([6af3e34](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/6af3e34)) +- Build wasi in build script ([6972bd9](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/6972bd9)) +- Add Wasm GitHub Action ([3b6d67e](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/3b6d67e)) + +#### Bug Fixes + +- Build-test-package: resolve merge conflicts ([2558bd4](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/2558bd4)) + +#### Style Changes + +- Rename mesh-to-polydata to mesh-to-poly-data ([58730f9](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/58730f9)) + + +### Paul Elliott (1): + +#### Enhancements + +- Add package with itk-wasm build ([c183978](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/c183978)) + + +### Pranjal Sahu (3): + +#### Enhancements + +- Adding changes for itk::PolyLineCell ([5586157](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/5586157)) +- Adding test for itk::PolyLineCell ([d56e249](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/d56e249)) +- Adding Python test for itk::PolyLineCell conversion ([374bea6](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/374bea6)) + + +### Tom Birdsong (6): + +#### Enhancements + +- Bump for ITK v5.3rc04.post3 ([a5f1897](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/a5f1897)) +- Bump ITK workflow to v5.3rc04.post4 ([d46d656](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/d46d656)) +- Bump for ITK v5.3 ([3ad8f08](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/3ad8f08)) +- Bump CI workflow for ARM builds and wheel validation ([496096f](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/496096f)) +- Enable notebook CI check ([e597c84](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/e597c84)) + +#### Bug Fixes + +- Example notebook fixups ([f963101](https://github.com/InsightSoftwareConsortium/ITKMeshToPolyData/commit/f963101)) + + + +## MinimalPathExtraction: +### Dženan Zukić (1): + +#### Platform Fixes + +- Fix discarding return value warning introduced by ITK 5.4 ([35dd8e8](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/35dd8e8)) + + +### Matt McCormick (1): + +#### Enhancements + +- Bump Python package version to 1.2.6 ([592d965](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/592d965)) + + +### Stephen R. Aylward (3): + +#### Enhancements + +- Bump CI and setup to ITKv5.3.0 (#96) ([458796e](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/458796e)) +- Release 1.2.4 with ITK v5.3.0 support ([71813fa](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/71813fa)) +- Update python builds to 1.2.5 ([426576c](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/426576c)) + + +### Tom Birdsong (1): + +#### Enhancements + +- Use ITK reusable CI workflow ([bd45bf0](https://github.com/InsightSoftwareConsortium/ITKMinimalPathExtraction/commit/bd45bf0)) + + + +## Montage: +### Dženan Zukić (8): + +#### Enhancements + +- Require less components to be built for examples ([76b2286](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/76b2286)) + +#### Platform Fixes + +- Fix compile error of MontageImageCompareCommand ([da7649e](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/da7649e)) +- Fix discarding return value warning introduced by ITK 5.4 ([d8c9a3f](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/d8c9a3f)) +- Update minimum CMake version from 3.10.2 to 3.16.3 ([2789c34](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/2789c34)) + +#### Bug Fixes + +- erase confidence together with the translation candidate ([4f501a8](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/4f501a8)) +- Avoid appearance of NaN values ([b7ab26a](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/b7ab26a)) + +#### Style Changes + +- Replace SFINAE selection by constexpr if ([33b6b74](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/33b6b74)) +- Use trailing return type instead of typename + dependent type ([b91741f](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/b91741f)) + + +### Matt McCormick (2): + +#### Enhancements + +- Bump Python package version to 0.8.1 ([d7f849f](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/d7f849f)) + +#### Bug Fixes + +- Do not wrap duplicate complex double dependencies ([ce1c9f0](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/ce1c9f0)) + + +### Tom Birdsong (4): + +#### Enhancements + +- Bump for ITK v5.3 ([fc64c6f](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/fc64c6f)) +- Port montage notebook example ([7015e4a](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/7015e4a)) +- Add CI notebook testing ([777a669](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/777a669)) + +#### Bug Fixes + +- Update `TileMergeImageFilter` signature in example script ([bfe0cac](https://github.com/InsightSoftwareConsortium/ITKMontage/commit/bfe0cac)) + + + +## MorphologicalContourInterpolation: +### Dženan Zukić (2): + +#### Enhancements + +- Remove test parallelism to prevent non-deterministic test failures ([a31fbf7](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/a31fbf7)) + +#### Style Changes + +- Use trailing return type instead of typename + dependent type ([0a057d7](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/0a057d7)) + + +### Tom Birdsong (1): + +#### Enhancements + +- Bump to ITK v5.3.0 ([ac69d71](https://github.com/KitwareMedical/ITKMorphologicalContourInterpolation/commit/ac69d71)) + + + +## ParabolicMorphology: +### Matt McCormick (8): + +#### Enhancements + +- Update to ITK 5.3.0 ([45eff88](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/45eff88)) +- Add notebook testing CI configuration ([2c3b2ea](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/2c3b2ea)) +- Update to consolidated notebook testing configuration ([847e1ec](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/847e1ec)) + +#### Documentation Updates + +- Update notebook to use itkwidgets 1.X, pooch ([bae9eb6](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/bae9eb6)) +- Add distance map example ([34da76a](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/34da76a)) +- Update notebook screenshots ([cd2b6c4](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/cd2b6c4)) + +#### Platform Fixes + +- Update build-test-package GitHub Action ([32c7ca7](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/32c7ca7)) + +#### Bug Fixes + +- Distance filters should only be wrapped for real outputs ([c9516f8](https://github.com/InsightSoftwareConsortium/ITKParabolicMorphology/commit/c9516f8)) + + + +## RANSAC: +### Matt McCormick (1): + +#### Documentation Updates + +- Add Python installation, IJ link ([e3ce1ff](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/e3ce1ff)) + + +### Pranjal Sahu (13): + +#### Miscellaneous Changes + +- Update URL and description in setup.py ([b1c5e66](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/b1c5e66)) +- Update Badge URLs in README ([2886c2b](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/2886c2b)) +- Update ITK tag to 5.3 ([198f5e9](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/198f5e9)) +- Bump tag to 0.1.1 ([6b0417d](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/6b0417d)) +- Remove itkPoint dimension 6 wrapping ([23cf7a3](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/23cf7a3)) +- Add support for VersorRigid3D Transform ([acccf2c](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/acccf2c)) +- Update Tag to 0.1.2 ([20b38a6](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/20b38a6)) +- Add early prune check for transformed feature points ([58aebfd](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/58aebfd)) +- Check for RMSE when inlier count is same ([07d57c5](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/07d57c5)) +- Add Set/Get for additional corresspondence checks ([f6b16a2](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/f6b16a2)) +- Upgrade Version to 0.1.3 with additional checks ([4259b25](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/4259b25)) +- Change delta to Euclidean distance ([04db366](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/04db366)) +- Upgrade ITKRANSAC to 0.1.4 ([5d6bdf7](https://github.com/InsightSoftwareConsortium/ITKRANSAC/commit/5d6bdf7)) + + + +## RLEImage: +### Dženan Zukić (1): + +#### Style Changes + +- Use trailing return type instead of typename + dependent type ([901e40f](https://github.com/KitwareMedical/ITKRLEImage/commit/901e40f)) + + +### Tom Birdsong (3): + +#### Enhancements + +- Bump to ITK v5.3.0 ([fe2bb30](https://github.com/KitwareMedical/ITKRLEImage/commit/fe2bb30)) + +#### Platform Fixes + +- Remove Python CI workflow ([070fef6](https://github.com/KitwareMedical/ITKRLEImage/commit/070fef6)) + +#### Bug Fixes + +- Remove Linux notebook check from CI ([310b579](https://github.com/KitwareMedical/ITKRLEImage/commit/310b579)) + + + +## RTK: +### Antoine Robert (2): + +#### Enhancements + +- Change default value of OSEM regularization to O ([5f01b347](https://github.com/RTKConsortium/RTK/commit/5f01b347)) + +#### Bug Fixes + +- Fix OSEM image quality test ([c92dde36](https://github.com/RTKConsortium/RTK/commit/c92dde36)) + + +### LAURENDEAU Matthieu (2): + +#### Enhancements + +- Add MaskCollimationImageFilter Python wrapping ([c6fa8732](https://github.com/RTKConsortium/RTK/commit/c6fa8732)) +- Add option to set the rotation axis in MaskCollimationImageFilter ([688e9ab8](https://github.com/RTKConsortium/RTK/commit/688e9ab8)) + + +### Shengpeng YU (1): + +#### Bug Fixes + +- Fix CUDA/CPU inconsistency in DisplacedDetectorImageFilter ([e8299590](https://github.com/RTKConsortium/RTK/commit/e8299590)) + + +### Simon Rit (30): + +#### Enhancements + +- Bump for ITK v5.3 release ([c87911c4](https://github.com/RTKConsortium/RTK/commit/c87911c4)) +- Reduce downloads in self-hosted Github runners ([038ad5d4](https://github.com/RTKConsortium/RTK/commit/038ad5d4)) +- Upgrade GitHub actions to checkout@v3 ([a924bb73](https://github.com/RTKConsortium/RTK/commit/a924bb73)) +- Update for ITKPythonPackage script updates ([b3145e37](https://github.com/RTKConsortium/RTK/commit/b3145e37)) +- Account for yaw rotation in ImagingRing geometry ([c7206715](https://github.com/RTKConsortium/RTK/commit/c7206715)) +- Add OptiTrack option to Ora geometry ([ab572956](https://github.com/RTKConsortium/RTK/commit/ab572956)) +- Add warning when Ora projection is not valid ([36982471](https://github.com/RTKConsortium/RTK/commit/36982471)) +- Add tests for yaw and optitrack information in ImagingRing files ([40a2fc61](https://github.com/RTKConsortium/RTK/commit/40a2fc61)) +- Make tolerances on angle verification parametrizable ([fac3f646](https://github.com/RTKConsortium/RTK/commit/fac3f646)) +- Allow more than one projection in Weidinger's spectrum ([4707a3ce](https://github.com/RTKConsortium/RTK/commit/4707a3ce)) +- Allow one step reconstruction with fast switching ([a1d91c41](https://github.com/RTKConsortium/RTK/commit/a1d91c41)) +- Use ITKRemoteModuleBuildTestPackageAction and separate CUDA actions ([bcce053e](https://github.com/RTKConsortium/RTK/commit/bcce053e)) +- Split MacOS Python package jobs in GitHub actions ([15e1aa85](https://github.com/RTKConsortium/RTK/commit/15e1aa85)) +- Do not build C++ applications when generating Python packages ([d9724b45](https://github.com/RTKConsortium/RTK/commit/d9724b45)) +- Remove ITKCudaCommon from the source tree ([138474a8](https://github.com/RTKConsortium/RTK/commit/138474a8)) +- Add CudaCommon dependency to Cuda wheels ([9bc33997](https://github.com/RTKConsortium/RTK/commit/9bc33997)) +- Import Cuda bin directory in the Windows environment for Cuda DLLs ([abe956fb](https://github.com/RTKConsortium/RTK/commit/abe956fb)) + +#### Documentation Updates + +- Fix digraph for projection weights ([2c35fdf4](https://github.com/RTKConsortium/RTK/commit/2c35fdf4)) +- Change mailing list links to CREATIS website ([23cb5598](https://github.com/RTKConsortium/RTK/commit/23cb5598)) + +#### Platform Fixes + +- Fix unused variables and sign warnings in Ora geometry ([f26e5cf8](https://github.com/RTKConsortium/RTK/commit/f26e5cf8)) +- Set CMake Policy 135 to NEW to suppress warnings in CMake 3.24 ([93bcf263](https://github.com/RTKConsortium/RTK/commit/93bcf263)) +- Upgrade GitHub remote action to avoid MacOS warnings ([dd49c2f4](https://github.com/RTKConsortium/RTK/commit/dd49c2f4)) +- Remove warnings due to re-use of Python wrapping names ([b357c903](https://github.com/RTKConsortium/RTK/commit/b357c903)) +- Remove wrapping warning due to unwrapped geometry class ([e7de14d6](https://github.com/RTKConsortium/RTK/commit/e7de14d6)) +- Fix [[nodiscard]] warnings of Image "Transform" member functions ([37b2cee7](https://github.com/RTKConsortium/RTK/commit/37b2cee7)) +- Fix Cuda [[nodiscard]] warnings of Image "Transform" functions ([ab08d7a6](https://github.com/RTKConsortium/RTK/commit/ab08d7a6)) + +#### Bug Fixes + +- Fix ITKPythonPackage git tag in Python CUDA action ([02005d75](https://github.com/RTKConsortium/RTK/commit/02005d75)) + +#### Style Changes + +- Rename non-templated types from T* to *Type ([c4882b88](https://github.com/RTKConsortium/RTK/commit/c4882b88)) +- Rename template parameter values ([e1484a09](https://github.com/RTKConsortium/RTK/commit/e1484a09)) +- Remove traces of CG cost function calculation ([a7e0f2df](https://github.com/RTKConsortium/RTK/commit/a7e0f2df)) + + + +## Shape: +### Matt McCormick (1): + +#### Enhancements + +- Bump CI and Python package for ITK 5.3.0 ([0c8b94e](https://github.com/SlicerSALT/ITKShape/commit/0c8b94e)) + + +### Tom Birdsong (1): + +#### Enhancements + +- Bump ITK to v5.3rc04.post3 with reusable workflow ([a9ba859](https://github.com/SlicerSALT/ITKShape/commit/a9ba859)) + + + +## SimpleITKFilters: +### Bradley Lowekamp (3): + +#### Miscellaneous Changes + +- Update GHA from template for ITK 5.3.0 ([04c3f48](https://github.com/InsightSoftwareConsortium/ITKSimpleITKFilters/commit/04c3f48)) +- Wrap DICOMOrientation ([0557b25](https://github.com/InsightSoftwareConsortium/ITKSimpleITKFilters/commit/0557b25)) +- Update to version 1.0 ([9926e46](https://github.com/InsightSoftwareConsortium/ITKSimpleITKFilters/commit/9926e46)) + + + +## SplitComponents: +### Tom Birdsong (16): + +#### Enhancements + +- Update Linux CI OS version ([6173045](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/6173045)) +- Replace cxx CI steps with composite action ([a715438](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/a715438)) +- Update macos version in CI ([430301b](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/430301b)) +- Bump to ITK v5.3rc04.post3 ([f37cc13](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/f37cc13)) +- Update tarball list for Python CI ([4ab0a64](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/4ab0a64)) +- Use reusable ITK CI workflow ([869eceb](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/869eceb)) +- Bump ITK workflows to v5.3rc04.post4 ([58428c5](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/58428c5)) +- Bump for v5.3 release ([ac1b3da](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/ac1b3da)) +- Apply ITK CI workflow updates ([ef7a950](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/ef7a950)) +- Bump ITKPythonPackage tag ([e126069](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/e126069)) +- Build only required ITK modules for testing ([0e6214b](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/0e6214b)) +- Add CI Linux ARM build and notebook checks ([9d1565d](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/9d1565d)) +- Bump reusable workflow for wheel validation ([343a9ef](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/343a9ef)) + +#### Bug Fixes + +- Update example notebook from python2 to python3 kernel ([67237cd](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/67237cd)) +- Address Python notebook test failures ([04710af](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/04710af)) +- Resolve CMP135 Warning ([981b099](https://github.com/InsightSoftwareConsortium/ITKSplitComponents/commit/981b099)) + + + +## Strain: +### Tom Birdsong (3): + +#### Enhancements + +- Bump ITK to v5.3rc04.post3 ([59cb2b4](https://github.com/KitwareMedical/ITKStrain/commit/59cb2b4)) +- Bump for ITK v5.3rc04.post4 ([d6af2c5](https://github.com/KitwareMedical/ITKStrain/commit/d6af2c5)) +- Bump for ITK v5.3 ([8666068](https://github.com/KitwareMedical/ITKStrain/commit/8666068)) + + + +## TextureFeatures: +### Jon Haitz Legarreta Gorroño (1): + +#### Platform Fixes + +- Match CMake minimum required version to ITK's ([867bbc6](https://github.com/InsightSoftwareConsortium/ITKTextureFeatures/commit/867bbc6)) + + +### Matt McCormick (2): + +#### Enhancements + +- Update CI configuration to 5.3.0 latest ([e20b8f0](https://github.com/InsightSoftwareConsortium/ITKTextureFeatures/commit/e20b8f0)) +- Bump Python package version to 3.6.0 ([d3e5d1c](https://github.com/InsightSoftwareConsortium/ITKTextureFeatures/commit/d3e5d1c)) + + +### Pranjal Sahu (1): + +#### Enhancements + +- Remove unused FixedArray wrapping ([0823b10](https://github.com/InsightSoftwareConsortium/ITKTextureFeatures/commit/0823b10)) + + +### Tom Birdsong (1): + +#### Enhancements + +- Bump to ITK v5.3rc04.post3 with reusable workflow ([015ff58](https://github.com/InsightSoftwareConsortium/ITKTextureFeatures/commit/015ff58)) + + + +## Thickness3D: +### Matt McCormick (1): + +#### Enhancements + +- Update CI for ITK 5.3.0 ([944886a](https://github.com/InsightSoftwareConsortium/ITKThickness3D/commit/944886a)) + + + +## Ultrasound: +### Dženan Zukić (10): + +#### Enhancements + +- Add BackscatterImageFilter with Python wrapping ([d8e02b2](https://github.com/KitwareMedical/ITKUltrasound/commit/d8e02b2)) +- Use tighter tolerances for C++ attenuation tests ([b8c81da](https://github.com/KitwareMedical/ITKUltrasound/commit/b8c81da)) +- Make the output mask of AttenuationImageFilter a normal output ([39fd2d5](https://github.com/KitwareMedical/ITKUltrasound/commit/39fd2d5)) +- Add a Python test for AttenuationImageFilter ([b5ecbc5](https://github.com/KitwareMedical/ITKUltrasound/commit/b5ecbc5)) +- Wrap ResampleFilter for 3D CurvilinearArraySpecialCoordinatesImage ([cff669e](https://github.com/KitwareMedical/ITKUltrasound/commit/cff669e)) +- Add quantitative regression test for Python curvilinear resampling ([86aff35](https://github.com/KitwareMedical/ITKUltrasound/commit/86aff35)) + +#### Platform Fixes + +- Use more performant variants of transform physical point methods ([aeb838b](https://github.com/KitwareMedical/ITKUltrasound/commit/aeb838b)) + +#### Style Changes + +- make the Python test documentation more consistent ([07f3e41](https://github.com/KitwareMedical/ITKUltrasound/commit/07f3e41)) +- Baseline image is the first parameter in regression comparison ([43b5123](https://github.com/KitwareMedical/ITKUltrasound/commit/43b5123)) +- Use ITK_DISALLOW_COPY_AND_MOVE instead deleted private members ([9acfc48](https://github.com/KitwareMedical/ITKUltrasound/commit/9acfc48)) + + +### Tom Birdsong (9): + +#### Enhancements + +- Bump ITK to v5.3rc04.post3 ([269d8cc](https://github.com/KitwareMedical/ITKUltrasound/commit/269d8cc)) +- Bump version to 0.5.9 ([13d57e2](https://github.com/KitwareMedical/ITKUltrasound/commit/13d57e2)) +- Bump for ITK v5.3.0 ([0ff2216](https://github.com/KitwareMedical/ITKUltrasound/commit/0ff2216)) +- Bump notebook workflow ([88f79b5](https://github.com/KitwareMedical/ITKUltrasound/commit/88f79b5)) +- Use ITK reusable workflow ([38280fc](https://github.com/KitwareMedical/ITKUltrasound/commit/38280fc)) +- Update ITK CI reusable workflow ([ca760c8](https://github.com/KitwareMedical/ITKUltrasound/commit/ca760c8)) + +#### Platform Fixes + +- Ignore `SliceSeriesSpecialCoordinatesImage` warning ([568fc49](https://github.com/KitwareMedical/ITKUltrasound/commit/568fc49)) + +#### Bug Fixes + +- Fix `install_requires` list in `setup.py` ([1e8a1f1](https://github.com/KitwareMedical/ITKUltrasound/commit/1e8a1f1)) +- Update SpectralDistributions example for itkwidgets 0.21a ([128e4f0](https://github.com/KitwareMedical/ITKUltrasound/commit/128e4f0)) + + + +## VkFFTBackend: +### Lee Newberg (1): + +#### Enhancements + +- Versions as strings, not numbers, so that 3.1 != 3.10, etc. ([a4d0860](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/a4d0860)) + + +### Tom Birdsong (8): + +#### Enhancements + +- Update AWS EC2 GPU AMI tag ([900f0db](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/900f0db)) +- Bump ITK version to v5.3rc04.post2 ([1d4b375](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/1d4b375)) +- Bump to v5.3rc04.post3 ([4c968f1](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/4c968f1)) +- Support ITK tarball specializations in linux build ([eae3ddd](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/eae3ddd)) +- Bump VkFFT to v1.2.31 ([933862b](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/933862b)) +- Bump for ITK v5.3.0 ([31a1921](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/31a1921)) + +#### Platform Fixes + +- Ignore VkFFT benchmark compiler warning ([ed3c449](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/ed3c449)) +- Use VkFFT as a header-only library ([9a1f6c3](https://github.com/InsightSoftwareConsortium/ITKVkFFTBackend/commit/9a1f6c3)) + + + +## WebAssemblyInterface: +### Dženan Zukić (5): + +#### Miscellaneous Changes + +- docs(examples): remove manual line breaks from examples/index.md ([3697feaf](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/3697feaf)) +- docs: remove manual line breaks in itk_js_to_itk_wasm_migration_guide.md ([7523fdff](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/7523fdff)) +- docs: typo fixes in itk_js_to_itk_wasm_migration_guide.md ([95d8324a](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/95d8324a)) +- docs(HelloWorldExample): More direct link to Git repository ([0741bf34](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/0741bf34)) +- docs(HelloWorldExample): HTML file should be named index.html ([10e91189](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/10e91189)) + + +### Federico Zivolo (2): + +#### Miscellaneous Changes + +- feat: expose version ([c51dcf53](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/c51dcf53)) +- fix: import ([3e6d0a79](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/3e6d0a79)) + + +### Matt McCormick (380): + +#### Miscellaneous Changes + +- style(ViteExample): Add textarea styling for readability ([ef41550e](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/ef41550e)) +- build(DynamicImports): Add @vite-ignore ([f32fccf3](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f32fccf3)) +- chore(ViteExample): Bump to Vite 3 ([320fe99e](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/320fe99e)) +- feat(Pipeline): Add interface_json() ([24bbeb77](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/24bbeb77)) +- style(Pipelines): Use dash delimited names for name and positional args ([df5aa7f2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/df5aa7f2)) +- fix(runPipelineEmscripten): Copy args before passing to callMain ([6f0a85f2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/6f0a85f2)) +- feat(itk-wasm-cli): Update default Docker image for kebab modules ([c6182e52](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/c6182e52)) +- docs(hello-pipeline,inputs-outputs): Update for pipeline name, type_name ([7c64db46](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/7c64db46)) +- feat(structured-report-to-text): Initial pipeline addition ([b961063d](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/b961063d)) +- feat(itk-wasm-cli): Update default Docker image for Pipeline updates ([145308d3](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/145308d3)) +- build(publish): Update test pipeline path for prepublish cleanup ([19cf4434](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/19cf4434)) +- ci(repository-url): Remove git+ protocol prefix ([07ce28a2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/07ce28a2)) +- fix(package.json): Remove git+ protocol from repository url's ([e617cf21](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/e617cf21)) +- feat(itk-dicom): Browser package configuration ([6cc2574c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/6cc2574c)) +- style(camelCase): Provide return type ([559c398f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/559c398f)) +- build(ExportMap): Add "default" entry ([bf806c5f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/bf806c5f)) +- feat(itk-wasm-cli): Update default Docker image for 1.0.0-b.7 ([84fb14be](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/84fb14be)) +- feat(version): Bump version to 1.0.0-b.7 ([91e1f6eb](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/91e1f6eb)) +- feat(itk-dicom): Node.js bundling and interface ([3e5feb18](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/3e5feb18)) +- test(XState): Vendor for testing offline ([da81c204](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/da81c204)) +- build(prepublishOnly): Do not remove dist/pipelines/*Test* ([85815250](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/85815250)) +- style(python): Move itkwasm package into its own directory ([00a8fe0b](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/00a8fe0b)) +- ci(Python): Update Hosted Runner versions ([f9bf19a2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f9bf19a2)) +- build(Python): Migrate packager from flit to hatch ([e5fec054](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/e5fec054)) +- feat(python): Execute with stdout / stderr ([29318f6c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/29318f6c)) +- build(itk-dicom): Bump itk-dicom to required version ([1f60b18a](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1f60b18a)) +- docs(dicom): Add options to demo app ([f5650ff3](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f5650ff3)) +- style(dicom-demo): Use spectrum-web-components ([e3857b12](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/e3857b12)) +- fix(bindings): Pass pipeline path for generation ([e8cf50cf](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/e8cf50cf)) +- fix(runPipelineEmscript): Lower mesh cellData ([50185ca5](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/50185ca5)) +- docs(Hacking): Document creating a debug build ([5b1fdf65](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/5b1fdf65)) +- docs(Hacking): Add welcome message, semantic-release link ([ff26ca1d](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/ff26ca1d)) +- docs(debugging): Fix links ([81c621f2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/81c621f2)) +- docs(hacking_itk_wasm): Fix debugging example link ([b4f70c2c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/b4f70c2c)) +- refactor(itk-wasm-cli): Rename bindings subcommand to bindgen ([501e4166](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/501e4166)) +- chore(itk-dicom): Bump version to 0.1.0 ([b77a743c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/b77a743c)) +- fix(itkConfig.ts): Import from './browser/index.js' ([f6a125de](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f6a125de)) +- feat(WASI): Support itk_wasm_delayed_start ([a4609a6e](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/a4609a6e)) +- ci(Firefox): Disable until issues with FF 105 addressed: ([1afd9886](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1afd9886)) +- ci(update-versions): Run during verifyReleaseCmd ([d0defca5](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/d0defca5)) +- docs(ViteExample): Bump to 1.0.0-b.37 ([2f25c583](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/2f25c583)) +- feat(itk-wasm-cli): Update default Docker image for 1.0.0-b.38 ([a6af973a](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/a6af973a)) +- chore: Bump itk-dicom version to 0.2.0 ([4f2056ec](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/4f2056ec)) +- fix: Run update-versions during prepublishOnly npm step ([8717d055](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/8717d055)) +- feat(Python): Support pipeline stream inputs/outputs ([837876ac](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/837876ac)) +- chore(Dependencies): Bump Cypress to 10.10.0 ([4ce2d9f3](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/4ce2d9f3)) +- test(runPipeline): Migrate from Karma to Cypress ([a408e7c8](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/a408e7c8)) +- feat(itkConfig): Support dynamic runtime specification for browser ([a461426c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/a461426c)) +- style(runPipelineNode): loadEmscriptenModuleNode consistent with export ([e36ba4f2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/e36ba4f2)) +- feat: Python File interface types support ([b9509ba9](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/b9509ba9)) +- fix(io-packages): Update with main package semantic-release version ([6e62ba79](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/6e62ba79)) +- feat(SupportInputImageTypes): Support VectorImage as template specialization ([0ec818e2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/0ec818e2)) +- feat(castImage): Function to cast to pixelType, componentType ([52500fef](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/52500fef)) +- feat(itk-wasm-cli): Update default Docker image for 20221101-a2f1bdfa ([2a0cd0f7](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/2a0cd0f7)) +- docs(RELEASE): Remove components automated by semantic-release ([74b75db8](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/74b75db8)) +- feat(itk-wasm-cli): Update default Docker image for 20221101-1b7430cf ([b877b784](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/b877b784)) +- build: Remove SupportInputImageTypesNoVectorImage ([1ada4361](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1ada4361)) +- feat(itk-wasm-cli): Update default Docker image for 20221101-8f65383f ([bf965dd7](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/bf965dd7)) +- docs(Docker): Move release documentation into src/docker ([be9ffc83](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/be9ffc83)) +- build: Export cpp-base64 from WebAssemblyInterface ([7cc7cfa2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/7cc7cfa2)) +- ci(testing-data): Remove Pinata pinning ([1e3e0835](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1e3e0835)) +- refactor: Updates for master to main branch rename ([770d853a](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/770d853a)) +- ci: Remove unused Azure Pipelines config ([075eb0bf](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/075eb0bf)) +- test: Update released data resources ([6e0d4c17](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/6e0d4c17)) +- test: Retrieve released data from Kitware's Apache server ([09c335b3](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/09c335b3)) +- feat(readImageLocalFile): Support casting options ([149721db](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/149721db)) +- feat(readImageArrayBuffer): Support componentType, pixelType options ([6d1c20ac](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/6d1c20ac)) +- feat(readImageBlob): Add pixelType, componentType options ([9b8c32a2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/9b8c32a2)) +- feat(readImageDICOMArrayBufferSeries): Add componentType, pixelType options ([54deca39](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/54deca39)) +- style: ts-standard updates ([94460b73](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/94460b73)) +- feat(readImageFileSeries): Support componentType, pixelType ([d42fbc12](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/d42fbc12)) +- feat(readImageDICOMFileSeries): Support componentType, pixelType options ([5e5d1423](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/5e5d1423)) +- feat(readImageFile): Support componentType, pixelType ([9ac40b94](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/9ac40b94)) +- feat(readImageLocalDICOMFileSeries): Support componentType, pixelType ([0a61e48c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/0a61e48c)) +- feat(writeImageArrayBuffer): Support componentType, pixelType ([2b50d9c8](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/2b50d9c8)) +- feat(writeImageLocalFile): Support componentType, pixelType ([23eca873](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/23eca873)) +- build: Update ExternalData.cmake for w3s.link gateway output ([08ead980](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/08ead980)) +- docs: Document how to add new testing data ([6970f542](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/6970f542)) +- feat(Image): use Map for metadata member ([f9ac56ec](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f9ac56ec)) +- feat(Image): support metadata serialization ([282db1b8](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/282db1b8)) +- feat(itk-wasm-cli): Update default Docker image for 20221114-8659b8cc ([7af2985c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/7af2985c)) +- docs(docker-release): Note checking out a new branch ([1e4a827d](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1e4a827d)) +- docs: Add BREAKING_CHANGES.md to track beta breaking changes ([c9ffa2b1](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/c9ffa2b1)) +- feat(Python): Add IO wrapping ([a0e6705f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/a0e6705f)) +- build(Python): Add setup.py ([0183eb00](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/0183eb00)) +- ci(GitHubActions): Add C++, Python package builds ([75e8337a](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/75e8337a)) +- ci(GitHubActions): Migrate to remote module reusable action ([1b6926c1](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1b6926c1)) +- build(Windows): Use C++20 standard ([f367476c](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f367476c)) +- build(libcbor): Bump to latest master ([f023f0f8](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/f023f0f8)) +- build(Windows): Replace std::atol with std::strtoull ([93b8a7b2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/93b8a7b2)) +- build(GCC): Address operator | warning ([9234e1a5](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/9234e1a5)) +- build(macos): Use C++17 ([76168258](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/76168258)) +- build(SharedLibs): Add missing export specification, linkage ([ddc60684](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/ddc60684)) +- build(Windows): Simplify cbor pair initialization ([0c62f22f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/0c62f22f)) +- docs(NativePythonPackage): Improve long description ([06916b20](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/06916b20)) +- test(C++): Disable itkPipelineTest in CI ([8e8d08ca](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/8e8d08ca)) +- feat(ITK): Bump to 2022-12-21 master ([d37dad3f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/d37dad3f)) +- feat(itk-wasm-cli): Update default Docker image for 20221222-d37dad3f ([79b57308](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/79b57308)) +- ci(NativePython): Fix wheel uploads ([1fa7dbd7](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1fa7dbd7)) +- build(PythonPackages): Enable CMAKE_POSITION_INDEPENDENT_CODE ([c4fe6221](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/c4fe6221)) +- docs(Badges): Fix C++ / Native Python link ([c02db3db](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/c02db3db)) +- chore(HelloWorldExample): Bump dependencies to latest ([859ad9cb](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/859ad9cb)) +- refactor(HelloWorldExample): Run example on port 8083 ([e3bc54ac](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/e3bc54ac)) +- docs(HelloWorldExample): WASM -> Wasm ([4759d243](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/4759d243)) +- docs(HelloWorld): Updates and improvements for 1.0.0-b.53 ([49d8cf99](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/49d8cf99)) +- docs(HelloWorld): Update screenshot ([3e646d8f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/3e646d8f)) +- ci(HelloWorld): Bump actions to latest ([4afb68f7](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/4afb68f7)) +- ci(HelloWorldExample): Update emscripten-build artifact directory ([ed0754b7](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/ed0754b7)) +- ci(Python): Add native ARM wheel support ([1444f69e](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1444f69e)) +- feat(runPipeline): Support passing pipelineBaseUrl directly ([2a65e196](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/2a65e196)) +- fix(runPipeline): Support URL pipelineBaseUrl ([af20cd98](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/af20cd98)) +- fix(createWebWorkerPromise): Move up one directory ([1ed0b88f](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/1ed0b88f)) +- build(toolchains): Bump to wasi-sdk-19, emscripten latest release ([fcc852e2](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/fcc852e2)) +- feat(itk-wasm-cli): Update default Docker image for 20230116-fcc852e2 ([358f42bc](https://github.com/InsightSoftwareConsortium/itk-wasm/commit/358f42bc)) +- [...] \ No newline at end of file diff --git a/Documentation/docs/releases/index.md b/Documentation/docs/releases/index.md new file mode 100644 index 00000000000..75cc7b773ee --- /dev/null +++ b/Documentation/docs/releases/index.md @@ -0,0 +1,56 @@ +# ITK Releases + +```{toctree} +:maxdepth: 1 +:caption: 📝 ITK Release Notes + +5.4rc01.md + +5.3.md +5.3rc04.md +5.3rc03.md +5.3rc02.md +5.3rc01.md +5.2.md +5.1.md +5.0.md +5.0rc02.md +5.0rc01.md +5.0b03.md +5.0b02.md +5.0b01.md +5.0a02.md +5.0a01.md + +4.13.md +4.12.md +4.11.md +4.10.md +4.9.md +4.8.md +4.7.md +4.6.md +4.5.md +4.4.md +4.3.md +4.2.md +4.1.md +4.0.md + +3.20.md +3.18.md +3.16.md +3.14.md +3.12.md +3.2.md +3.0.md + +2.8.md +2.6.md +2.4.md +2.2.md +2.0.md + +1.8.md +1.0.md +``` diff --git a/Documentation/docs/requirements.txt b/Documentation/docs/requirements.txt new file mode 100644 index 00000000000..7172021c42d --- /dev/null +++ b/Documentation/docs/requirements.txt @@ -0,0 +1,6 @@ +furo +myst-parser +sphinx>=7.2.6 +sphinx-copybutton +sphinx-design +sphinxext-opengraph