gwtwwlinker
gwtwwlinker copied to clipboard
Maven support
I'd be happy to offer my help in mavenizing this project to break it into 'library' and 'example' projects. Do you have a domain name that this could be modified to use as a package structure? I would then use that domain name as the groupid of the eventual maven artifact.
P.S. Thanks for sharing this as an answer at http://stackoverflow.com/a/21549962/860630.
There is no domain for this project. Is there a typical solution for such case? Also - do you feel it makes sense to mavenize this library? If yes - feel free to do it :-)
I'm not really sure yet, but given the apparent death of gwt-ns, your project could be the de facto web worker impl. I'm interested (in what spare time I have) in pursuing other ideas as well, and ideally if a clear winner emerges it should replace all other implementations, but until there is a clear way to solve the webworker problem, lets pick what works and go with it!
In order to publish something in maven, it needs a "group id", which is almost always the domain name of the project or the author - I use com.colinalworth for my own personal projects, gwt uses com.google.gwt, etc.
It appears to be acceptable to use io.github.<username> as the groupid, as you have access to http://tomekziel.github.io/ and can publish an 'about this project' page there easily (see https://issues.sonatype.org/browse/OSSRH-6386 as an example of this). Check out http://pages.github.com/ for more info on how to set that up if you are interested.
To make this consumable from maven, I would break this into two main projects - the actual library code and that sample war. Most users would only grab the jar with sources from maven central, but for anyone looking for sample code they could either gray the war or check out from github. The pom file would point to you as the author/developer, to the project page as the homepage, and to github as the source repository. It would also have details on the apache license, which you are currently using, and would declare which versions of GWT this project might be designed to work on.
As the JIRA issue at sonatype may make clear, I typically use Sonatype's free Maven Central syncing services for my open source projects. More information on how to get started with that is here: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide. I'd be happy to help along the way, but if this is published in your groupId, you need to have an active hand in this.
Another alternative: With your permission (since it is open source, I'm not sure permission is actually required, but it is of course more polite to ask), I could publish in my own groupId. I would leave you listed as a developer, but in order to release a new version I would need to actually push the button, since it would be associated with my own account.
If you know it is possible to extract essence of gwtwwlinker to separate GWT lib (and then use it from sample project and other projects), please go ahead. You can publish it from own fork with your own maven/pom credentials and everything. I will then link such fork in my README.md
Sounds good - I've got my fork going at https://github.com/niloc132/gwtwwlinker, and a published demo at http://niloc132.github.io/gwtwwlinker/. The demo has ie10 and webkit support added as well, essentially any browser with webkit support. I'll get the github 'fork me' badge in there in a day or thee, and will do a little more pom cleanup. My plan had been to make a pull request back to you, but I'm also happy to maintain it on my side of things. I'll update the readme when I've got maven snapshots working and CI builds going.
With your permission, I'll leave your name attached to the project, but will modify the package structure to fit the groupId (probably com.colinalworth for now). I'm also toying with getting the get 'perfect caching' to work - Ti4J seems to avoid that in its linkers, perhaps because it doesnt load these modules remotely? I dont quite have it working yet, but will try to keep the basic spirit of the project when I do get it. Next plan is to maybe try one of the other approaches discussed, probably as a new github project...
As I said before - I don't want to act as maven version maintainer when I don't have skills. Let me know when you reach mavenization milestone.
Will do, thanks. I'll reply here when I'm at that point - I'm travelling all next week, so either I'll get it worked out in flight, or not until I return...