Tech.Versionner History
Show minor edits - Show changes to markup
- you have a development version that is a baseline. It means that a development version does not need to be updated to load latest versions of your project packages.
- a release is a stable version and creates a version method. This way, all version methods of a configuration will be released versions of your software. In the future, Versionner will resolve all symbols for the version to have a reproductible loading. It also means that Versionner will prevent to release if one of your transitive dependencies is not specified as a fixed revision number. For these problems, semantic versionning may be a solution.
- there is one and only one development version for your project (anytime). This development version is used to made changes to your project configuration. The release action (used to generate a numbered versions) rely on this development version.
- the development version is a baseline. It means that a development version does not need to be updated to load latest versions of your project packages.
- a release is a stable version and creates a numbered version method. This way, all version methods of a configuration will be released versions of your software. Versionner allows you to solve symbolic versions of your dependencies (e.g. Foo #stable => Foo 1.3) at the release time. It enables reproductible loading of your project.
The release is done from the current development version. After the release, a new development version is automatically generated for you.
The release is done from the current development version.
You will be able to cherry pick changes and to commit them to their repositories.
You will be able to cherry pick changes and to commit them to their repositories.
Other actions
You also have some operations available from the contextual menu
- on the projects list

- on the versions list

To edit packages, use buttons on the top right corner of the list:
You can add / remove or edit packages. The edition of a selected package allows you to update its requirements:
To edit dependent projects, use buttons on the top right corner of the list:
When adding a dependent project, a first dialog asks you to select a configuration among those already loaded in the image.
Then, you can specify the repository to use for this project (select a repository already declared in the image, edit one or create a new one).
To edit groups, use buttons on the top right corner of the list:
- to add a new group or
- to remove a group.
Edit packages
Edit dependent projects
Edit groups
To add contents to a group, simply drag and drop items (packages, dependent projects) on it.
Edit packages


Edit dependent projects



Edit groups

To add contents to a group, simply drag and drop items (packages, dependent projects) on it.

To see detail on a project configuration, double-click on the project in the list, it will open a new window.

'Figure 1 : Versionner project list
To add contents to a group, simply drag and drop items on it.

'Figure 1 : Versionner project details
Here is a Versionner preview image you can play with.
You can display an existing configuration by double-clicking on it in the project list. It will open a new window.

'Figure 1 : Versionner project details
Edit packages
Edit dependent projects
Edit groups
To add contents to a group, simply drag and drop items (packages, dependent projects) on it.
Clicking on will save the selected version by updating the current development version.
You are in development mode, no need to bloat the configuration with useless versions. You want to keep a version? What you need is to create a release.
Clicking on will create a release for your project, i.e. a numbered version with fixed packages version, that will be usable by others.
The release is done from the current development version. After the release, a new development version is automatically generated for you.
Clicking on
Clicking on will open the Kommiter tool. Kommiter will display the list of changes ONLY for your project, i.e. your project configuration and your project packages (as described in the latest version). Other changes will not be displayed.
You will be able to cherry pick changes and to commit them to their repositories.
Save a configuration
Release a version
Commit the project
Clicking on
You will be first prompt the project name (without the ConfigurationOf prefix). Then, a window will pop-up showing an empty configuration. You can now update your configuration
You will be first prompt the project name (without the ConfigurationOf prefix). Then, a window will pop-up showing an empty configuration. You can now update your configuration.

Figure 2 : New project
WARNING
Click on the "New project" button. You will be first prompt the project name (without the ConfigurationOf prefix). Then, a window will pop-up showing an empty configuration. You can now update your configuration
Update a configuration
The first thing to do is to select the version you want to edit in the versions list. Note that only the #stable and #development versions are displayed by default (tick the browse all box to see all versions). You are now ready to edit the configuration.
WARNING: you will loose your changes if you do not save before unselecting the current version.
- add packages (internal packages of your project),
- add dependent project (other projects you depend on). You need that the dependent project configuration is already available in the image.
- add groups,
- specify the project repository (use the button),
WARNING
Open Versionner
You can find Versionner in the World menu / tools / Versionner. The first window you will see displays the list of configurations currently loaded into the image. From here, you can:
- browse configurations
- with Versionner: double-click on a list item,
- with the System Browser: select a list item and press cmd+B
- create a new configuration,
- load an existing configuration.
Create a new configuration
Here is a Versionner preview image you can play with.
Here is a Versionner preview image you can play with.
Here is a Versionner preview image you can play with.
Here is a Versionner preview image you can play with.
Here is a Versionner preview image you can play with.
Here is a Versionner preview image you can play with.

'Figure 1 : Versionner project list

'Figure 1 : Versionner project details
To see detail on a project configuration, double-click on the project in the list, it will open a new window.
To add contents to a group, simply drag and drop items on it.
- a release is a stable version and creates a version method. This way, all version methods of a configuration will be released versions of your software. In the future, Versionner will resolve all symbols for the version to have a reproductible loading. It also means that Versionner will prevent to release if one of your transitive dependencies is not specified as a fixed revision number. For these problems, semantic versionning may be a solution.
- a release is a stable version and creates a version method. This way, all version methods of a configuration will be released versions of your software. In the future, Versionner will resolve all symbols for the version to have a reproductible loading. It also means that Versionner will prevent to release if one of your transitive dependencies is not specified as a fixed revision number. For these problems, semantic versionning may be a solution.
Here is a Versionner preview image you can play with.
Versionner is a tool to manage project dependencies into http://www.pharo-project.org/home.
Versionner is a tool to manage software dependencies into Pharo.
Versionner can be seen as a GUI on top of Metacello to hide the complexity of ConfigurationOf objetcs.
Versionner makes some assumptions:
- you have a development version that is a baseline. It means that a development version does not need to be updated to load latest versions of your project packages.
- a release is a stable version and creates a version method. This way, all version methods of a configuration will be released versions of your software. In the future, Versionner will resolve all symbols for the version to have a reproductible loading. It also means that Versionner will prevent to release if one of your transitive dependencies is not specified as a fixed revision number. For these problems, semantic versionning may be a solution.
Versionner is a tool to manage project dependencies into http://www.pharo-project.org/home.