eclipse-tycho / tycho

Tycho project repository (tycho)
https://tycho.eclipseprojects.io
Eclipse Public License 2.0
170 stars 189 forks source link

deprecate (and remove) feature-source mojo #3458

Open laeubi opened 9 months ago

laeubi commented 9 months ago

The feature-source mojo always was a bit tedious to use, for example it requires a manual configuration of meta-data generation to actually work:

https://github.com/eclipse-tycho/tycho/blob/ce3b3d115835676f1fa0b14627ed4364a6692371/tycho-source-plugin/src/main/java/org/eclipse/tycho/source/SourceFeatureMojo.java#L268-L285

Beside that, source feature itself are more from an ancient time and modern Tycho does offer much better alternatives with less efforts and even better user experience with less manual work and configuration:

  1. Currently one needs to list all items in a feature to have them included in the source feature, especially for third party dependencies this unnecessarily binds the feature to an exact version that can't be upgraded independently and will need to be maintained manually if dependencies change
  2. source features are handled as artifacts and therefore are downloaded even though they usually not contain anything different (beside the id) than the feature itself
  3. If one wants to have sources included in a target, PDE/Tycho already offer convenient options to specify that sources are desired, even collecting everything that can be found not only items directly declared in a (source) feature.
  4. If one wants to have sources distributed with a site, Tycho offers the option to include all sources automatically, this will again not require them to be listed anywhere and will automatically adapt.
  5. If one wants to install sources together with a product, there is now an option in the materialize product mojo to enable this use case as well.
  6. If one wants sources explicitly mentioned in an update site, Tycho offers dynamic selection of those in category.xml

If one absolutely wants, of course a source feature can still be created as a separate project for very special demands, also existing source features can be used as is, so this is only about removing special support from Tycho for those.

What needs to be done:

HannesWell commented 9 months ago

Sounds reasonable to me.

mickaelistria commented 9 months ago

I'm in favor of removing it, as there are numerous much more convenient solutions available.

akurtakov commented 9 months ago

Fine with me. Only comment is that we would best have it verified with platform that no-source feature approach has any potential major issues figured before it's announced widely.