From d99c47989a1047cd24019fd5ce434e701b5d3519 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 7 Feb 2021 04:56:58 -0400 Subject: Mo' updates, less problems. --- .../program/aedifex/dependency/deployment.lux | 51 +++++++++++++++------- 1 file changed, 35 insertions(+), 16 deletions(-) (limited to 'stdlib/source/program/aedifex/dependency/deployment.lux') diff --git a/stdlib/source/program/aedifex/dependency/deployment.lux b/stdlib/source/program/aedifex/dependency/deployment.lux index 1f3e776a9..04b82d7e2 100644 --- a/stdlib/source/program/aedifex/dependency/deployment.lux +++ b/stdlib/source/program/aedifex/dependency/deployment.lux @@ -32,7 +32,11 @@ ["#." package (#+ Package)] ["#." artifact (#+ Artifact) ["#/." type] - ["#/." extension (#+ Extension)]] + ["#/." extension (#+ Extension)] + ["#/." versioning] + ["#/." snapshot + ["#/." version (#+ Version) + ["#/." value]]]] ["#." metadata ["#/." artifact] ["#/." snapshot]] @@ -42,9 +46,9 @@ ["#." repository (#+ Repository) ["#/." origin]]]) -(def: (with_status repository [artifact type] [data status]) - (-> (Repository Promise) Dependency [Binary Status] (Promise (Try Any))) - (let [artifact (format (///artifact.uri artifact) +(def: (with_status repository version_template [artifact type] [data status]) + (-> (Repository Promise) ///artifact.Version Dependency [Binary Status] (Promise (Try Any))) + (let [artifact (format (///artifact.uri version_template artifact) (///artifact/extension.extension type)) deploy_hash (: (All [h] (-> (Codec Text (Hash h)) Extension (Hash h) (Promise (Try Any)))) (function (_ codec extension hash) @@ -91,29 +95,44 @@ (def: #export (one repository [artifact type] package) (-> (Repository Promise) Dependency Package (Promise (Try Artifact))) (do {! promise.monad} - [now (promise.future instant.now)] + [now (promise.future instant.now) + #let [version_template (get@ #///artifact.version artifact)]] (do (try.with !) - [_ (with_status repository [artifact type] (get@ #///package.library package)) + [_ (with_status repository version_template [artifact type] (get@ #///package.library package)) - _ (let [[pom status] (get@ #///package.pom package)] + _ (let [[pom pom_data status] (get@ #///package.pom package)] (with_status repository + version_template [artifact ///artifact/type.pom] - [(|> pom (\ xml.codec encode) (\ encoding.utf8 encode)) + [pom_data status])) snapshot (///metadata/snapshot.read repository artifact) + #let [snapshot (|> snapshot + (update@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot] + (function (_ snapshot) + (case snapshot + #///artifact/snapshot.Local + #///artifact/snapshot.Local + + (#///artifact/snapshot.Remote [_ build]) + (#///artifact/snapshot.Remote [now (inc build)])))) + (set@ [#///metadata/snapshot.versioning #///artifact/versioning.last_updated] now)) + versioning_snapshot (get@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot] snapshot)] _ (|> snapshot - (set@ [#///metadata/snapshot.versioning #///metadata/snapshot.time_stamp] now) - (update@ [#///metadata/snapshot.versioning #///metadata/snapshot.build] inc) - (set@ [#///metadata/snapshot.versioning #///metadata/snapshot.snapshot] - (list\compose (..artifacts type (product.right (get@ #///package.library package))) - (..artifacts ///artifact/type.pom (product.right (get@ #///package.pom package))))) + (set@ [#///metadata/snapshot.versioning #///artifact/versioning.versions] + (list {#///artifact/snapshot/version.extension type + #///artifact/snapshot/version.value (///artifact/snapshot/version/value.format + {#///artifact/snapshot/version/value.version version_template + #///artifact/snapshot/version/value.snapshot versioning_snapshot}) + #///artifact/snapshot/version.updated now})) + ## (set@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot] + ## (list\compose (..artifacts type (product.right (get@ #///package.library package))) + ## (..artifacts ///artifact/type.pom (product.right (get@ #///package.pom package))))) (///metadata/snapshot.write repository artifact)) - project (///metadata/artifact.read repository artifact) - #let [version (get@ #///artifact.version artifact)] _ (|> project - (set@ #///metadata/artifact.versions (list version)) + (set@ #///metadata/artifact.versions (list version_template)) (set@ #///metadata/artifact.last_updated now) (///metadata/artifact.write repository artifact))] (wrap artifact)))) -- cgit v1.2.3