]> _ Git - alire.git/log
alire.git
5 years agoSwitch from devel- to stable- index branch (#566)
Alejandro R Mosteo [Fri, 9 Oct 2020 15:47:13 +0000 (17:47 +0200)]
Switch from devel- to stable- index branch (#566)

5 years agoreviewed for English grammar, spelling, etc. (#561)
Pat Rogers [Fri, 9 Oct 2020 07:44:22 +0000 (02:44 -0500)]
reviewed for English grammar, spelling, etc. (#561)

5 years agoSpelling fixes and README update (#559)
Alejandro R Mosteo [Thu, 8 Oct 2020 13:25:31 +0000 (15:25 +0200)]
Spelling fixes and README update (#559)

* Getting started: spelling fixes

* README: add beta info and build instructions

5 years agoUpdate getting-started with install from binary distribution (#558)
Fabien Chouteau [Tue, 6 Oct 2020 18:58:37 +0000 (20:58 +0200)]
Update getting-started with install from binary distribution (#558)

5 years agoUse GitHub API for basic checks/info during publishing (#554)
Alejandro R Mosteo [Tue, 6 Oct 2020 13:58:22 +0000 (15:58 +0200)]
Use GitHub API for basic checks/info during publishing (#554)

* Use GitHub API for basic checks/info during publish

* Code review fix

* Fix: new config values unavailable during same run

New config entries were stored on disk but not added to the memory map. As the
Config.Set subprogram isn't aware of the level of configuration being set,
there is no direct way to both store to disk and to memory; instead the
solution is that the configuration is reloaded every time. This is a bit of
overkill and a candidate for later optimization.

5 years agoFix `alr test` help info on default docker (#557)
Alejandro R Mosteo [Mon, 5 Oct 2020 18:37:35 +0000 (20:37 +0200)]
Fix `alr test` help info on default docker (#557)

5 years agoAlr.Platforms.Windows: download msys2 from GitHub releases (#556)
Fabien Chouteau [Mon, 5 Oct 2020 11:46:58 +0000 (13:46 +0200)]
Alr.Platforms.Windows: download msys2 from GitHub releases (#556)

* Alr.Platforms.Windows: download msys2 from GitHub releases

With the hope that GitHub servers are more reliable.

* Fix style

5 years agoCreate and upload assets to alr releases (#551)
Alejandro R Mosteo [Thu, 1 Oct 2020 17:26:48 +0000 (19:26 +0200)]
Create and upload assets to alr releases (#551)

* Upload artifacts as assets to releases

* Remove obsolete workflow attempt

5 years agoCreate binary artifact on Linux/macOS (#549)
Alejandro R Mosteo [Thu, 1 Oct 2020 10:08:34 +0000 (12:08 +0200)]
Create binary artifact on Linux/macOS (#549)

5 years agoGather user info during `alr init` for manifest creation (#548)
Alejandro R Mosteo [Tue, 29 Sep 2020 09:17:06 +0000 (11:17 +0200)]
Gather user info during `alr init` for manifest creation (#548)

* Init: fill defaults with user-provided info

* Code review fixes

5 years agoAdd default executable property in `alr init --bin` (#547)
Alejandro R Mosteo [Mon, 28 Sep 2020 11:29:50 +0000 (13:29 +0200)]
Add default executable property in `alr init --bin` (#547)

5 years agoAlire.Utils.User_Input: add function to query user's name, email and GitHub login...
Fabien Chouteau [Mon, 28 Sep 2020 11:29:28 +0000 (13:29 +0200)]
Alire.Utils.User_Input: add function to query user's name, email and GitHub login (#461)

* Alire.Utils.User_Input: add function to query user's name, email and github login

* Break circular elaboration issue

Since Config uses Utils.User_Input indirectly via Deplyers.System, a
possibility is to move new User_Input functions that need Config into a new
package.

Co-authored-by: Alejandro R. Mosteo <amosteo@unizar.es>
5 years agoRemove linux installer script (#546)
Alejandro R Mosteo [Fri, 25 Sep 2020 15:04:00 +0000 (17:04 +0200)]
Remove linux installer script (#546)

5 years agoAlr.Commands: new Edit command (#545)
Fabien Chouteau [Fri, 25 Sep 2020 15:03:36 +0000 (17:03 +0200)]
Alr.Commands: new Edit command (#545)

* Alr.Commands: new Edit command

For the moment it opens GNATstudio within the Alire context.

* Alr.Commands.Init: add Create_Missing_Dirs

So the build won't fail if -p is not used with gprbuild.

* Fix test description

* testsuite/tests/workflows/edit: fix test when GNATstudio not in PATH

5 years agoAlr.Commands.Init: add or append to .gitignore (#544)
Fabien Chouteau [Fri, 25 Sep 2020 14:11:24 +0000 (16:11 +0200)]
Alr.Commands.Init: add or append to .gitignore (#544)

5 years agoCreate tarball from Alire workspace (#529)
Alejandro R Mosteo [Fri, 25 Sep 2020 14:10:02 +0000 (16:10 +0200)]
Create tarball from Alire workspace (#529)

* Create tarball from alire workspace

* Tests for tarball creation

* Code review fixes

* Workaround for macOS BSD tar

* Document `alr publish --tar` changes.

* Fix tar regular expr and improve related test

It seems GNAT's Normalize_Arguments does its own escaping, so we do not need to
do it ourselves. Also, the test checks that indeed the `alire` folder is
excluded when tar'ing manually.

5 years agoAlire.Release: print crate name in loading error messages (#541)
Fabien Chouteau [Fri, 25 Sep 2020 07:28:11 +0000 (09:28 +0200)]
Alire.Release: print crate name in loading error messages (#541)

5 years agoBump ada-toml to v0.2 (#539)
Fabien Chouteau [Thu, 24 Sep 2020 10:04:18 +0000 (12:04 +0200)]
Bump ada-toml to v0.2 (#539)

This release includes various parser fixes.

5 years agoactions: rename post-compile into post-build and add pre-build (#537)
Fabien Chouteau [Wed, 23 Sep 2020 13:55:04 +0000 (15:55 +0200)]
actions: rename post-compile into post-build and add pre-build (#537)

5 years agoTool and library version number (#536)
Fabien Chouteau [Wed, 23 Sep 2020 09:59:05 +0000 (11:59 +0200)]
Tool and library version number (#536)

* Tool and library version number

* Bump version to 0.7.0

5 years agoFix bug in external detection from version (#535)
Alejandro R Mosteo [Mon, 21 Sep 2020 09:13:30 +0000 (11:13 +0200)]
Fix bug in external detection from version (#535)

We failed if the executable was not found, but this is expected and simply
means the external is not available.

5 years agoalr init usability tweaks (#533)
Fabien Chouteau [Fri, 18 Sep 2020 12:03:36 +0000 (14:03 +0200)]
alr init usability tweaks (#533)

* Alr.Commands.Init: usability tweaks

This change makes the alr init --in-place generate a project skeleton.

This is to support the workflow:
 - Create repo on GitHub
 - Clone repo
 - cd repo
 - alr init --bin --in-place my_project

 Which was impossible to do before.

* Alr.Commands.Init: remove superfluous code

* Alr.Commands.Init: --in-place doesn't imply --no-skel

5 years agoAlr.Commands: rename setenv into printenv (#534)
Fabien Chouteau [Fri, 18 Sep 2020 11:04:55 +0000 (13:04 +0200)]
Alr.Commands: rename setenv into printenv (#534)

The command is actually not setting the environment but printing it.

5 years agoTweaks for detection of git URLs (#530)
Alejandro R Mosteo [Tue, 15 Sep 2020 15:28:55 +0000 (17:28 +0200)]
Tweaks for detection of git URLs (#530)

* Transform private repo URL into public one

For fetching from github, it is safe to do this transformation, whereas users
working with the repo may find more convenient the use of private git@ URLs.

* Detect github URLs missing a trailing ".git"

* Testsuite: more cases for git remotes

* Allow controlling the git@ -> https:// transformation

* Generalize checks beyond github

* Unit test for Alire.VCSs.Git.Transform_To_Public

5 years agoalr init: add compiler option controls to template project (#523)
Fabien Chouteau [Mon, 14 Sep 2020 16:19:05 +0000 (18:19 +0200)]
alr init: add compiler option controls to template project (#523)

* alr init: add compiler option controls to template project

User can control compile checks, run-time checks, contracts, style
checks.

* Testsuite: fix Ada coding style in tests

* Alr.Commands.Init: use UNIX line ending on all generated source code

To pass default GNAT style checks.

* Update alr-commands-init.adb

Alr.Commands.Init: fix line ending by using file IO binary mode

* Alr.Commands.Init: rever line ending changes and just remove the check

Git is messing with line ending on Windows so trying to produce UNIX files is more difficult than planned.

Instead the DOS line terminator style check is disabled.

5 years agoPublish tweaks (#528)
Fabien Chouteau [Mon, 14 Sep 2020 16:10:47 +0000 (18:10 +0200)]
Publish tweaks (#528)

* Alire.Publish: use error message similar to the git messages

* Alire.Publish: Do not print repo path if using CWD

* Alire.VCSs.Git: change status detection

Untracked files are ignored like git does.

* Alr.Commands.Publish: remove --prepare switch

Since there is no other publish mode.

* testsuite/tests/publish/local-repo: update expected output

5 years agoMerge publishing assistant PRs into master (#527)
Alejandro R Mosteo [Mon, 14 Sep 2020 10:25:41 +0000 (12:25 +0200)]
Merge publishing assistant PRs into master (#527)

Merge publishing assistant PRs into master

5 years agoUpdated documentation for new `alr publish` (#524)
Alejandro R Mosteo [Mon, 14 Sep 2020 10:11:07 +0000 (12:11 +0200)]
Updated documentation for new `alr publish` (#524)

* Document the new `alr publish` workflow

* Review changes

5 years agoAdded `user-changes.md` log for new `publish` feat
Alejandro R. Mosteo [Mon, 14 Sep 2020 09:46:31 +0000 (11:46 +0200)]
Added `user-changes.md` log for new `publish` feat

And spellcheck fixes

5 years ago--skip-build switch to skip the publish build check (#526)
Alejandro R Mosteo [Sat, 12 Sep 2020 17:02:01 +0000 (19:02 +0200)]
--skip-build switch to skip the publish build check (#526)

5 years agoUse local repository as reference for publishing (#519)
Alejandro R Mosteo [Sat, 12 Sep 2020 12:21:40 +0000 (14:21 +0200)]
Use local repository as reference for publishing (#519)

* Publish using local repo and revision as reference

We still require the remote is ready (in essence, that the local repo is not
ahead of the remote), but now it is simply a matter of issuing `alr publish` or
`alr publish <commit|tag|branch>`, and the corresponding commit will be used.

* Refactor long function name to more sensible one

* Fix comments due to bad refactoring

* Test for publishing from inside a repo

* Fixes uncovered by testsuite

Adding defaults for <URL> <commit> complicates things somewhat as we use local
paths for testing that would otherwise be rejected, so a few corner cases have
to be explicitly considered now.

5 years agoTest build the publishing release (#517)
Alejandro R Mosteo [Sat, 12 Sep 2020 12:06:37 +0000 (14:06 +0200)]
Test build the publishing release (#517)

* Test build the release

* Test that failing build is reported

* Fix zipping helper in testsuite

The extra indirection level was not required, as os.walk already gives us the
proper paths we need. This wasn't detected until we tried to build an unzipped
release zipped by ourselves.

5 years agoShow release information for user review (#516)
Alejandro R Mosteo [Sat, 12 Sep 2020 11:59:12 +0000 (13:59 +0200)]
Show release information for user review (#516)

* Show release information for user review

We also point out any recommended optional properties that are not informed.
Checks on completeness are also performed.

* Test missing/optional properties during publish

Also refactor some bulky code in a test to reusable drivers.helpers.py

5 years agoAdd switch to print the list of trusted git sites (#525)
Alejandro R Mosteo [Sat, 12 Sep 2020 11:47:33 +0000 (13:47 +0200)]
Add switch to print the list of trusted git sites (#525)

* Add switch to print the list of trusted git sites

5 years agoInitial list of trusted code hosts (#514)
Alejandro R Mosteo [Sat, 12 Sep 2020 11:46:49 +0000 (13:46 +0200)]
Initial list of trusted code hosts (#514)

* Initial list of trusted code hosts

* Test that an unknown domain is rejected

* Fixes for testsuited-detected problems on Windows

5 years agoMinimal publishing assistant (#512)
Alejandro R Mosteo [Sat, 12 Sep 2020 11:29:46 +0000 (13:29 +0200)]
Minimal publishing assistant (#512)

* Suppress warnings on unused package at top level

* First complete minimal publishing workflow

Only for repositories, many checks still missing, like: whitelist, version
conflict, buildability...

* Also working with source archives

* Deprecate --hash, --commit

Instead, the commit is simply a second optional argument

* Give upload URL for the PR and place manifest in ...

...alire/releases

* Check if in workspace for proper file placement

and also discourage publishing a crate within an unrelated workspace.

* Disable --hash test

* Tests for publishing and fixes for detected errors

To test without resorting to actual remote sources, we use --force which allows
local (file:) URLs.

* Workaround for Windows temporary failed deletion

Something about a git repository makes Ada.Directories.Delete_Tree to fail (my
guess that this is git related).

5 years agoFix test that inadvertently fetched community (#520)
Alejandro R Mosteo [Fri, 11 Sep 2020 09:14:50 +0000 (11:14 +0200)]
Fix test that inadvertently fetched community (#520)

5 years agoEditorial change: correcting command-line option (--use) (#521)
Gustavo A. Hoffmann [Fri, 11 Sep 2020 09:14:05 +0000 (11:14 +0200)]
Editorial change: correcting command-line option (--use) (#521)

5 years agoFix compilation warnings with current versions of GNAT (#518)
Boris Yakobowski [Wed, 9 Sep 2020 11:01:46 +0000 (13:01 +0200)]
Fix compilation warnings with current versions of GNAT (#518)

5 years agoDim output of spawned subprocesses (#513)
Alejandro R Mosteo [Tue, 8 Sep 2020 16:05:55 +0000 (18:05 +0200)]
Dim output of spawned subprocesses (#513)

* Dim output of spawned subprocesses

* Code review

5 years agoAccept whole answers in interactice questions (#511)
Nicolai Ruckel [Mon, 7 Sep 2020 11:21:47 +0000 (13:21 +0200)]
Accept whole answers in interactice questions (#511)

Fixes #509

5 years agoFix title of user change (#507)
Fabien Chouteau [Thu, 3 Sep 2020 10:28:24 +0000 (12:28 +0200)]
Fix title of user change (#507)

5 years agoMerge AEP-2 related PRs (#505)
Alejandro R Mosteo [Wed, 2 Sep 2020 17:55:46 +0000 (19:55 +0200)]
Merge AEP-2 related PRs (#505)

Merge AEP-2-derived changes to manifests into master

5 years agoWarn of obsolete metadata and provide some guidance (#506)
Alejandro R Mosteo [Wed, 2 Sep 2020 16:56:56 +0000 (18:56 +0200)]
Warn of obsolete metadata and provide some guidance (#506)

* Warn the user if old manifest detected

Minimal information is shown to reset a workspace; for more details a wiki on
the project repo link is printed.

* Improve the formatting of outdated index

* Don't consider `config.toml` for detection

5 years agoAEP for developer/packager workflow supporting changes (#466)
Alejandro R Mosteo [Wed, 2 Sep 2020 08:16:34 +0000 (10:16 +0200)]
AEP for developer/packager workflow supporting changes (#466)

* Add Alire Enhancement Proposal skeleton

* First draft of proposal #2

* Update proposal to reflect discussions

Instead of having an extra file, we rely on a private part within the manifest.

* Final version reflecting the implemented changes

5 years agoBump index version to v0.4 (per-release manifests) (#503)
Alejandro R Mosteo [Tue, 1 Sep 2020 18:55:27 +0000 (20:55 +0200)]
Bump index version to v0.4 (per-release manifests) (#503)

5 years agoStore backed up files inside `alire` folder (#500)
Alejandro R Mosteo [Tue, 1 Sep 2020 18:29:45 +0000 (20:29 +0200)]
Store backed up files inside `alire` folder (#500)

Instead of creating the ".prev" backup files in place, we move them into the alire folder so they don't pollute the user workspace.

5 years agoAlire.Config: s/config/config.toml/ (#504)
Alejandro R Mosteo [Tue, 1 Sep 2020 17:34:48 +0000 (19:34 +0200)]
Alire.Config: s/config/config.toml/ (#504)

After fixing the manifest file name to `alire.toml`, there is no possible
confusion with other toml files in the same directory, so we can explicitly
give .toml extension to config files.

5 years agoMove out a possible upstream-provided manifest (#487)
Alejandro R Mosteo [Tue, 1 Sep 2020 16:54:08 +0000 (18:54 +0200)]
Move out a possible upstream-provided manifest (#487)

When doing `alr get` we want to use the index-provided manifest for
reproducibility. So, an eventual upstream manifest provided with the sources is
renamed with an extra ".upstream" coda.

5 years agoDocumentation updates to reflect new manifests (#501)
Alejandro R Mosteo [Tue, 1 Sep 2020 15:25:36 +0000 (17:25 +0200)]
Documentation updates to reflect new manifests (#501)

5 years ago Move manifest and lock files to top-level folder (#494)
Alejandro R Mosteo [Tue, 1 Sep 2020 09:43:00 +0000 (11:43 +0200)]
 Move manifest and lock files to top-level folder (#494)

* Move and rename manifest to top-level dir

The manifest was ./alire/crate_name.toml. Now it is ./alire.toml (always named
alire.toml)

* Move and rename lockfile to top-level

Now the lockfile is also side-by-side with the manifest at top-level. It also
is always named `alire.lock`

* Testsuite adaptation

5 years agoRemove fields from local manifest (#493)
Alejandro R Mosteo [Tue, 18 Aug 2020 15:48:54 +0000 (17:48 +0200)]
Remove fields from local manifest (#493)

* Merge Alire.Releases.TOML_IO into Alire.Releases

Now that Alire.Releases is no longer Preelaborable, there is no reason for the
separation.

* Do not emit/load `origin` for local manifests

This information is only relevant for index manifests, so better not to confuse
users with fields that shouldn't be there.

* Make optional some fields in local manifests

Fields related to packaging can be required at the time of `alr publish`,
whereas they're not important for users not intending to package (yet).

* Testsuite adjustments

* Setup function for tests with init'ed crates

* Testsuite: verify no `[origin]` in local manifests

5 years agoNew Alire.Roots.Optional type (#492)
Alejandro R Mosteo [Tue, 18 Aug 2020 09:00:41 +0000 (11:00 +0200)]
New Alire.Roots.Optional type (#492)

In most cases, the Root has to be valid so it can be used. This patch moves the
Is_Valid code smell to a separate child type (Alire.Roots.Optional.Root) that
can be used in the few cases where all the root states have to be treated
separately.

This obsoletes Alr.Bootstrap.Session_States too.

5 years agoSplit long errors in several lines (#491)
Alejandro R Mosteo [Fri, 14 Aug 2020 16:07:41 +0000 (18:07 +0200)]
Split long errors in several lines (#491)

* Pretty print long errors in several lines

This is done by using newline characters to insert a new error prefix. A couple
of new facilities to encourage splitting of long errors are defined:
Errors.Wrap and Errors.Set (Wrapping_Message, Wrapped_Exception)

* Rename Last_Chance_Handler to Alr.Last_Chance_...

To avoid possible conflicts with other libraries and follow the naming of
other packages.

* Fix testsuite output matches on new line breaks

* Code review fixes

5 years agoIgnore unknown fields in manifest with `--force` (#495)
Alejandro R Mosteo [Fri, 14 Aug 2020 15:54:37 +0000 (17:54 +0200)]
Ignore unknown fields in manifest with `--force` (#495)

* Use manifest source (local, index) for finer errors

* Generate `metadata-version` during release saving

* Script to prepend manifest metadata versions

Not really necessary since we don't expect index manifests to include such
metadata version. Still, it makes clear the change.

* Testsuite adjustments for extra error output

Since we now take advantage of the manifest provenance (index/local), some
error messages require tweaking.

* Review: remove `metadata-version` field

* Allow unknown metadata fields with --force

Usually new fields will correspond with new features. Ignoring these from an
old `alr` version might be good enough for some commands to still work.

* Test for ignoring unknown properties

5 years agoUse manifest provenance (local/index) for finer diagnostics (#485)
Alejandro R Mosteo [Fri, 14 Aug 2020 15:53:52 +0000 (17:53 +0200)]
Use manifest provenance (local/index) for finer diagnostics (#485)

* Use manifest source (local, index) for finer errors

* Generate `metadata-version` during release saving

* Script to prepend manifest metadata versions

Not really necessary since we don't expect index manifests to include such
metadata version. Still, it makes clear the change.

* Testsuite adjustments for extra error output

Since we now take advantage of the manifest provenance (index/local), some
error messages require tweaking.

* Review: remove `metadata-version` field

5 years agoIncrementally edit manifest on `alr with` (#484)
Alejandro R Mosteo [Fri, 7 Aug 2020 12:56:46 +0000 (14:56 +0200)]
Incrementally edit manifest on `alr with` (#484)

* Append new dependencies to the end of the manifest

* Conservative removal of dependencies in `alr with`

This action will also not touch lines that aren't involved in the deletion.
Only a simple dependency, and trivially empty [[depends-on]] array entries will
be removed. As an improvement over the previous situation, dynamic expressions
will not preclude using `alr with` for static dependencies, leaving the dynamic
ones untouched.

* Use lexicographical order for printing dependencies

This was happening before by chance in several tests. The `alr with` changes
have surfaced that the order on file is kept in tree; while this has no
secondary effects, for presentation to the user is better to be always
consistent. Solutions already use ordered sets, so for lists within conditional
trees we do the same (only for presentation).

* Testsuite minor output fix

* Tests for new removal of dependencies

5 years agoMove origin information to its own top-level table (#480)
Alejandro R Mosteo [Fri, 7 Aug 2020 12:44:46 +0000 (14:44 +0200)]
Move origin information to its own top-level table (#480)

* Script to patch manifest with separate origin table

A self-contained origin table is cleaner and allow each origin kind to have its
own fields without polluting the rest of the properties top-level table

* Alire:Index: bump expected index version

* Load/Save new [origin] table

* Testsuite: migrated indexes to new [origin] format

* Fixes detected by testsuite

5 years agoLoad new per-release index manifests (#479)
Alejandro R Mosteo [Fri, 7 Aug 2020 12:32:42 +0000 (14:32 +0200)]
Load new per-release index manifests (#479)

* Migrate testsuite indexes to new split manifests

* Alire.Index: update community version

* Refactor Alr.OS_Lib.Traverse_Folder into Alire

As Alire.Directories.Traverse_Tree

* Alire.TOML_Index: traverse new folder structure

Also adapt the checks to the new structure, and double-check that the file name
matches the manifest contents (name, version).

* Refactor Crate internals for new flat manifests

Since now each release is truly independent, crates need not to store the
common information as previously. This is done now only for external
definitions in a narrower scope.

Several loading functions can also be streamlined since now it's simpler to get
a proper complete release without requiring its enclosing crate.

The bulk of the refactoring emanates from merging Alire.Crates.With_Releases
into simply Alire.Crates, and repurposing the Alire.Crates.Sections enum.

* Use new [[depends-on]] dependencies

Nothing outwards has changed yet; the manifest is still entirely machine
generated. This commit only changes the table [depends-on] into an array of
[[depends-on]] tables.

* Testsuite fixes for new format

Fixes in code detected by the testsuite, and small changes in output due to
code refactorings.

* New tests for index structure

* Review cleanup

Assorted minor refactors

* Code review: restore lost comments in testsuite

5 years agoScript to migrate indexes to per-release files (#478)
Alejandro R Mosteo [Fri, 7 Aug 2020 12:17:44 +0000 (14:17 +0200)]
Script to migrate indexes to per-release files (#478)

* Ignore JetBrains IDE config folders and virtualenvs

* s/libhello/li (index subfolder improper name)

* Fix invalid semantic version in some test crates

s/_/-/, turns out only hyphens are allowed in the pre-release portion.

* Script to split crate files into releases

It applies the foreseeable needed transformations: one release per file, one
file for external definitions; dependencies moved to an array; added name and
version keys.

Fix relative paths during migration

5 years agoUse GNAT Community 2020 in CI scripts (#498)
Fabien Chouteau [Mon, 31 Aug 2020 08:58:55 +0000 (10:58 +0200)]
Use GNAT Community 2020 in CI scripts (#498)

5 years agoWindows installer for alr (#481)
Fabien Chouteau [Thu, 30 Jul 2020 11:17:00 +0000 (04:17 -0700)]
Windows installer for alr (#481)

* Windows installer scripts for alr

* Update scripts/installer/auto-install.js

* Update ci-windows.yml

5 years agoAdd and use Alire.Lockfiles.Contents type (#477)
Alejandro R Mosteo [Wed, 22 Jul 2020 08:45:23 +0000 (09:45 +0100)]
Add and use Alire.Lockfiles.Contents type (#477)

This type allows future generalization of what is stored in the lock file,
where currently it could only store a Solution which was at top level.

5 years agoAlire.Origins: check length of git and hg commit id (#476)
Fabien Chouteau [Fri, 17 Jul 2020 17:13:42 +0000 (19:13 +0200)]
Alire.Origins: check length of git and hg commit id (#476)

And raise a meaningful exception instead of Constraint_Error.

5 years agoUpdate automatically after manual manifest edition or missing dependency detection...
Alejandro R Mosteo [Thu, 16 Jul 2020 08:47:19 +0000 (09:47 +0100)]
Update automatically after manual manifest edition or missing dependency detection (#472)

* Remove redundant parameter in Alire.Workspace

Environment can now be retrieved from Alire.Roots.Root.

* New Alire.Roots.Sync_Solution_And_Deps

This procedure verifies that the lockfile is not older than the manifest, and
that all dependencies in the solution exist on disk. Otherwise, dependencies
are redeployed.

* Refactor/cleanup paths from Alire.Paths

The dependency path is always used in the context of an Alire.Roots.Root, so it
is more meaningful being defined there.

Also removed the cache path that wasn't used anywhere.

* Checks against reexporting the same environment

* Refactor Alr.Commands.Requires_Full_Index into Alire

This way, the index loading can be triggered by logic in Alire that absolutely
requires the index to be loaded.

* Do not auto update before `alr update`

* Refactor Confirm_Solution_Changes into Alire

From Alr.Commands.User_Input into Alire.Utils.User_Input.

* Tests for the new sync features

- Test that a manually modified manifest results in an autosync
- Test that missing dependencies in the cache are redeployed

* Fix elaboration circularity

5 years agoAlire.VCSS.Git: always clone recursively (#471)
Fabien Chouteau [Mon, 13 Jul 2020 16:04:33 +0000 (18:04 +0200)]
Alire.VCSS.Git: always clone recursively (#471)

Git submodules are often mandatory parts of a repository.

5 years agoAlr.Commands.Init: add library type handling in generated project (#470)
Fabien Chouteau [Mon, 13 Jul 2020 15:58:35 +0000 (17:58 +0200)]
Alr.Commands.Init: add library type handling in generated project (#470)

type Library_Type_Type is ("relocatable", "static", "static-pic");
   Library_Type : Library_Type_Type :=
     external ("XXX_LIBRARY_TYPE",
               external ("LIBRARY_TYPE", "static"));
   for Library_Kind use Library_Type;

5 years agoNew `alr with --versions` for version-related info of dependencies (#464)
Alejandro R Mosteo [Wed, 8 Jul 2020 13:35:11 +0000 (15:35 +0200)]
New `alr with --versions` for version-related info of dependencies (#464)

* New `alr with --versions` for version-related info

This new version focuses on showing: which constraints were found for each
dependency, which version was used to fulfill them, and what's the latest
existing version for a crate (hence pointing to possible wanted updates).

* Review fixes

5 years agodoc/catalog-format-spec.md: update environment section (#467)
Fabien Chouteau [Wed, 8 Jul 2020 10:04:34 +0000 (12:04 +0200)]
doc/catalog-format-spec.md: update environment section (#467)

To match the actual features and variable names.

5 years agoMove ASCII graph to `--graph` switch, and add a `--tree` alternative & fallback ...
Alejandro R Mosteo [Mon, 6 Jul 2020 17:38:06 +0000 (19:38 +0200)]
Move ASCII graph to `--graph` switch, and add a `--tree` alternative & fallback (#465)

* New `alr with --tree`, `alr show --tree` switch

Prints dependency graph in tree form, as an alternative to the ascii-art plots
that 1) not always will be available, depending in libgraph-easy-perl and 2)
quickly become big and broken.

* Move ASCII graph to dedicated --graph switch

Previously, it was always attempted to be shown with `--solve`, which could be
an unnecessary pollution for an otherwise useful command.

* Update user-changes document

5 years agoA couple of improvements on the handling of project files and paths (#463)
Fabien Chouteau [Mon, 6 Jul 2020 13:41:13 +0000 (15:41 +0200)]
A couple of improvements on the handling of project files and paths (#463)

* Alire.Releases: fix basename in Project_Files()

* Alire.Releases.Project_Paths: Add empty path for gpr in the root dir of a crate

* Alire.{Root|Release}: remove trailing path separator in Roots.Project_Paths

Doing it here means that case "base_dir/<empty_path>" is also handled.
i.e. return "base_dir" instead of "base_dir/"

* Alire.Roots: Do not always add root dir of crates in Project_Paths

The root dir will be included when necessary, i.e. when there is a project file.

* testsuite/drivers/asserts.py: revert repr() on output compare

It was useful to detect \r\n vs \n but make the test failure very
difficult to analyze otherwise.

* GPR_PROJECT_PATH tests: fix Windows vs UNIX paths

* tests/auto-gpr-with/gpr_in_subdir: improve test explanation

* Alire.Roots: expect UNIX dir separators from crates

5 years agoSet up environment before post-fetch actions (#456)
Alejandro R Mosteo [Mon, 6 Jul 2020 08:58:50 +0000 (10:58 +0200)]
Set up environment before post-fetch actions (#456)

* Alire.Environment: take release paths from a Root

The path lookup has three levels:
1. For the root release, the own root folder
2. For a regular release, the dependencies folder "/" release unique folder
3. For a pinned softlink, the absolute path of the softlink

The root contains the solution which in turn contains the softlinks, so the
query for the path can be directly made to the root.

* Set up build env before deploying dependencies

* Tests for softlink nested path and env export

* Review fixes

* Alire.Environment.Load: Remove unused parameter

This flies by CE but is detected by FSF (?)

* Alire.Roots: move expression functions to body

There's some bug manifesting when a lot of code is in the spec in which the
linker complaints about missing references.

* Spelling fixes

* Updated new tests index versions

* Rename dir_separator/path_separator to match GNAT...

... in the Python testsuite

* Remove trailing '/' separator in extra prj paths

This is to match the output of full path normalization by Ada.Directories.

5 years agoAlire.Environment: new handling of env variables (#452)
Fabien Chouteau [Mon, 6 Jul 2020 08:38:01 +0000 (10:38 +0200)]
Alire.Environment: new handling of env variables (#452)

* Alire.Environment: implement new handling of env variables

Including using the variables defined in the crate.

* Alire.Environment: implement string format for env vars in releases

For instance replacing "${DISTIB_ROOT}" by "/".

* Alire.Platform: implement msys2 root detection

* Alire.Environment: remove already defined function

Already in alire.ads

5 years agoRework Solutions.Diffs internals to use States (#457)
Alejandro R Mosteo [Thu, 2 Jul 2020 16:45:46 +0000 (18:45 +0200)]
Rework Solutions.Diffs internals to use States (#457)

* Rework Solutions.Diffs internals to use States

Now that the Solution type stores all relevant information via
Dependencies.States, making the diffs directly from the solution is both
simpler, more maintainable and more accurate.

* Fix unified user pin naming (target --> pin)

* Review fixes

5 years agoimplementation of an automatic gpr file with (#458)
Fabien Chouteau [Thu, 2 Jul 2020 14:10:08 +0000 (16:10 +0200)]
implementation of an automatic gpr file with (#458)

* First prototype implementation of an automatic gpr file with

* Add user query and config option for Auto-gpr-with

* Introduce Boolean properties

* Alire.Properties.Labeled: check TOML_Kind for labels

* auto-gpr-with: add crate entry to disable auto-gpr-with feature

* testsuite: allow custom indexes to reference fixtures/crates/

This removes duplication of several sources and archives.

* Bump index version to 0.3 for auto-gpr-with feature

* auto-gpr-with: do not add default project file for extern crates

* Bump alire-index in CI scripts

* tests/workflows/auto-gpr-with: rename test crate to avoid conflicts with scripts

* Review fixes

* tests/get/external-tool-dependency: make the test more robust

On Windows when using msys2, the make seen by alr can be different than
the one seen from the testsuite scripts. The means that the current way
to identify make's version will fail in some cases.

This patch introduces a different way to workaround the different
version numbers of make.

5 years agoci-github.sh: add -E testsuite option to see error messages (#459)
Fabien Chouteau [Thu, 2 Jul 2020 11:29:49 +0000 (13:29 +0200)]
ci-github.sh: add -E testsuite option to see error messages (#459)

* ci-github.sh: add -E testsuite option to see error messages

* testsuite/asserts.py: display escape sequence in expected vs actuall output

5 years agoTestsuite: canonicalize line endings in "alr" outputs (#460)
Pierre-Marie de Rodat [Wed, 1 Jul 2020 12:56:51 +0000 (14:56 +0200)]
Testsuite: canonicalize line endings in "alr" outputs (#460)

A recent e3-core update changed the behavior of e3.os.process.Run's
behavior regarding line endings, which are now left unchanged. This
creates discrepancies in process outputs depending on the platform.

5 years agoShow linked paths and per-release dependencies (#453)
Alejandro R Mosteo [Wed, 24 Jun 2020 21:08:17 +0000 (23:08 +0200)]
Show linked paths and per-release dependencies (#453)

In the graph section of the solution printout, the concrete dependency for each
release that brings in another release is now shown. This may help in
understanding why a release is chosen, particularly when there are different
restrictions on a same crate introduced by different releases.

For the new linked folders with alire metadata, the source folder is shown in
the releases section. Otherwise, such source folders are listed in the
externals section without a concrete release (as we cannot determine a version
for them).

A new test shows this feature and also shows that the solver is able to
downgrade a dependency whenever this is needed to obtain a complete solution.

5 years agoRefactor variations of fulfilment to fulfillment (#454)
Alejandro R Mosteo [Tue, 23 Jun 2020 18:32:50 +0000 (20:32 +0200)]
Refactor variations of fulfilment to fulfillment (#454)

The spellchecker complained about some declarations but missed another bunch.
Better have the same spelling everywhere.

5 years agoDetect and use Alire metadata found in pinned directory (#450)
Alejandro R Mosteo [Fri, 19 Jun 2020 19:09:09 +0000 (21:09 +0200)]
Detect and use Alire metadata found in pinned directory (#450)

* Detect crate at linked dir and use its deps/paths

If a path given to with/pin --use contains a loadable alire workspace (i.e.,
for a crate manually initialized, or retrieved with `get`), the release found
there will be used to retrieve additional dependencies, and its project paths
will also be used.

* `with` directory with autodetection of crate

When adding a dependency as a pinned dir, and the target dir is a regular Alire
crate, we can autodetect the crate we are adding as dependency. In that case
the command becomes `alr with --use <path>`. This can also be useful in the
future for remote URLs that will also provide the crate being retrieved.

* Refactor --url to --use

5 years agoFix: Load index prior to pinning to folder (#449)
Alejandro R Mosteo [Fri, 19 Jun 2020 18:23:57 +0000 (20:23 +0200)]
Fix: Load index prior to pinning to folder (#449)

While this has no implications for the crate being pinned, any regularly solved
crates will be missing afterwards unless the index is loaded pre-pinning.

5 years agoAllow incomplete solutions in relevant commands (#451)
Alejandro R Mosteo [Fri, 19 Jun 2020 17:53:44 +0000 (19:53 +0200)]
Allow incomplete solutions in relevant commands (#451)

* Allow get with missing deps (with confirmation)

Up to now, trying to retrieve a release with non-solvable dependencies resulted
in an opaque "can't get a solution", leaving the only resort of doing an `alr
get --only`. With this patch, the best partial solution found is used and
displayed. The user can accept a partial deployment, understanding that the
build will fail unless missing dependencies are manually provided.

It would be relatively easy to allow the user to reject the proposal and
continue seeing other incomplete solutions (as, e.g., `aptitude` does) until
one of them is selected.

* Allow pinning to unavailable versions

The user may want for some reason to specify versions that are not in the
index, for work-in-progress releases or when switching between several indexes.
Instead of blocking him entirely, the incomplete solution is displayed and he
can accept it regardless. Forcing is required when not interactive.

* Allow update to complete with incomplete solution

When the solution is already incomplete we emit a warning to remind the user
about this, but we need not to err, since there are no changes to the solution,
or we might find a less incomplete one.

Also added a test for the behavior when trying to update a pinned version

* Allow withing dependencies with incomplete solution

This is the last of the commands that previously erred out with "Cannot solve
dependencies". Now, it can be forced into accepting any dependency as long as
the user is OK with having an incomplete solution.

* Remove deprecated Alire.Solutions.Valid

Instead, .Is_Complete or .Composition should be used for better granularity.
Is_Complete is more stringent than before (hints make the solution incomplete),
but the new flexibility to work with incomplete solutions makes the difference
secondary; the user is less restricted than before.

* Minor fixes to tests for Is_Complete change

By making solutions with any external (including hints) incomplete, it is
necessary to force a few commands in the tests that before succeeded normally.

Some tests that checked for exact text were now failing due to the extra
information/interaction caused by incomplete solutions.

The stderr warning on incomplete solutions in setenv also requires fixing its
output.

* Document user-visible changes

5 years agoFix a bug in the dependency checkout logic (#440)
Alejandro R Mosteo [Fri, 19 Jun 2020 17:12:46 +0000 (19:12 +0200)]
Fix a bug in the dependency checkout logic (#440)

This bug would manifest when a regular release other than the root one in the
solution depends on a linked dependency. With the proposed change we should be
covered for any future dependency kind that is not fulfilled by a regular release.

5 years agoAbility to use a local folder to fulfill a dependency (#439)
Alejandro R Mosteo [Fri, 19 Jun 2020 17:01:46 +0000 (19:01 +0200)]
Ability to use a local folder to fulfill a dependency (#439)

* New Alire.Externals.Softlink to support WIP crates

* Implement alr with --url to add/pin in one step

A dependency can now be added simultaneously with a target directory that
fulfils it. Minimal check of the folder existing is performed; the buildability
of the whole is now the responsibility of the user.

* Implement softlinks in Alr.Dependencies.States

The placeholder `linked` fulfilment is now properly implemented to
hold/load/save the information about a directory to be used to fulfill a
dependency.

* Implement softlinks in Alire.Solutions.Solution

Add a Alire.Solutions.Linking subprogram that includes a linked dependency into
a solution.

* Modify solver to use soflinks for dependencies

When a softlink for the dependency being solved exists in the starting
solution, that dependency can be considered fulfilled without further ado.

* Implement `alr pin --url` to pin existing dep

This is the delayed counterpart to `alr with --url`; i.e., users can add the
dependency normally with `alr with` and later decide to pin it to a folder with
`alr pin`, without needing to remove it completely first with `alr with --del`.

We present pinning to versions and to folders to users under the same idea of
pinning. Internally, alr distinguishes between pinning (to versions) and
linking (to URLs). Currently only local paths can be used for links, but in the
future we may add remote files to fetch or repositories to clone.

* New Alire.URI to centralize URL knowledge

* Include pinned dirs' paths in project paths

The logic of collecting all necessary paths has been moved from Alr.Build_Env
to Alire.Roots.Project_Paths. A Root was already necessary to collect the
paths, and furthermore the root has all the necessary information: the root
release and the complete solution, which includes releases and linked dirs.

To make Roots self-contained, the platform properties are copied during startup
to Alire.Root. This is a temporary measure until these properties are
refactored from Alr into Alire.

* New tests for within/pinning to folders

* Testsuite fixes for minor changes in output

Information shown for external (lacking a release) dependencies is more
comprehensive now, showing transitivity, pin information, hinting status.

* Crate log of user-visible changes

* Spelling fixes

* Review: rename --url to --use

5 years agoRefactor checkout/update logic into Alire (#437)
Alejandro R Mosteo [Thu, 18 Jun 2020 17:13:57 +0000 (19:13 +0200)]
Refactor checkout/update logic into Alire (#437)

The subprograms in Alr.Checkout, which disappears, are refactored into
Alire.Workspace. This will enable better logic for retrieval/updates, without
the need to internally reroute to Alr.Commands.Update, which causes some
unrelated side-effects (like re-resolving even when unnecessary).

Minor change: now all crates leave a trace in the form of their dependency
folder within the cache, even if this folder is empty for dependencies whose
deployment does not require such a folder. This is more homogeneous and might
be useful in the future to store status about dependency deployment
completeness right there.

A couple tests are fixed to account for minor output changes and a change in
behavior between Python 2 and 3 (not sure why it not arose initially).

5 years agoAlire.Config: change name of configuration files (#448)
Fabien Chouteau [Mon, 15 Jun 2020 18:18:54 +0000 (20:18 +0200)]
Alire.Config: change name of configuration files (#448)

#446

5 years agoAlire.Config: add support of built-in options (#446)
Fabien Chouteau [Mon, 15 Jun 2020 10:27:43 +0000 (12:27 +0200)]
Alire.Config: add support of built-in options (#446)

* Alire.Config: add support of built-in options

Built-in options have a type that is checked when setting or loading a configuration file.
They also have a short help text to explain their meaning and usage.

* Create configuration.md

* Typos and minor fixes

* doc/configuration.md: typo

5 years agoDefault to no ANSI, ASCII-only output (#444)
Alejandro R Mosteo [Fri, 12 Jun 2020 13:27:15 +0000 (15:27 +0200)]
Default to no ANSI, ASCII-only output (#444)

* Default to no color/no tty until detected

* Default to ASCII-only output unless color enabled

5 years agoRemove some unnecessary code after Solution changes (#431)
Alejandro R Mosteo [Fri, 12 Jun 2020 13:24:26 +0000 (15:24 +0200)]
Remove some unnecessary code after Solution changes (#431)

The solution stores platform-dependent releases, hence the Environment
parameter is not needed at the moment of writing the corresponding lockfile.

A stray exception handler in Alr.Commands.Withing was unneeded and masking as a
regular error some Constraint_Errors that should escalate to the main handler
to be reported as unexpected internal errors.

Dead code in Alire.Utils that is not going to be useful again has been removed.

5 years agoTest templates to help with creating new tests (#434)
Alejandro R Mosteo [Fri, 12 Jun 2020 13:22:57 +0000 (15:22 +0200)]
Test templates to help with creating new tests (#434)

5 years agoSafeguards for changes in lockfile/crate format (#436)
Alejandro R Mosteo [Thu, 11 Jun 2020 11:34:57 +0000 (13:34 +0200)]
Safeguards for changes in lockfile/crate format (#436)

If the lockfile is not loadable we presume it is in an old format. In this case
we recreate it from scratch, which entails the loss of any stored pins.  If the
alire/crate.toml file is not loadable we advice the user to recreate the
workspace from scratch.

Note that both crate.toml and crate.lock use the index format to store
releases. Hence, any change in index format may impact these files. While the
lockfile is not that problematic, for the crate.toml file we have no easy
workaround since we cannot know to which crate the workspace belongs.

There are possible mitigations but as long as we don't have stable releases the
complexity/benefit ratio is unclear. If we eventually make the crate.toml file
only manually editable that could also impact how to deal with this issue, so
not doing anything about it yet.

5 years agoInternal enhancements to Solution and Dependency states (#429)
Alejandro R Mosteo [Thu, 11 Jun 2020 11:33:39 +0000 (13:33 +0200)]
Internal enhancements to Solution and Dependency states (#429)

* Remove obsolete Alire.Dependencies.Unavailable

This fake dependency was used in the old Ada index to store an unavailable
dependency. There is no longer any use for this constant.

* Image functions for newly tagged Alire.Milestones

Make the type tagged to gain dot notation, and add [TTY_]Image subprograms for
simpler printing elsewhere.

* New Alire.Dependencies.States type

This type is used to store the actual way in which a dependency was solved. All
possibilities are stored, which allows to properly cache a solution, and detect
changes in solutions across operations that modify the solution: pinning,
withing, updating...

* New Alire.Dependencies.States.Maps

A crate name -> dep state mapping which is at the core of the cached Solution,
with a couple of functional-style modifiers for use in expression functions.

* Remove pinning info from Releases

This information is now stored in the dependency State where it better belongs.
This way it doesn't matter if the solution contains a release for the pinned
dependency; the pinning information is always preserved.

* Reworked Solution internals to use States

(Doesn't build.) Changes to Alire.Solutions to use the new dependency states.
With these changes there is no loss of information when going from a valid to
an invalid solution (information about partial solutions is stored the same as
for complete solutions), which enables down the road better feedback to users
and simpler implementation of other improvements, like pinning of crates to
local folders.

* Solver improvements based on new dependency states

(Only alire-solver.adb builds.) With these changes, the solver needs not to
check the complete validity of a solution once all dependencies are processed
(which is an expensive test), because validity is guaranteed for any partial
solution (that is, no incompatible release can make into the solution). Also,
while the solver was previously complete in regard to valid solutions (with
releases or hints), now it is also complete for invalid solutions (those
missing releases and hints for some dependency). This means that the solver
will return the "best" incomplete solution when a complete one cannot be found.

* Tweaks to achieve build with new Solution

A few minor changes due to changes in the Solution public methods are needed
here and there, without functional implications.

* Tweaks for testsuite compliance

A few changes are needed to ensure the same output as before is produced, or to
adapt a few tests to minimal output changes caused by the homogenization of
dependency images.

* Make Alire.Crate_Name a proper private type

Our Dynamic_Predicate in the publicly defined Crate_Name as new String is
rejected by GNAT 9, and I couldn't find a workaround short of making all of
Alire.* non-preelaborable. Defining privately Crate_Name as new String in turn
caused numerous errors in child packages due to some mixing between the public
and private views. In the end, making it a record was the simplest change
without introducing the risk of missing checks (as if we had made it simply a
subtype of String).

So, given the change, I bit the bullet to make it tagged and provide a couple
of convenience functions.

* Review fixes

5 years agoAlr.Platforms.Windows: use Alire.config in msys2 install (#443)
Fabien Chouteau [Thu, 11 Jun 2020 11:25:33 +0000 (13:25 +0200)]
Alr.Platforms.Windows: use Alire.config in msys2 install (#443)

* Alr.Platforms.Windows: use Alire.config in msys2 install

* Update msys2 install script URL

Now that the master version is updated with install dir feature.

* Alire.Config.Edit: create directory for the config file in case it doesn't exists

* Alire.Config.Edit: improve TOML value evaluation

If first the value cannot be parsed, we directly create a TOML_String value instead of trying to parse it again between quotes.

* Alr.Platforms.Windows: remove unecessary call to YAML_Stringify

5 years agoMove the Alr.Main exception handler to a last chance handler (#442)
Fabien Chouteau [Wed, 10 Jun 2020 15:25:07 +0000 (17:25 +0200)]
Move the Alr.Main exception handler to a last chance handler (#442)

* Move the Alr.Main exception handler to a last chance handler

This way the exceptions raised during elaboration will also be caught.

#441

* Alr.Main: restore an exception handler to catch after elaboration

Relying only on the __gnat_last_chance_handler means that an extra backtrace
is printed by the GNAT run-time (with Notify_Unhandled_Exception).

5 years agoAdd a -f, --force global switch (#435)
Alejandro R Mosteo [Mon, 8 Jun 2020 15:32:15 +0000 (17:32 +0200)]
Add a -f, --force global switch (#435)

This global modifier is available in Alire.Force. Other candidate locations,
like Alire.Config, Alire.Errors, Alire.Utils.User_Input cannot be used because
they bring in non-preelaborable units and it snowballs from there.

The recommended usage is through Alire.Recoverable_Error, which will warn or
raise appropriately depending on the flag. The boolean Alire.Force is also
available for less straightforward situations (interaction defaults for
example).

5 years agoExit code fix for `get --build` with build failure (#428)
Alejandro R Mosteo [Fri, 5 Jun 2020 17:07:18 +0000 (19:07 +0200)]
Exit code fix for `get --build` with build failure (#428)

We were not erroring if the build failed, which is counterintuitive. We now
require successful retrieval and build to exit with code 0. A test to verify
this situation has been added.

5 years agoAdd support for persistent configuration options (#424)
Fabien Chouteau [Fri, 5 Jun 2020 16:57:32 +0000 (18:57 +0200)]
Add support for persistent configuration options (#424)

* Add support for persistent configuration options

The configuration options are either global or local (local overriding
the global definitions) and are stored in TOML format.

This patch also introduces a command to handle configuration options
from the command line.

* Fix circular elaboration of Alire.Config

By moving the Not_Interactive global in the User_Input package.

5 years agoTransition the testsuite for Python3 and the new e3.testsuite API (#432)
Pierre-Marie de Rodat [Fri, 5 Jun 2020 16:18:53 +0000 (18:18 +0200)]
Transition the testsuite for Python3 and the new e3.testsuite API (#432)

* Transition the testsuite for Python3 and the new e3.testsuite API

* Testsuite: clear GPR_PROJECT_PATH before running tests

* scripts/ci-github.sh: upgrade e3-testsuite

* Update CI scripts to use Python 3

* Override default timeout to sidestep rlimit

* Clean up no longer needed python2.7 dependencies

Co-authored-by: Alejandro R. Mosteo <amosteo@unizar.es>
5 years agoRemove unnecessary forced exit from `Alr.Main` (#425)
Alejandro R Mosteo [Tue, 2 Jun 2020 10:23:02 +0000 (12:23 +0200)]
Remove unnecessary forced exit from `Alr.Main` (#425)

Historically, something was causing an extra empty line in the output of every
command. At some point this has been fixed inadvertently, so we can remove the
forced exit call, which in turn will allow finalization to complete normally,
if it were ever needed.

5 years agoReport expected vs found index versions (#419)
Alejandro R Mosteo [Tue, 2 Jun 2020 10:22:26 +0000 (12:22 +0200)]
Report expected vs found index versions (#419)