JSweet transpiler
This Maven project contains the JSweet Java to TypeScript (to JavaScript) transpiler.
How to build
Prerequisites: node and npm executables must be in the path (https://nodejs.org). Note that there seem to be an issue with the node executable on some Unix-based machines, which should be fixed (see for instance: http://askubuntu.com/questions/235655/node-js-conflicts-sbin-node-vs-usr-bin-node).
To build the jsweet-transpiler jars (in the project's directory):
> mvn package
To install the jsweet-transpiler artifact in your local Maven repository:
> mvn install
Note that current JUnit tests launch a Node.js instance for each test and will be quite slow (this will be improved). In order to easily test some changes locally without having to run all the tests, use the following command:
> mvn package -Dmaven.test.skip=true
or
> mvn install -Dmaven.test.skip=true
License
Since version 2, the JSweet transpiler source code is licensed under GPLv3, which in short means that you can use is as is to compile any kind of programs (including closed-source commercial ones). You can also use/modify this transpiler's source code in any open source project (commercial or not), as long as you conform to the license terms (see the license file). On the other hand, your cannot embed this transpiler's source code in a closed-source commercial project. In case you would want to do so, you must contact Renaud Pawlak (renaud.pawlak@gmail.com), who can grant you a commercial license depending on your use case.
NOTE: JSweet transpiler version 1.x, which is no longer maintained, is licensed under Apache v2.
Signing
In order to be able to deploy on Maven Central repository, we sign our jars using http://maven.apache.org/plugins/maven-gpg-plugin/
You need to install gpg (built in in most OS now), and import JSweet GPG key: https://www.debuntu.org/how-to-importexport-gpg-key-pair/ A passphrase will be asked.
To regenerate keys from scratch, follow https://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven/ and https://help.ubuntu.com/community/GnuPrivacyGuardHowto#Uploading_the_key_to_Ubuntu_keyserver
You can ignore signing with mvn [...] -DskipSigning=true
Release
git flow release start X.Y.Z
Change core-lib versions (remove SNAPSHOT) and mvn deploy them Change jsweet-transpiler's version and core-lib dependencies' versions and mvn deploy it
git flow release finish
Release related projets (jsweet-maven-plugin, jsweet-gradle-plugin, jsweet-examples, ...) by updating snapshot dependencies to release dependencies, bumping version number and mvn deploying them. Create git tags.
If possible, deploy to Bintray and Maven Central.
Declare release in GitHub.
Update all projects to next snapshot versions.