In the past, Solano CI users were able to set language versions directly from the command-line using the solano gem. These versions would be saved (or read from our system default), to be used by the repository for future builds. Starting on June 15th 2015, users will only be able to set language versions using the
solano.yml configuration file; old-style saved language versions will be ignored.
Read more about setting language versions in the configuration file here.
For the vast majority of users, this change will not affect builds. As a part of our migration, we have already released this change to organizations that already define their correct language versions in their configuration file. If you don’t notice any warnings on your builds, and your Solano Configuration File pane looks like this you can stop reading here.
For organizations that don’t define language versions in their config file, or have out-of-date versions in the config file, we have provided an easy upgrade path. If there are version mismatches, they will be listed on your session report page along with the relevant lines you should add to your Solano configuration file. Expanding the Solano configuration file pane will reveal this section:
This pane may also contain other errors/warnings associated with your configuration file. Warnings are helpful messages that will aid you in fixing your configuration file, while errors will cause your build to fail if not corrected.
Once your builds are no longer showing the warnings you will be able to manually switch on this feature in your organization settings under “Feature Options”.
A link to the edit page is provided in the configuration file warning pane. Only organization administrators and owners will have access to change this feature option.
After enabling this feature option you should be able to run your builds normally and version mismatch errors will no longer be displayed. You’re now successfully migrated!
You also have the option to add a ‘language_versions’ flag in your configuration file that will enable reading versions from the configuration file. This option will only apply to branches where the configuration flag exists. The flag reads as follows and should be placed at the top-level of your configuration:
Why is this changing?
As a part of our efforts to improve the Solano configuration file and our ability to provide our users with helpful warnings and errors when debugging their configuration, we are consolidating the ability to set language versions to the configuration file. Along with this change we will now be able to provide helpful warning messages if an invalid language version is set. Having only one source for language versions also adds consistency to builds, and thats a win for everyone involved.
What if I don’t have a language version defined in my Solano configuration file?
If no language version is specified in the Solano configuration file, a default version will be assigned to your build. This is the current behavior and will not be changing. The current defaults are as follows:
- Ruby: ruby-1.9.3-p194
- Golang: 1.2.1
- Java: java-6-openjdk
- Node: 0.10.31
- PHP: 5.5.16
- Python: 2.7
- Scala: 2.11.0
- Leiningen: 2.4.2
Note that when the defaults change, your builds with no specified version will use the new defaults. In short, if you want to use a specific version, put it in your configuration file.
What language versions are supported by Solano CI?
Currently supported versions are listed under their specific version documentation here.
What happens on June 15th?
All organizations that haven’t turned on their feature key will receive a warning email a week before June 15th. On June 15th, we will automatically flip the feature key for all organizations.