Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-language build #73

Closed
eladb opened this issue Jul 11, 2018 · 0 comments
Closed

Multi-language build #73

eladb opened this issue Jul 11, 2018 · 0 comments
Assignees

Comments

@eladb
Copy link
Contributor

eladb commented Jul 11, 2018

At the moment, the jsii toolchain covers the process until a generated code package in all supported programming languages. This leaves the actual build to users, which is unneeded since this is boilerplate that needs to be implemented by all users.

The toolchains required for all languages is expected to be installed on your system (and we will create a docker image that contains all of them).

A few other things to consider:

  1. What is the post-build publishing story? Perhaps this is actually part of the "packaging" stage.
  2. We need to also make sure that the development environment for contributors doesn't require the entire toolchain because that will become a barrier for contributors. Perhaps the actual multi-language build will only happen during "pack" and contributors can just utilize our build servers to do that for them instead of having to install the entire toolchain.
  3. It should be possible to also deprecate a package across all package managers.
@eladb eladb changed the title jsii-build Multi language builds and publishing Jul 12, 2018
@eladb eladb changed the title Multi language builds and publishing Multi-language build, publish and deprecation Jul 12, 2018
@eladb eladb changed the title Multi-language build, publish and deprecation Multi-language build Jul 23, 2018
This was referenced Jul 23, 2018
RomainMuller added a commit that referenced this issue Jul 25, 2018
Fist step towards #73:
* Make `jsii-pacmak` produce a full maven project for each module being built
  + POM produces source & javadoc attachments
* Make `jsii-pacmak` build the resulting java project (unless `--only-source` is passed)
* Make `jsii-pacmak` publish the artifacts (or source if `--only-source` is passed) to the `--outdir`
* Associated changes in `jsii-java-runtime` and related compliance tests

Also, fixes #102
eladb pushed a commit that referenced this issue Jul 30, 2018
Added a few features to jsii-pacmak:

* --targets: allow specifying multiple targets when running pacmak.
* --recurse: build all dependencies.
* outdir and targets default to the values from package.json/jsii
* -v: print INFO messages
* -vv: print VERBOSE messages
* --no-clean: keep generated source code after build

Outputs will go to `outdir/target` if multiple targets are specified
or just `outdir` if only a single target is required.

When using --recurse, --outdir applies to all modules, which means
that all the artifacts will be emitted into the same output directory.
In this case if --outdir is not specified, each target's outdir
is respected (from package.json).

Java: if one of the dependencies of a module has a local output,
it will be added as a local maven repository, so it is now possible
to depend on a local build instead of always going to maven central.

Changes to calc test library:
* Added `sphinx` output to calc test modules.
* Changed groupId to com.amazonaws.jsii

Fixes #73
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants