So I think really what you want vis-a-vis artifact resolution is a way to have 
a new repository system session with new/altered implementations for fixes or 
new behavior. Possibly a new repository system as well. If the default behavior 
continues to work, anyone can do whatever radical things they might like to 
experiment with provided the user knowingly flips the switch to enable the 
non-default behavior. Currently there is a DefaultRepositorySytemSessionFactory 
and we might want to allow picking a new one of those so that new managers, 
selectors, and transformers can be used. Maybe we modify this slightly if we 
want a new a new collector or resolver. This is orthogonal to the model changes 
that may or may not be made.

How do we enable this? I think a bunch of CLI switch is cumbersome, so maybe we 
officially introduce feature toggles in the settings. Useful for us and if 
teams want to run with certain features it will be easier to share this 
configuration. If we’re going to employ feature toggles then I think the 
settings is likely the place to do it. If so I can probably make a prototype in 
a few hours. From settings session properties can be made that reach most of 
code from end to end. But this allows branching by abstraction and all behavior 
can live in master. We can see all the implementations in one place and users 
won’t have to go build special branches to try things out, it will just be in 
the standard snapshots and the releases. If the features are off by default it 
won’t surprise any existing users.

As for shoring up all the behaviour there are still 2-3 places where scopes are 
mutatate outside the scope of the existing Aether code which makes things 
fairly confusing. As I’m sure people people look at the final state and wonder 
how it happened because if they trace through Aether code everyone who does 
seems it didn’t happen there. That aspect is a mess. This should be consistent 
for plugins and the application resolution but it currently is not.

> On Jul 29, 2016, at 8:50 PM, Jason van Zyl <ja...@takari.io> wrote:
> 
> The model version doesn’t necessarily have anything to do with resolution or 
> any behavioral changes per se. I also don’t think a branch is necessary and 
> we do branching by abstraction and figure out the feature toggles now and 
> just keep it all in master.
> 
>> On Jul 28, 2016, at 2:11 PM, Christian Schulte <c...@schulte.it> wrote:
>> 
>> Am 28.07.2016 um 19:18 schrieb Jason van Zyl:
>>> I’m a vehement -1 to changing the artifactIds or structure without a plan.
>> 
>> +1
>> 
>> If something does not need to be renamed, then don't rename it. If something 
>> needs to be renamed, don't choose some kind of trademarkish name no-one 
>> knows what it stands for but something self-describing as much as possible.
>> 
>>> We have to change the groupId because we cannot deploy into Eclipse’s 
>>> namespace but for anyone using this code just leave it how it is while 
>>> making improvements.
>> 
>> +1
>> 
>>> The library as it stands functions and people are using it. We have 
>>> something in Maven core that uses it and it’s pretty terrible but it’s a 
>>> great place to start trying to flesh out something new because the ITs will 
>>> catch most things.
>> 
>> We have recently discussed the addition of some kind of feature 
>> toggles/switches/knobs and haven't come to a conclusion yet. I would like to 
>> make the following proposal:
>> 
>> Rename the branch 'maven-3.x-next' to 'maven-next'. Use the model version to 
>> decide about how Maven should behave when it comes to a change in behaviour 
>> between a previous model version and the next model version. Update the 
>> model version right now to the next model version on that 'maven-next' 
>> branch so things can get going there (setup Jenkins and things like that 
>> e.g.) All I need to know for this is what is the model version we will be 
>> using in that 'maven-next' branch today. Is it a minor version increment 
>> (4.1) or a major one (5.0). The reason I would like to use the model version 
>> instead of some kind of feature toggle is to be able to deploy to central or 
>> somewhere else. So that Maven can detect how to behave also for POMs it 
>> downloads from the repositories instead of relying on some command line 
>> option.
>> 
>> Regards,
>> -- 
>> Christian
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>> 
> 
> Thanks,
> 
> Jason
> 
> ----------------------------------------------------------
> Jason van Zyl
> Founder, Takari and Apache Maven
> http://twitter.com/jvanzyl
> http://twitter.com/takari_io
> ---------------------------------------------------------
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder, Takari and Apache Maven
http://twitter.com/jvanzyl
http://twitter.com/takari_io
---------------------------------------------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to