Skip to content

Conversation

@hjmjohnson
Copy link
Member

Update for syncronizing with upstream teem project

git clone https://git.code.sf.net/p/teem/nrrdio/nrrdio.git NrrdIO
  • STYLE: Upstream clang-format changes applied
  • ENH: Update NrrdIO from upstream

PR Checklist

@github-actions github-actions bot added type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots area:ThirdParty Issues affecting the ThirdParty module labels Oct 3, 2025
@hjmjohnson hjmjohnson marked this pull request as draft October 3, 2025 20:59
@hjmjohnson hjmjohnson changed the title update nrrdio upstream WIP: Update NrrdIO upstream Oct 3, 2025
@dzenanz
Copy link
Member

dzenanz commented Oct 5, 2025

This seems to work?

@hjmjohnson
Copy link
Member Author

This seems to work?

Yes. I'm working with @kindlmann to move Teem and NrrdIO from SVN to git on SourceForge. What is included in this patch set is proposed testing for patch sets that are not yet included upstream in NrrdIO or Teem.

I was just waiting for the dust to settle in the upstream changes before finalizing this and linking it to the stable git hashes upstream.

@hjmjohnson hjmjohnson force-pushed the update-nrrdio-upstream branch from 9e28ab9 to 0b4972d Compare October 23, 2025 01:43
@github-actions github-actions bot added the type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct label Oct 23, 2025
@hjmjohnson hjmjohnson force-pushed the update-nrrdio-upstream branch 2 times, most recently from 18d0cf9 to f213542 Compare October 23, 2025 11:45
@blowekamp
Copy link
Member

Thank you for working on this.

When a new UpdateFromUpstream.sh process is added, as I recall the old code is usually deleted from the repo, then the directory is re-estabished with a sub-tree merge. So once the upstream work is completed, it does not need to be updated here before the new process is established.

@hjmjohnson
Copy link
Member Author

Thank you for working on this.

When a new UpdateFromUpstream.sh process is added, as I recall the old code is usually deleted from the repo, then the directory is re-estabished with a sub-tree merge. So once the upstream work is completed, it does not need to be updated here before the new process is established.

@blowekamp This may not work for NrrdIO. The central part of the NrrdIO git repo is a set of scripts that extract code from the teem source code base and replace the LGPL license with a BSD license, drop chunks of code that exist in teem, but are not needed for NrrdIO, and create the mangling headers. It is starter code for other projects to adapt from, but not necessarily useful on its own.

The set of scripts that extract data from teem does different things when the "itk" flag is passed in, and the "itk" variant of the extracted code has specializations for ITK that are not part of the central git repository. I'm working with Gordon to create a single codebase that is easier to maintain, but I'm not sure we will get there.

@blowekamp
Copy link
Member

I didn't see what occurs with running scripts with the itk variant in the repo:
https://sourceforge.net/p/teem/nrrdio/nrrdio.git/ci/main/tree/

But keep in mind the standard update script unarchived the git repo, and runs some scripts and command to clean up the code for the sub-tree commit. It sounds like the approach taken may still fit into the existing update framework. Here is an example of what happens for HDF5:

@kindlmann
Copy link
Contributor

I'm grateful for the continued work of @hjmjohnson on this, and I do believe "we will get there" as long as we keep communicating.

The new 0-gen.sh script in NrrdIO is a work-in-progress, but it's main goal is to (like Hans mentioned) do the necessary transformations of Teem source into a minimal set of NrrdIO sources. How much work it should do to anticipate ITK's subsequent use specifically, versus be configurable for any other application, is something I think we're still trying to determine. Anyone else interested is welcome to join the discussion at https://discord.gg/xBBqZGXkF7

@hjmjohnson hjmjohnson force-pushed the update-nrrdio-upstream branch from f213542 to e64a3eb Compare October 23, 2025 18:48
The .clang-format file from June 2022 teem/NrrdIO
project is applied here to minimize code differences
with upstream changes.

This patch set will allow the upstream changes to
be more easily visible when added in a subsequent
patch.
@hjmjohnson hjmjohnson force-pushed the update-nrrdio-upstream branch 2 times, most recently from bb3c3d1 to 8bbca14 Compare October 24, 2025 16:21
The NrrdIO repository recently moved to git

```
git clone https://git.code.sf.net/p/teem/nrrdio/nrrdio.git NrrdIO
```

These changes represent the head of NrrdIO as of 2025-10-22, with
synchronization between the ITK codebase and the NrrdIO codebase.
@hjmjohnson hjmjohnson force-pushed the update-nrrdio-upstream branch from 8bbca14 to 677ca0e Compare October 24, 2025 17:14
@hjmjohnson
Copy link
Member Author

FYI: This is still being pursued. Upstream teem modifications are ongoing, and more extensive than originally thought. This is all good, but is taking a bit longer than anticipated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ThirdParty Issues affecting the ThirdParty module type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants