diff --git a/index/alire-index-alire.ads b/index/alire-index-alire.ads index 0d758fb3..7303a282 100644 --- a/index/alire-index-alire.ads +++ b/index/alire-index-alire.ads @@ -8,24 +8,35 @@ package Alire.Index.Alire is Repo : constant URL := "https://github.com/alire-project/alire.git"; + V_0 : constant Release := + Project.Bypass + (V ("0.0"), + No_Origin, + Properties => + Author ("Alejandro R. Mosteo") and + License (GPL_3_0)); + V_0_1_2 : constant Release := Project.Register - (V ("0.1.2"), - Git (Repo, "e2dee2e147ae9e4d666567b53b108cbe61bc06e8"), - Properties => - Author ("Alejandro R. Mosteo") and - License (GPL_3_0), + (V_0 + .Upgrading + (V ("0.1.2"), + Git (Repo, "e2dee2e147ae9e4d666567b53b108cbe61bc06e8")) + .Extending + (Dependencies => + Semantic_Versioning.V_0_1_2.Within_Minor and + Simple_Logging.V_1_0.Within_Major)); - Dependencies => - Semantic_Versioning.V_0_1_2.Within_Minor and - Simple_Logging.V_1_0.Within_Major); - - V_0_2 : constant Release := + V_0_2 : constant Release := Project.Register - (V_0_1_2 + (V_0 .Upgrading (V ("0.2"), - Git (Repo, "5ba81ba33dfeb184b2e644ef2996200b5fdd6ae4"))); + Git (Repo, "5ba81ba33dfeb184b2e644ef2996200b5fdd6ae4")) + .Extending + (Dependencies => + Semantic_Versioning.V_0_3.Within_Minor and + Simple_Logging.V_1_0.Within_Major)); -- function Example_Project is new Catalogued_Project ("alire_indexing_example", -- "Demo of dependencies/properties/conditionals in alire-index-alire.ads"); diff --git a/index/alire-index-alr.ads b/index/alire-index-alr.ads index bef4457e..fb6f76c1 100644 --- a/index/alire-index-alr.ads +++ b/index/alire-index-alr.ads @@ -8,22 +8,35 @@ package Alire.Index.Alr is Repo : constant URL := "https://github.com/alire-project/alr.git"; - V_0_1_2 : constant Release := - Project.Register - (V ("0.1.2"), - Git (Repo, "4002536beea8aee12b455077df4dd144b409bde4"), + V_0 : constant Release := + Project.Bypass + (V ("0.0"), + No_Origin, Dependencies => - Alire.V_0_1_2.Within_Minor and - Simple_Logging.V_1_0.Within_Major, + Simple_Logging.V_1_0.Within_Major, Properties => Author ("Alejandro R. Mosteo") and License (GPL_3_0)); - V_0_2 : constant Release := + V_0_1_2 : constant Release := Project.Register - (V_0_1_2.Upgrading + (V_0 + .Upgrading + (V ("0.1.2"), + Git (Repo, "4002536beea8aee12b455077df4dd144b409bde4")) + .Extending + (Dependencies => + Alire.V_0_1_2.Within_Minor)); + + V_0_2 : constant Release := + Project.Register + (V_0 + .Upgrading (V ("0.2"), - Git (Repo, "481a22aceb07242cabaefedbb41b2d6fe7a8bd1e"))); + Git (Repo, "481a22aceb07242cabaefedbb41b2d6fe7a8bd1e")) + .Extending + (Dependencies => + Alire.V_0_2.Within_Minor)); end Alire.Index.Alr; diff --git a/index/alire-index-simple_components.ads b/index/alire-index-simple_components.ads index 95060118..622e5e74 100644 --- a/index/alire-index-simple_components.ads +++ b/index/alire-index-simple_components.ads @@ -52,7 +52,7 @@ package Alire.Index.Simple_Components is Base_V_4_27 : constant Release := Project.Bypass (V ("4.27"), - Git (Repo, "8ac67a28d666dde3a0f96b5a08a7016e4f29d491"), + No_Origin, Properties => GPR_Scenario ("Legacy", "Ada95" or "Ada2005" or "Ada2012") and @@ -64,8 +64,10 @@ package Alire.Index.Simple_Components is Strings_Edit_V_4_27 : constant Release := Strings_Edit.Register - (Base_V_4_27.Extending - (Properties => + (Base_V_4_27 + .Replacing (Origin => Git (Repo, "8ac67a28d666dde3a0f96b5a08a7016e4f29d491")) + .Extending + (Properties => Project_File ("strings_edit.gpr"), Private_Properties => diff --git a/src/alire-index.ads b/src/alire-index.ads index aa89c10c..1377f198 100644 --- a/src/alire-index.ads +++ b/src/alire-index.ads @@ -159,6 +159,7 @@ package Alire.Index is function Git (URL : Alire.URL; Commit : Origins.Git_Commit) return Origins.Origin renames Origins.New_Git; function Hg (URL : Alire.URL; Commit : Origins.Hg_Commit) return Origins.Origin renames Origins.New_Hg; + function No_Origin return Origins.Origin is (Origins.New_Filesystem ("/unavailable")); use all type Platforms.Distributions; diff --git a/src/alire-releases.ads b/src/alire-releases.ads index a8c6a83a..8f76e537 100644 --- a/src/alire-releases.ads +++ b/src/alire-releases.ads @@ -16,6 +16,8 @@ package Alire.Releases with Preelaborate is type Release (<>) is new Versions.Versioned with private; + function "<" (L, R : Release) return Boolean; + function New_Release (Project : Alire.Project; Version : Semantic_Versioning.Version; Origin : Origins.Origin; @@ -45,9 +47,7 @@ package Alire.Releases with Preelaborate is function Upgrading (Base : Release; Version : Semantic_Versioning.Version; Origin : Origins.Origin) return Release; - -- Takes a release and replaces version and origin - - function "<" (L, R : Release) return Boolean; + -- Takes a release and replaces version and origin function Whenever (R : Release; P : Properties.Vector) return Release; -- Materialize conditions in a Release once the whatever properties are known @@ -58,6 +58,8 @@ package Alire.Releases with Preelaborate is function Project_Base (R : Release) return String; -- Project up to first dot, if any; which is needed for extension projects in templates and so on + function Is_Extension (R : Release) return Boolean; + function Notes (R : Release) return Description_String; -- Specific to release function Version (R : Release) return Semantic_Versioning.Version; @@ -155,6 +157,9 @@ private L.Version = R.Version and then Build (L.Version) < Build (R.Version))); + function Is_Extension (R : Release) return Boolean is + (R.Project_Base'Length < R.Project'Length); + overriding function Project (R : Release) return Alire.Project is (R.Project); function Project_Base (R : Release) return String is