# ParaView versioning change

**URL:** https://discourse.paraview.org/t/paraview-versioning-change/13291
**Category:** Development
**Created:** [November 20, 2023, 8:25pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291 "2023-11-20T20:25:50Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [November 20, 2023, 8:25pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/1 "2023-11-20T20:25:50Z")

</div>

Hi all,

ParaView is consistently reaching the maximum file path limits on its Windows packaging builds. In order to help reduce this, there’s an idea to migrate to date-based versioning on `master` rather than `git describe`-based versioning. Example

```auto
Before: ParaView-master-5.12.0-RC1-NNN-gXXXXXXXXXX
After : ParaView-5.12.YYYYMMDD

```

where `NNN` is the number of commits since the named tag and `XXXXXXXXXX` is a unique git hash prefix. The `YYYYMMDD` part is updated every day on ParaView `master` to the current day. As you can see, this should give us at least 19 characters of breathing room (~7.5%) for our longer paths again (it could be more as the `XXXXXXXXXX` length depends on the size of ParaView’s history; currently Git uses 10 characters).

Note that non-`master` builds will continue to use `git describe` as otherwise all builds would appear as `5.12.0-RC1` which is too confusing.

Downsides:

- Version number is ambiguous within a day. Not an issue with “I’m getting a nightly”, but could be confusing given MR and arbitrary `master` builds.
- `release` builds and MRs will continue to fail to build Windows `.msi` binaries until the tag arrives and removes the `-NNN-gXXXXXXXXXX` suffix to make filenames short enough

Upsides:

- Shorter version names.
- `master` builds can complete `.msi` builds and test.
- Deprecations on `release` versions can now fire on `master` as the deprecation macros can detect “5.12-relevant” from “will be 5.13” while keeping a monotonic property for versioning.

A [prior discussion](https://discourse.paraview.org/t/nightly-names-with-current-release-version-are-confusing/8742) was had, but nothing was actually done post-5.11 at the time.

Implemented here:

- ParaView: [https://gitlab.kitware.com/paraview/paraview/-/merge\_requests/6585](https://gitlab.kitware.com/paraview/paraview/-/merge_requests/6585)
- ParaView Superbuild: [https://gitlab.kitware.com/paraview/paraview-superbuild/-/merge\_requests/1137](https://gitlab.kitware.com/paraview/paraview-superbuild/-/merge_requests/1137)

Thanks,

–Ben

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [November 20, 2023, 8:26pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/2 "2023-11-20T20:26:57Z")

</div>

Participants in the prior discussion: @cory.quammen @wascott @mwestphal @Andrew_Maclean @todoooo @danlipsa @nicolas.vuaille

---

<div class="post-metadata">

### Author: ![todoooo](https://discourse.paraview.org/user_avatar/discourse.paraview.org/todoooo/32/2819_2.png) [@todoooo](https://discourse.paraview.org/u/todoooo)
#### Post date: [November 21, 2023, 12:01am UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/3 "2023-11-21T00:01:17Z")

</div>

If the Windows path names are getting too long isn’t using a symbolic link a possible solution?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [November 21, 2023, 2:55am UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/4 "2023-11-21T02:55:57Z")

</div>

Shorter CI paths would help, but we’d also (probably) have to reset our caches. Ideally we’d have WiX support long paths and not need to worry about it ever again. That comes with WiX 4, but [CPack doesn’t support it yet](https://gitlab.kitware.com/cmake/cmake/-/issues/23910).

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [November 21, 2023, 6:38am UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/5 "2023-11-21T06:38:15Z")

</div>

Just being able to do date based comparison of ParaView when using ParaView in a plugin or a ParaView-based application is enough to justify the switch.

Actual testing of deprecation is nice too.

---

<div class="post-metadata">

### Author: ![danlipsa](https://discourse.paraview.org/user_avatar/discourse.paraview.org/danlipsa/32/1563_2.png) [@danlipsa](https://discourse.paraview.org/u/danlipsa)
#### Post date: [November 21, 2023, 2:54pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/6 "2023-11-21T14:54:36Z")

</div>

Is there a way to include the SHA somewhere, even if its not used as a version? That will eliminate any confusion if we have to track the source for a certain binary.  
Maybe have  
ParaView-5.12.YYYYMMDD for files  
but also have  
ParaView-5.12.YYYYMMDD.gXXXXXXXXXX  
somewhere in the code. We don’t have to use the last part for version comparisons.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [November 21, 2023, 4:58pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/7 "2023-11-21T16:58:36Z")

</div>

Would the SHA-1 still be in the About dialog? That would be good enough IMO.

---

<div class="post-metadata">

### Author: ![wascott](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/w/8e8cbc/32.png) [@wascott](https://discourse.paraview.org/u/wascott)
#### Post date: [November 21, 2023, 6:51pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/8 "2023-11-21T18:51:57Z")

</div>

I’m OK with Ben’s suggestion. I think it gives plenty of resolution for reporting bugs to Kitware. Another idea would be to add the sha into the source code’s versions.txt file, but not use the sha for paths?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [November 21, 2023, 10:02pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/9 "2023-11-21T22:02:04Z")

</div>

I made an MR to make VTK have a smaller rebuild on its date-based patch changes:

[https://gitlab.kitware.com/vtk/vtk/-/merge\_requests/10715](https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10715)

We can do the same with ParaView where the “quick” header is enough for preprocessor (deprecation) purposes but we get the full version for specific instances where it is truly needed (such as the About dialog or title bar management).

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [December 6, 2023, 1:35am UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/10 "2023-12-06T01:35:18Z")

</div>

I’ve rebased and update the updated the date in the MR. I plan on merging it tomorrow if CI comes back green.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [December 7, 2023, 12:32pm UTC](https://discourse.paraview.org/t/paraview-versioning-change/13291/11 "2023-12-07T12:32:59Z")

</div>

This has been merged and the first nightlies with this versioning scheme have been uploaded.
