You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Brett Porter <br...@apache.org> on 2004/12/09 00:24:19 UTC
issues with the recent build changes
Hi,
I have a couple of questions about the way the recent change to the
build/versions was done.
For the versions - the removal of the SNAPSHOT was perhaps not correct. Say
someone builds this and gets ldap-common-0.2.0.jar. Then they change something
and build again to get... ldap-common-0.2.0.jar. Which is the latest? If there's
a newer one in the remote repository - but Maven won't download it.
Let me know if you think differently, but the process we tend to encourage with
Maven is:
- start with 0.1-SNAPSHOT
- build using this
- release 0.1, tag SCM
- update project version when start work on 0.2-SNAPSHOT
- and so on
If 0.2.0/0.8.0 for the various artifacts are to eventually become "official"
releases, I suggest changing to the other technique so the official release does
not get confused with the version you built from CVS a week ago :)
The other thing was the names of subdirectories in projects. In eve, there is
main
plugin (renamed from maven-eve-plugin)
shared
...
These don't match the artifactId of the projects they contain, which introduced
the need for a module.name property to be able to reference them correctly.
Is this necessary? It would be nice to name subdirectories consistently with the
artifactId.
Cheers,
Brett
Re: issues with the recent build changes
Posted by Alex Karasulu <ao...@bellsouth.net>.
Brett Porter wrote:
>Hi,
>
>I have a couple of questions about the way the recent change to the
>build/versions was done.
>
>For the versions - the removal of the SNAPSHOT was perhaps not correct. Say
>someone builds this and gets ldap-common-0.2.0.jar. Then they change something
>and build again to get... ldap-common-0.2.0.jar. Which is the latest? If there's
>a newer one in the remote repository - but Maven won't download it.
>
>Let me know if you think differently, but the process we tend to encourage with
>Maven is:
>- start with 0.1-SNAPSHOT
>- build using this
>- release 0.1, tag SCM
>- update project version when start work on 0.2-SNAPSHOT
>- and so on
>
>
Ok I've got -SNAPSHOT appended to all the versions now. WRT to changing
names back I wanted to wait until you responded to my last email. I'll
make a very clear anouncemtn about blowing away the local maven repo
jars in incubator-directory.
Alex
Re: issues with the recent build changes
Posted by Berin Loritsch <bl...@d-haven.org>.
Brett Porter wrote:
>Hi,
>
>I have a couple of questions about the way the recent change to the
>build/versions was done.
>
>For the versions - the removal of the SNAPSHOT was perhaps not correct. Say
>someone builds this and gets ldap-common-0.2.0.jar. Then they change something
>and build again to get... ldap-common-0.2.0.jar. Which is the latest? If there's
>a newer one in the remote repository - but Maven won't download it.
>
>
May I interject something here? I really hope we never run into a
situation where we release
0.2.0 on the remote repository and then update the JAR and re-release it
with the same version
number. Such an action would be wrong on many levels. A version is a
marked snapshot of
the library that was determined to work as expected. If the contents of
that version change, then
the expectations change--that is bad. Which is why we increment versions.
The only time a version may change in a local repository is when we are
building potential
new libraries to use in the overall system--but aren't quite sure.
People are lazy so they either
forget to change the version ID to SNAPSHOT or increment versions as
necessary. But that's
the local repository. What is on the remote one should remain the same.
>Let me know if you think differently, but the process we tend to encourage with
>Maven is:
>- start with 0.1-SNAPSHOT
>- build using this
>- release 0.1, tag SCM
>- update project version when start work on 0.2-SNAPSHOT
>- and so on
>
>If 0.2.0/0.8.0 for the various artifacts are to eventually become "official"
>releases, I suggest changing to the other technique so the official release does
>not get confused with the version you built from CVS a week ago :)
>
>The other thing was the names of subdirectories in projects. In eve, there is
>main
>plugin (renamed from maven-eve-plugin)
>shared
>...
>
>These don't match the artifactId of the projects they contain, which introduced
>the need for a module.name property to be able to reference them correctly.
>Is this necessary? It would be nice to name subdirectories consistently with the
>artifactId.
>
>Cheers,
>Brett
>
>
>
--
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
- Rich Cook
Re: issues with the recent build changes
Posted by Brett Porter <br...@apache.org>.
> I was just thinking... Subprojects like snickers and eve which generate
> more than one jar prefixes the project name to the name of the
> artifacts. Like the artifactId may be snickers-ber but the project has
> a ber directory for the maven project underneath. Then what do I do for
> things like eve/trunk/eve which I have created to build the final full
> executable jar with all deps inside? Should it be eve-eve or just plain
> old eve for the artifactId. BTW I renamed 'eve' to 'main' but still
> produce an eve-0.8.0-.... from it.
No, I wouldn't go for "eve-eve". "eve" is fine for an artifactId. Basically, you
just need to meet this criteria when picking an artifactId:
- needs to make sense standalone as it is the jar name
- needs to be unique within the group
Maven doesn't impose any particular restriction on them.
> If the name of the directory from the artifact is off anywhay what
> difference does it make?
Maven typically doesn't care (as you can see - everything is building fine at
the moment). There is talk of using this to facilitate some functionality in the
future, though not requiring it.
It does make it easier to find the location of a particular artifact in a big
source tree that you are unfamiliar with though :)
I haven't had an answer back from the gump folk - there's a small chance gump
will not like the discrepancy, but that's probably just my misunderstanding.
HTH!
Cheers,
Brett
Re: issues with the recent build changes
Posted by Alex Karasulu <ao...@bellsouth.net>.
Alex Karasulu wrote:
> Brett Porter wrote:
<snip/>
>> The other thing was the names of subdirectories in projects. In eve,
>> there is
>> main
>> plugin (renamed from maven-eve-plugin)
>> shared
>> ...
>>
>> These don't match the artifactId of the projects they contain, which
>> introduced
>> the need for a module.name property to be able to reference them
>> correctly.
>> Is this necessary? It would be nice to name subdirectories
>> consistently with the
>> artifactId.
>>
>>
> Ok I just liked the shorter names plus there was an eve directory
> which matches the working directory eve creates by default. I will
> revert this back so we're inline with Maven. I have the feeling this
> will save us some work later somewhere.
I was just thinking... Subprojects like snickers and eve which generate
more than one jar prefixes the project name to the name of the
artifacts. Like the artifactId may be snickers-ber but the project has
a ber directory for the maven project underneath. Then what do I do for
things like eve/trunk/eve which I have created to build the final full
executable jar with all deps inside? Should it be eve-eve or just plain
old eve for the artifactId. BTW I renamed 'eve' to 'main' but still
produce an eve-0.8.0-.... from it.
If the name of the directory from the artifact is off anywhay what
difference does it make?
Alex
Re: issues with the recent build changes
Posted by Alex Karasulu <ao...@bellsouth.net>.
Brett Porter wrote:
>For the versions - the removal of the SNAPSHOT was perhaps not correct. Say
>someone builds this and gets ldap-common-0.2.0.jar. Then they change something
>and build again to get... ldap-common-0.2.0.jar. Which is the latest? If there's
>a newer one in the remote repository - but Maven won't download it.
>
>
Ahh ok I see. I was geting ready for the release before tagging the
repository but there is time before the release does happen. In this
time you're right we can totally get out of sync. So basically I put
snapshot at the end of the version and this will do it eh. Ok I'll
revert back.
>Let me know if you think differently, but the process we tend to encourage with
>Maven is:
>- start with 0.1-SNAPSHOT
>- build using this
>- release 0.1, tag SCM
>- update project version when start work on 0.2-SNAPSHOT
>- and so on
>
>
>
This is exactly what I was thinking but totally lost sight of
SNAPSHOT'ing until right after a release.
>If 0.2.0/0.8.0 for the various artifacts are to eventually become "official"
>releases, I suggest changing to the other technique so the official release does
>not get confused with the version you built from CVS a week ago :)
>
>
Yep yep sorry. I will fix this right away and blow away what's there.
Plus I guess everyone will need to clear out their local copies of
incubator-director jars.
>The other thing was the names of subdirectories in projects. In eve, there is
>main
>plugin (renamed from maven-eve-plugin)
>shared
>...
>
>These don't match the artifactId of the projects they contain, which introduced
>the need for a module.name property to be able to reference them correctly.
>Is this necessary? It would be nice to name subdirectories consistently with the
>artifactId.
>
>
Ok I just liked the shorter names plus there was an eve directory which
matches the working directory eve creates by default. I will revert
this back so we're inline with Maven. I have the feeling this will save
us some work later somewhere.
Thanks for the feedback. I'll make the corrections tonight.
Alex