jsweet/transpiler

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.