Hi,I'd like to have a clarification about the naming convention for ported GWT modules. Because I'm porting the module `gwt-safecss` and `gwt-animation`. When I go to Vertispan repository [1], the available modules do not use the same rule for the group ID and artifact ID. This is a pain when you reference them as dependencies. Here're 5 rules that I found.
Rule 1:Use "org.gwtproject" + module name as group id; module name with "gwt-" prefix as artifact id. This rule is used by `gwt-http`:GROUP_ID: org.gwtproject.$MODULEARTIFACT_ID: gwt-$MODULERule 2:Use "org.gwtproject" + module name as group id; module name without "gwt-" prefix as artifact id. This rule is used by `gwt-event`, `gwt-place`, `gwt-safehtml`, `gwt-storage`, `gwt-timer`:GROUP_ID: org.gwtproject.$MODULEARTIFACT_ID: $MODULE
Rule 3:Use "org.gwtproject" as group id; module name with "gwt-" prefix as artifact id. This rule is used by `gwt-xhr`:GROUP_ID: org.gwtprojectARTIFACT_ID: gwt-$MODULERule 4:Use "org.gwtproject" as group id; module name without "gwt-" prefix as artifact id. This rule is used by `gwt-json`, `gwt-typedarrays`, `gwt-xml`, `gwt-xhr`:GROUP_ID: org.gwtprojectARTIFACT_ID: $MODULERule 5:Other rules: `gwt-window`, `gwt-history`.
I suggest we apply rule 4 to all the modules. It means always using "org.gwtproject` as group id, and use `gwt-` + module name as artifact id. There're several benefits. It helps people to find all the artifacts via the same group id. It also keeps consistency for the generated JAR files: each of them contains a "gwt-" prefix, thus they are GWT artifacts.
On Saturday, March 24, 2018 at 10:30:10 AM UTC+1, Mincong Huang wrote:Hi,I'd like to have a clarification about the naming convention for ported GWT modules. Because I'm porting the module `gwt-safecss` and `gwt-animation`. When I go to Vertispan repository [1], the available modules do not use the same rule for the group ID and artifact ID. This is a pain when you reference them as dependencies. Here're 5 rules that I found.This is a subject we briefly discussed last week in our steering committee meeting, acknowledging the issue.Rule 1:Use "org.gwtproject" + module name as group id; module name with "gwt-" prefix as artifact id. This rule is used by `gwt-http`:GROUP_ID: org.gwtproject.$MODULEARTIFACT_ID: gwt-$MODULERule 2:Use "org.gwtproject" + module name as group id; module name without "gwt-" prefix as artifact id. This rule is used by `gwt-event`, `gwt-place`, `gwt-safehtml`, `gwt-storage`, `gwt-timer`:GROUP_ID: org.gwtproject.$MODULEARTIFACT_ID: $MODULEgwt-events actually falls in rule 1.
Rule 3:Use "org.gwtproject" as group id; module name with "gwt-" prefix as artifact id. This rule is used by `gwt-xhr`:GROUP_ID: org.gwtprojectARTIFACT_ID: gwt-$MODULERule 4:Use "org.gwtproject" as group id; module name without "gwt-" prefix as artifact id. This rule is used by `gwt-json`, `gwt-typedarrays`, `gwt-xml`, `gwt-xhr`:GROUP_ID: org.gwtprojectARTIFACT_ID: $MODULERule 5:Other rules: `gwt-window`, `gwt-history`.Those fall (almost) in rule 1, with an additional "user" in groupId: org.gwtproject.user.$MODULE:gwt-$MODULEI suggest we apply rule 4 to all the modules. It means always using "org.gwtproject` as group id, and use `gwt-` + module name as artifact id. There're several benefits. It helps people to find all the artifacts via the same group id. It also keeps consistency for the generated JAR files: each of them contains a "gwt-" prefix, thus they are GWT artifacts.My rule of thumb was to use a "subgroup" of "org.gwtproject" when there was several artifacts, as can be seen in gwt-events and gwt-places. For other cases, I'm always hesitating between bare "org.gwtproject" and a subgroup.Fwiw, we settled on always using a subgroup (IIRC; Colin, please correct me if I misremember). This means rule 1 or 2 rather than 3 or 4. And I would tend to agree with using a "gwt-" prefix for artifact IDs, though if you read the artifact name as being groupId+artifactId, then that prefix would be redundant with the "org.gwtproject" prefix of the groupId.
Compare, for example
- org.gwtproject:http vs org.gwtproject:gwt-http vs org.gwtproject.http:http vs org.gwtproject.http:gwt-http
- org.gwtproject:logical-event vs org.gwtproject:gwt-logical-event vs org.gwtproject.event:logical vs org.gwtproject.event:logical-event vs org.gwtproject.event.gwt-logical-event (this goes with "event" and "compat" artifacts)
--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-contributors+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/ac6913ab-7240-4fcb-8d5b-4a48085089b6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Wrt events, each corresponds to a different GWT module: c.g.g.event+c.g.w.b.event, c.g.g.event.logical, and some adapters for when you need to mix org.gwtproject.event with c.g.g.event or c.g.w.b.event. We could also add DOM events if needed/requested (fwiw, the only reason I ported over logical events is because Window and History use them)
org.gwtproject.X
to make sure that later they can be used with the rest of the i18n porting, also i am migrating the gwt cldr-importer from ant to gradle, the new one will reduce the manual steps to generate new cldr classes, so instead of checkout, build, copy, import, it will be a single commad to acheive it all. i will make the repository avialble for review and feedback on github very soon when i am done.org.gwtproject.tools
, artifactId : gwt-cldr-importer
does this look right?Hii am working on date pickers for domino-ui, mean while i found that in order to support different locales in the date picker i need the DateTimeFormat information for each locale, gwt in the other hand has a decent support for datetime format informtion, so instead of adding my own implementation and after a small discussion with colin i decided to use gwt DatetimeFormat implementation, but to avoid adding dependency on gwt-user i decided to work in a partial porting of the gwt datetime formats, i am modifing the cldr-import tool to generate the sources into there own module/jar with the new package nameorg.gwtproject.X
to make sure that later they can be used with the rest of the i18n porting, also i am migrating the gwt cldr-importer from ant to gradle, the new one will reduce the manual steps to generate new cldr classes, so instead of checkout, build, copy, import, it will be a single commad to acheive it all. i will make the repository avialble for review and feedback on github very soon when i am done.my question here isfor the new cldr data generator i should use
groupId :org.gwtproject.tools
, artifactId :gwt-cldr-importer
does this look right?
Fwiw, I can see zero reason why examples would be published to a Maven repo.
Fwiw, I can see zero reason why examples would be published to a Maven repo.Well right, although quite a lot projects do so. But maybe just because examples are part of a multi module project and they just deploy everything to maven central. That would even be a stronger argument to move examples out of each project into a dedicated org.gwtproject.examples namespace. Otherwise, when following maven conventions you end up with multi module project coordinates but only deploy a single artifact. Then you would end up again with the repetitive org.gwtproject.xx.<modulename>:gwt-<modulename> pattern.