Versioning

Top 23 Versioning Open-Source Projects

  • nvm for Windows

    A node.js version management utility for Windows. Ironically written in Go.

  • Project mention: NVM – Node Version Management | dev.to | 2024-01-31

    I usually develop on Windows so I installed NVM for Windows from here, but if you’re on other OS I’m sure you can find a version that supports it, probably this is the answer.

  • standard-version

    :trophy: Automate versioning and CHANGELOG generation, with semver.org and conventionalcommits.org

  • Project mention: Streamline Your Workflow: Setting Up Git Hooks with Husky to Simplify Version Updates | dev.to | 2024-04-13

    Dive deeper into the world of Husky with the official documentation. Explore the capabilities of Standard Version through its comprehensive documentation. Unravel the mysteries of semantic-release with its detailed documentation. Discover the versatility of bumpp with its comprehensive documentation.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • keep-a-changelog

    If you build software, keep a changelog.

  • Project mention: Common Changelog | news.ycombinator.com | 2023-10-20

    A style guide for changelogs, adapted from and a stricter subset of [Keep a Changelog](https://keepachangelog.com/)

  • hatch

    Modern, extensible Python project management

  • Project mention: Uv: Python Packaging in Rust | news.ycombinator.com | 2024-02-15

    Exciting stuff! I view Hatch [1] as becoming the Cargo for Python because it's already close and has an existing (and growing) user base but I can definitely see depending on this for resolution and potentially not even using pip after it becomes more stable.

    [1]: https://hatch.pypa.io/latest/

  • aspnet-api-versioning

    Provides a set of libraries which add service API versioning to ASP.NET Web API, OData with ASP.NET Web API, and ASP.NET Core.

  • Project mention: Web API Versioning - 'apiVersion' constraint | /r/dotnetcore | 2023-06-28

    Here is a code example

  • GitVersion

    From git log to SemVer in no time

  • Project mention: Golang RESTAPI boilerplate repository | /r/golang | 2023-05-02

    Gitversion: It reads your commit history and generates a semver version out of it. Say you are compiling main branch and have a tag 1.0. Then, you squash 3 PRs. When you build this version, the new version number will be 1.0.3. You can configure it to be smarter about increasing major, minor, patch fields. I typically use prefix on the commit messages so that it generates versions correctly. See more at https://gitversion.net/docs/

  • terraboard

    :earth_africa: :clipboard: A web dashboard to inspect Terraform States

  • Project mention: Top 10 terraform tools you should know about. | dev.to | 2023-12-11

    Terraboard is a web-based dashboard designed for visualizing and querying Terraform states. It offers several key features: an overview page that lists the most recently updated state files along with their activities; a detailed state page showing versions and resource attributes of state files; a search interface for querying resources by type, name, or attributes; and a diff interface for comparing state versions. Terraboard supports various remote state backend providers, including AWS S3 for state management and DynamoDB for locking, S3-compatible backends like MinIO, Google Cloud Storage, Terraform Cloud (remote), and GitLab. This makes it a versatile tool for managing and understanding Terraform state files.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Gradle buildSrcVersions

    Life is too short to google for dependencies and versions

  • Project mention: Dependency Managers Don't Manage Your Dependencies (2021) | news.ycombinator.com | 2023-06-19

    Lately I've been using gradle with kotlin-js and a mix of npm and jvm dependencies. There's the https://splitties.github.io/refreshVersions/ plugin that I can recommend if you are using gradle (with or without kotlin-js).

    It manages plugin dependencies, library dependencies, and version dependencies. It can use the new gradle version catalog or not if you prefer. On first use, you migrate your versions and it extracts these to a versions.properties (or your version catalog). Then whenever you run refreshVersions it indicates available new versions in comments in this file. It also indicates unused dependencies. Though for npms this is a bit harder. All you need to do is manually use the versions you want.

    I run this frequently to stay on top of upstream changes. Few software engineers realize that the testing and integration overhead with version changes multiplies (just like with other forms of change). Libraries that you haven't updated amount to technical debt that you haven't addressed. So, the workload increases massively if you don't update for a while. Staying up to date minimizes the workload. This plugin makes that super easy.

    Given that we are using kotlin-js, we have to deal with a rapidly evolving library ecosystem so we do have occasional issues that we need to work around by either downgrading or fixing some code. Whenever I can't update something, I document it in my versions.properties with a comment. Often you just have to wait for the next release or so for things to straighten out. The price of using cutting edge software.

    Kotlin-js manages a yarn lock file as well. So it properly locks dependencies. Whenever you update npm dependencies, you have to run a command to upgrade the lock file. There's also a whole mess of webpack dependencies that comes along with kotlin-js.

  • Logidze

    Database changes log for Rails

  • Project mention: Versioning data in Postgres? Testing a Git like approach | news.ycombinator.com | 2023-10-20

    There's an interesting approach to it that works with Rails and PostgreSQL using triggers.

    https://github.com/palkan/logidze

  • niv

    Easy dependency management for Nix projects

  • sirix

    SirixDB is an an embeddable, bitemporal, append-only database system and event store, storing immutable lightweight snapshots. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach.

  • Project mention: Show HN: Integer Map Data Structure | news.ycombinator.com | 2024-01-24

    We're using a similar trie structure as the main document (node) index in SirixDB[1]. Lately, I got some inspiration for different page-sizes based on the ART and HAMT basically for the rightmost inner pages (as the node-IDs are generated by a simple sequence generator and thus also all inner pages (we call them IndirectPage) except for the rightmost are fully occupied (the tree height is adapted dynamically depending on the size of the stored data. Currently, always 1024 references are stored to indirect child pages, but I'll experiment with smaller sized, as the inner nodes are simply copied for each new revision, whereas the leaf pages storing the actual data are versioned themselfes with a novel sliding snapshot algorithm.

    You can simply compute from a unique nodeId each data is assigned (64bit) the page and reference to traverse on each level in the trie through some bit shifting.

    [1] https://github.com/sirixdb/sirix

  • shipjs

    Take control of what is going to be your next release.

  • DOCAT

    Host your docs. Simple. Versioned. Fancy.

  • semver

    Nx plugin to automate semantic versioning and CHANGELOG generation. (by jscutlery)

  • Project mention: Versioning and Releasing Packages in a Monorepo | dev.to | 2024-02-09

    Note, it is worth mentioning that the Nx community has also stepped up in the past and created jscutlery/semver, a package that adds semantic versioning and publishing to your Nx workspace. Make sure to check that out as well

  • nve

    Run any command on specific Node.js versions

  • Version Cake

    :cake: Version Cake is an unobtrusive way to version APIs in your Rails or Rack apps

  • react-native-version

    :1234: Version your React Native or Expo app in a `npm version` fashion.

  • poetry-dynamic-versioning

    Plugin for Poetry to enable dynamic versioning based on VCS tags

  • paper_trail

    Track and record all the changes in your database with Ecto. Revert back to anytime in history. (by izelnakri)

  • govvv

    "go build" wrapper to add version info to Golang applications

  • neptune-client

    📘 The MLOps stack component for experiment tracking

  • Project mention: Show HN: A gallery of dev tool marketing examples | news.ycombinator.com | 2023-10-07

    Hi I am Jakub. I run marketing at a dev tool startup https://neptune.ai/ and I share learnings on dev tool marketing on my blog https://www.developermarkepear.com/.

    Whenever I'd start a new marketing project I found myself going over a list of 20+ companies I knew could have done something well to “copy-paste” their approach as a baseline (think Tailscale, DigitalOCean, Vercel, Algolia, CircleCi, Supabase, Posthog, Auth0).

    So past year and a half, I’ve been screenshoting examples of how companies that are good at dev marketing do things like pricing, landing page design, ads, videos, blog conversion ideas. And for each example I added a note as to why I thought it was good.

    Now, it is ~140 examples organized by tags so you can browse all or get stuff for a particular topic.

    Hope it is helpful to some dev tool founders and marketers in here.

    wdyt?

    Also, I am always looking for new companies/marketing ideas to add to this, so if you’d like to share good examples I’d really appreciate it.

  • python-semver

    Python package to work with Semantic Versioning (https://semver.org/)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-04-13.

Versioning related posts

Index

What are some of the best open-source Versioning projects? This list will help you:

Project Stars
1 nvm for Windows 34,445
2 standard-version 7,541
3 keep-a-changelog 5,911
4 hatch 5,299
5 aspnet-api-versioning 2,979
6 GitVersion 2,739
7 terraboard 1,872
8 Gradle buildSrcVersions 1,620
9 nave 1,592
10 Logidze 1,555
11 niv 1,449
12 sirix 1,079
13 shipjs 764
14 DOCAT 730
15 semver 705
16 nve 690
17 Version Cake 654
18 react-native-version 566
19 poetry-dynamic-versioning 556
20 paper_trail 539
21 govvv 536
22 neptune-client 526
23 python-semver 441
Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com