-----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.

Regards,

John

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/ProjectArtifactMet
|>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]

Reply via email to