> -----Original Message-----
> From: John Casey [mailto:[EMAIL PROTECTED]
> Sent: mercredi 16 novembre 2005 16:01
> To: Maven Developers List
> Subject: Re: svn commit: r344386 - /maven/components/trunk/maven-
> project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMet
> adata.java
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi, Vincent
> 
> I think there is still an important distinction between the two: the
> handling of dynamic information. In development situations where it's
> most convenient to share development artifacts via a remote repository,
> you should always preserve that dynamism. This is critical to keep
> development going forward; otherwise, your deployed snapshot may not
> pickup the dependency on my (more recently deployed) artifact update.
> 
> In other words, deploying an artifact is not always an act of releasing.
> 
> This is even true when you consider the user's perspective, since end
> users probably won't see these snapshots, and developer-users will need
> the full SNAPSHOT capability. Resolving everything down to a static
> version on each deploy would result in updated artifacts being ignored
> transitively, and non-direct dependencies being added to a given POM in
> order to forcibly bring those snapshots back into the mix.
> 
> I agree that the two actions are conceptually similar, but I don't see
> any advantage in combining them. The deployment code is reused by the
> release plugin, so there are no dangers associated with copy-and-paste
> programming.

You're probably right! One is about sharing artifacts within the dev team
and the other is about making them user-visible.

Thanks
-Vincent

> Vincent Massol wrote:
> | Thanks John for the feedback.
> |
> | I still have trouble understanding what's the difference between a
> deploy
> | and a release and I would think we'd need to merge both concept into
> one in
> | the future.
> |
> | If you think about it, the result of both actions is the same from a
> user
> | point of view. The only differences are the extra steps during a
> release but
> | we could decide not to take those extra steps (tagging, sending an
> email,
> | etc) when we release a snapshot.
> |
> | To summarize, I think having a single concept of release (or deploy)
> would
> | be enough and it should cover both snapshot and proper versions.
> |
> | -Vincent
> |
> |
> |>-----Original Message-----
> |>From: John Casey [mailto:[EMAIL PROTECTED]
> |>Sent: mercredi 16 novembre 2005 04:00
> |>To: Maven Developers List
> |>Subject: Re: svn commit: r344386 - /maven/components/trunk/maven-
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> et
> |>adata.java
> |>
> | deployment doesn't guarantee reproducibility. I already discussed this
> | with you on IRC, but I'm replicating my answer here to keep the list up
> | to date.
> |
> | The only time you have strong requirements for reproducibility in builds
> | is at release time, when all -SNAPSHOT dependencies should already have
> | been resolved to concrete versions (even if these versions are the
> | timestamped alter egos of the snapshot artifacts). When you're merely
> | deploying, you're not making any assertion about the build being
> | static...particularly when you deploy with SNAPSHOT dependencies. In
> | those cases, it's important that your artifact's users be able to retain
> | that flexibility in choosing dependency versions given by SNAPSHOTs.
> |
> | Deploying is still a distinct task from releasing, since you may deploy
> | a snapshot artifact in order to share it among team members, or CI
> | servers, without releasing it. In this case, it's understood that this
> | is a development copy, and you get what you ask for with any SNAPSHOT
> | dependencies. That is, dynamically resolved versions...even dynamically
> | re-resolved versions, if the artifact is used more than once over time.
> |
> | Cheers,
> |
> | John
> |
> | Vincent Massol wrote:
> | | Thanks John,
> | |
> | | When I deploy now the resolved version is 0.7-SNASPHOT and not the
> | | timestamped version.
> | |
> | | It may work but that means that builds will not be reproducible,
> | because the
> | | correct dependency version will be chosen at runtime according to the
> | | available snapshots, right?
> | |
> | | Thanks
> | | -Vincent
> | |
> | |
> | |>-----Original Message-----
> | |>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> | |>Sent: mardi 15 novembre 2005 17:15
> | |>To: commits@maven.apache.org
> | |>Subject: svn commit: r344386 - /maven/components/trunk/maven-
> |
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> | et
> | |>adata.java
> | |>
> | |>Author: jdcasey
> | |>Date: Tue Nov 15 08:15:21 2005
> | |>New Revision: 344386
> | |>
> | |>URL: http://svn.apache.org/viewcvs?rev=344386&view=rev
> | |>Log:
> | |>Decoupling ${version} expressions from POM version before resolving it
> | to
> | |>a buildnumber/timestamp on install or deploy.
> | |>
> | |>Modified:
> | |>    maven/components/trunk/maven-
> |
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> | et
> | |>adata.java
> | |>
> | |>Modified: maven/components/trunk/maven-
> |
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> | et
> | |>adata.java
> | |>URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-
> |
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> | et
> | |>adata.java?rev=344386&r1=344385&r2=344386&view=diff
> |
> |>========================================================================
> | ==
> | |>====
> | |>--- maven/components/trunk/maven-
> |
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> | et
> | |>adata.java (original)
> | |>+++ maven/components/trunk/maven-
> |
> |>project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactM
> | et
> | |>adata.java Tue Nov 15 08:15:21 2005
> | |>@@ -34,6 +34,8 @@
> | |> import java.io.FileReader;
> | |> import java.io.FileWriter;
> | |> import java.io.IOException;
> | |>+import java.io.StringReader;
> | |>+import java.io.StringWriter;
> | |>
> | |> /**
> | |>  * Attach a POM to an artifact.
> | |>@@ -85,10 +87,17 @@
> | |>         try
> | |>         {
> | |>             reader = new FileReader( file );
> | |>+            StringWriter sWriter = new StringWriter();
> | |>+            IOUtil.copy( reader, sWriter );
> | |>+
> | |>+            String modelSrc = sWriter.toString().replaceAll(
> | |>"\\$\\{(pom\\.|project\\.)?version\\}", artifact.getBaseVersion() );
> | |>+
> | |>+            StringReader sReader = new StringReader( modelSrc );
> | |>+
> | |>             writer = new FileWriter( destination );
> | |>
> | |>             MavenXpp3Reader modelReader = new MavenXpp3Reader();
> | |>-            Model model = modelReader.read( reader );
> | |>+            Model model = modelReader.read( sReader );
> | |>             model.setVersion( artifact.getVersion() );
> | |>
> | |>             DistributionManagement distributionManagement =
> | |>model.getDistributionManagement();
> | |>
> | |
> | |
> | |
> | |
> | | ---------------------------------------------------------------------
> | | To unsubscribe, e-mail: [EMAIL PROTECTED]
> | | For additional commands, e-mail: [EMAIL PROTECTED]
> | |
> | |
> | |
> 
> - ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> 
> | ---------------------------------------------------------------------
> | To unsubscribe, e-mail: [EMAIL PROTECTED]
> | For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.6 (GNU/Linux)
> 
> iD8DBQFDe0miK3h2CZwO/4URAi/OAJ9/LuzlzLD2/SrKzIN+jXsXFUd3RgCfROy6
> WHFX3xSbFR/aAxXKLPmiOHY=
> =0HSa
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to