AFAICT, safecss depends on SafeUri only, which currently is in 
com.google.gwt.safehtml, and safehtml depends on both SafeUri and 
SafeStyles (though only for their class names during codegen, so optional 
except for tests).

This means that either:

   1. we split up a gwt-safeuri (with UriUtils, SafeUri, SafeUriString, 
   IsSafeUri, etc.)
   2. we split up a gwt-safehtml-templates so we can have 
   safehtml-templates depend on both safehtml and safecss, with safecss 
   depending on safehtml (for its safeuri)
   3. we merge everything despite having separate packages and gwt.xml
   4. we put everything in the same project, but still separate artifacts, 
   so we can have tests (split into their own submodule) depend on both 
   safehtml and safecss without having safehtml depending on safecss (given 
   that we also need the reverse)
   5. we do nothing. The dependency cycle actually only exists when none of 
   the projects have been published (even as snapshots), so publish safehtml 
   without the dependency (and with the corresponding tests disabled; possibly 
   split into a separate submodule so you can easily ignore them) and then you 
   can build safecss and publish it, and finally run safehtml tests. Once 
   we've past the snapshots phase and actually have tagged versions, this 
   means safehtml will always be one release of safecss behind.

Options 1, 2, and 4 are not mutually exclusive actually.

I'd personally go with all 1, 2, and 4 options, which provide fine-grain 
modularity for users, and a coarser one for developers (develop, test, and 
release everything at once). Migration from com.google.gwt to 
org.gwtproject would be slightly more complex than a blind "replace 
com.google.gwt.safehtml with org.gwtproject.safehtml", but that's already 
the case for gwt-event.


On Thursday, June 25, 2020 at 10:14:46 PM UTC+2, Frank Hossfeld wrote:
>
> To prepare GWT for j2cl we need to move the modules out of GWT, replace 
> generators with ATP, etc. This is in progress and the first modules 
> (SNAPSHOT) are released.
>
> Migrating gwt-safehtml and gwt-safecss runs into a problem, cause 
> gwt-safehtml depends on gwt-safecss and gwt-safecss depends on 
> gwt-safehtml. This is a serious issue, cause one can not be build and 
> tested without the other. 
>
> To solve this issue, we are looking for solutions.
>
> One solution might be to move the tests out of gwt-safehtml. But then 
> gwt-safehtml needs to be build and deployed before the tests run and might 
> be deployed with failing tests. That looks like a bad solution.  At the 
> moment the idea is to move the sources and tests from gwt-safecss into 
> gwt-safehtml and delete gwt-safecss. This will remove the cycle dependency 
> between these two modules, but doing so, the module will be the first 
> module that contains two old modules in one new.
>
> Any other ideas how to solve this issue?
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/10f49ebb-6824-4f2e-ba55-468566c6c156o%40googlegroups.com.

Reply via email to