ppkarwasz opened a new issue, #7730:
URL: https://github.com/apache/rocketmq/issues/7730

   ### Before Creating the Enhancement Request
   
   - [X] I have confirmed that this should be classified as an enhancement 
rather than a bug/feature.
   
   
   ### Summary
   
   Since RocketMQ provides many different artifacts, as Bill-of-Material 
artifact would be useful to manage the version of all of them at once (cf. 
[Maven 
BOM](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms)).
   
   ### Motivation
   
   Projects that use RocketMQ like EventMesh need dozens of line to specify the 
version of RocketMQ artifacts they use:
   
   
https://github.com/apache/eventmesh/blob/1ad5fdf573666516ab9ef279db3b166caa980830/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle#L18-L30
   
   These could be easily condensed to a single line if RocketMQ had a BOM file.
   
   ### Describe the Solution You'd Like
   
   A nice pattern to introduce BOMs in Maven projects is described in [Garret 
Wilson's 
blog](https://www.garretwilson.com/blog/2023/06/14/improve-maven-bom-pattern).
   
   The BOM can be introduced in the POM hierachy between the ASF parent POM and 
`rocketmq-all`: e.g. the hierarchy of `rocketmq-common` will be: 
`apache:apache` -> `rocketmq-bom` -> `rocketmq-all` -> `rocketmq-common`.
   
   Since Maven's module inheritance (the `<parent>` POM tag) and aggregation 
(the `<modules>` POM tag) are separate concepts, the directory structure does 
not have to change and can be:
   
   ```
   pom.xml        <- contains `rocketmq-bom`
   parent/pom.xml <- contains `rocketmq-all`
   common/pom.xml <- contains `rocketmq-common`
   ...
   ```
   
   ### Describe Alternatives You've Considered
   
   The `rocketmq-all` artifact is a **poor** replacement for a BOM artifact, 
since it manages the version of a lot of artifacts that are not part of Apache 
RocketMQ.
   
   ### Additional Context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to