Skip to main content

There and back again -- A software versioning story

· 14 min read
Philippe Ombredanne
AboutCode Lead Maintainer

One software version control to rule them (modern software development) all?

version

Software projects make many decisions, but one of the most critical is deciding how to implement version control (also known as revision control, source control, or source code management). With modern software development, a versioning convention is a key tool to manage software releases and revisions. The two main approaches are calendar versioning (CalVer) and semantic versioning (SemVer), often with some alterations depending on an organization’s or project’s requirements.

For AboutCode projects, we started with SemVer, transitioned to CalVer and then migrated back to a format that mostly resembles SemVer. This blog post details the pros and cons of each version convention, along with explaining why we embarked on this version convention journey.

License Clarity Scoring in ScanCode

· 5 min read
AboutCode team
Open source for open source

When automating SCA, License Clarity Scoring helps determine if scan results require more review.

license-clarity-2

When automating Software Composition Analysis (SCA) with a scanning tool, you need to quickly evaluate the results – especially to determine whether or not the results require a deeper investigation.

ScanCode now includes License Clarity Scoring to provide users with a confidence level regarding the automated scan results.

Using Copyleft-licensed software components in a Java application

· 7 min read
AboutCode team
Open source for open source

Key considerations while using Copyleft-licensed software components in a Java application.

java_copyleft_license

This document explains some key considerations for the use of Copyleft-licensed software components in a Java application in two contexts:

  • Execution of the Java code in a shared JVM.
  • Combining class files in a shared executable JAR – and by extension in a Combined JAR (e.g. uber-jar or fat jar).

For this document, “JAR” refers specifically to an executable Java library that is a collection of .class files packaged into a file with the .jar extension; it does not refer to the use of a .jar file as an archive file only (such as for packaging source files for a Java library).

The purpose of this document is to present a “conservative” interpretation of what linking, or interaction may mean in the Java context. It is not based on any particular product or application and we are not aware of any specific license compliance enforcement actions in this area.