Skip to content
Branch: master
Commits on May 8, 2019
  1. fix(jsii-diff): don't fail on new packages (#502)

    rix0rrr committed May 8, 2019
    When a new package is created, jsii-diff will try to download the
    previous package from NPM and then fail.
    Remember that the package doesn't exist upstream and fail silently
    in that case.
Commits on May 7, 2019
  1. fix(assembler): handle unknown types without crashing (#501)

    rix0rrr committed May 7, 2019
    After failing compilation we proceed with jsii analysis, to give as much
    information as possible in one go.
    However, some compilation failures lead to a lack of information that
    make the jsii analyzer crash, which ultimately leads jsii to fail with
    no more information than:
        Error: TypeError: Cannot read property 'getJsDocTags' of undefined
    Fix this in two ways:
    - First, detect the situation where this occurs and produce a more
      useful error message.
    - Guard against this happening in general by catching exceptions
      during type analysis and still printing the compilation errors.
Commits on Apr 24, 2019
  1. v0.10.3 (#477)

    rix0rrr committed Apr 24, 2019
Commits on Apr 23, 2019
  1. fix(python): maintain inheritance chain for structs (#482)

    rix0rrr committed Apr 23, 2019
    Because structs all inherit from TypedDict, and TypedDict erases the
    inheritance chain of structs, we have to maintain a copy of the
    inheritance hierarchy on the class objects, for later use during
    doc generation.
    This addresses (part of) #473.
  2. fix(jsii-diff): be nicer about validation errors (#481)

    rix0rrr committed Apr 23, 2019
    Potentially assembly validation errors throw up a giant error list.
    Have jsii-diff be more concise about the errors, which will be
    better for cdk-build-tools.
Commits on Apr 22, 2019
  1. fix(python): fix indentation for multiline bullets in RST generator (#…

    rix0rrr committed Apr 22, 2019
    Fixes #478.
  2. fix(java): fix illegal arguments passed to JavaDoc generator (#475)

    rix0rrr committed Apr 22, 2019
Commits on Apr 19, 2019
  1. feat(jsii-pacmak): add Python docstrings (#470)

    rix0rrr committed Apr 19, 2019
    Add support for docstrings to the Python generator.
Commits on Apr 18, 2019
  1. v0.10.2 (#472)

    rix0rrr committed Apr 18, 2019
Commits on Apr 17, 2019
  1. v0.10.1 (#469)

    rix0rrr committed Apr 17, 2019
  2. v0.10.0 (#462)

    rix0rrr committed Apr 17, 2019
Commits on Apr 16, 2019
  1. fix(jsii-reflect): don't load same assembly multiple times (#461)

    rix0rrr committed Apr 16, 2019
    deCDK tests were calling `loadModule()` for every package.
    `loadModule()` did have some recursion avoidance INSIDE one call,
    but not across multiple load calls on the same type system.
    This brings down the deCDK tests from 80s to 10s.
    Add an option to disable validation, which would bring the full CDK
    typesystem loading down from 10s to 600ms (validation is enabled
    by default).
    Some more type exposure updates so that we can update awslint
    and friends in the CDK repository to take advantage of the new
    jsii model.
    Also: change some JVM settings in pacmak to speed up Java build
    from around 30s to around 10s per package (on my machine, on
    my Oracle JVM, YYMV on OpenJDK).
Commits on Apr 15, 2019
  1. fix(jsii): flatten out dependency list (#454)

    rix0rrr committed Apr 15, 2019
    Stop deeply nesting dependency packages and their dependencies. All
    dependencies are now flattened to a single transitive dependency
    closure. This will save a lot of space and processing power in
    processing the assembly.
    Make jsii-reflect validate the schema (including the version). It wasn't doing that before!!
    Fixes #453.
  2. fix(dotnet): fix doc comment model parsing in .NET generator (#455)

    rix0rrr committed Apr 15, 2019
    Mirror the changes to assembly docs model in the separate model
    that the .NET generator maintains. This fixes the crash that
    happens when parsing a model with custom doc attributes.
    Add compliance test to prevent this from happening again.
  3. fix(jsii-spec): show deep validation errors (#452)

    rix0rrr authored and RomainMuller committed Apr 15, 2019
Commits on Apr 11, 2019
  1. fix(pacmak): fix Maven dependency collector. (#449)

    rix0rrr committed Apr 11, 2019
    Stop the Maven dependency collector from recursing into directories it's
    already seen. This avoids finding adding the same directories over and
    over again, which Maven subsequently can't deal with.
    Fixes #447, and probably the hanging build.
Commits on Apr 4, 2019
  1. fix(jsii): check that static and nonstatic members don't share a name (

    rix0rrr committed Apr 4, 2019
    This is not allowed in Java, and leads to compiler warnings in C#.
    Fixes #427.
  2. feat(jsii): record source locations in assembly (#429)

    rix0rrr committed Apr 4, 2019
  3. feat(jsii): check that referenced @params exist (#431)

    rix0rrr committed Apr 4, 2019
    Verify integrity of the documentation by forcing the parameter names
    referred to in @param declarations to actually exist. 
    Right now it's a WARNING, will be turned into an ERROR some time
    in the future. Scrub your sources!
    Fixes #422.
Commits on Apr 3, 2019
  1. feat(jsii-diff): standardize doc comments, add API compatibility tool (

    rix0rrr committed Apr 3, 2019
    Add parsing semantics for various common capabilities to doc comments
    (summary, remarks, stability and others).
    Add a tool uses stability annotations in the doc comments to check
    whether two JSII assemblies are API-compatible.
Commits on Mar 28, 2019
  1. fix(kernel): make type serialization explicit and recursive (#401)

    rix0rrr committed Mar 28, 2019
    Serialize and deserialize types according to their declared static type,
    and add validation on the runtime types matching the declared types.
    This is in contrast to previously, when we mostly only used the runtime
    types to determine what to do, and harly any validation was done. The
    runtime types used to be able to freely disagree with the declared
    types, and we put a lot of burden on the JSII runtimes at the other
    end of the wire.
    Fix tests that used to exercise the API with invalid arguments.
    Remove Proxy objects since they only existed to prevent accidentally
    overwriting certain keys via the jsii interface, and Symbols serve
    the same purpose (but simpler).
    Fixes awslabs/aws-cdk#1981.
Commits on Mar 20, 2019
  1. v0.8.0 (#394)

    rix0rrr committed Mar 20, 2019
Commits on Mar 7, 2019
  1. fix(jsii): prohibit exported const enums (#372)

    rix0rrr authored and RomainMuller committed Mar 7, 2019
    'const enums' are inlined at the usage site by TypeScript and so the
    generated type will not be in the JavaScript source code in the
    assembly, even though the declaration will be there.
    This leads to "symbol not found" errors upon trying to load it.
    Related: awslabs/aws-cdk#1969
Commits on Feb 14, 2019
  1. fix(jsii-pacmack): default to target directory mode (#363)

    rix0rrr committed Feb 14, 2019
    Always generate to `$root/dist/TARGET`, even when only
    generating one target. Don't double up on 'dotnet' name.
    This behavior works better
    for selectively building targets in a larger build that
    expects certain naming conventions.
  2. fix: Bump version of Jackson because of CVEs (#362)

    rix0rrr authored and eladb committed Feb 14, 2019
    Versions low than 2.9.8 have a number of CVEs filed against it.
  3. fix(jsii): detect double interface member declarations (#360)

    rix0rrr committed Feb 14, 2019
    In C# it's prohibited to declare an interface member
    that also exists in an inherited interface. Have jsii
    detect this illegal pattern.
    Strictly speaking, this only true if we don't overload,
    but since we don't support overloading anyway we just
    check on the member names, not the types.
    Fixes #340.
Commits on Feb 1, 2019
  1. fix: remove use of private API (#351)

    rix0rrr committed Feb 1, 2019
    Don't use the upstream private API function to turn a `CompilerHost` into a
    `ParseConfigHost` anymore; instead, I copied the implementation, which is
    simple enough.
    Fixes #350.
  2. feat(jsii): support multiple class declaration sites (#348)

    rix0rrr committed Feb 1, 2019
    Classes can have members added to them in multiple declarations.
    Combine all sites into a single class model.
Commits on Jan 3, 2019
  1. v0.7.13. (#344)

    rix0rrr committed Jan 3, 2019
    See for changes
  2. feat: add option to generate TypeScript project references (#343)

    rix0rrr committed Jan 3, 2019
    TypeScript project references bring down the compilation times of TypeScript projects
    in a monorepo (by avoiding repeated recompilation of the same files over and over again).
    They also allow a convenient "full rebuild" of the entire repository in a couple of seconds by running `tsc -b`.
    This change also introduces a cache when loading dependency JSII assemblies, so that repeated use of the same assembly isn't constantly being loaded and validated.
    Both of these changes bring compile times down drastically on the CDK repository (on my machine, a full rebuild goes from 16m down to 3m30).
    * Change webpack-command => webpack-cli, since the older one is deprecated (see and was giving me the following error: "TypeError: Path must be a string. Received undefined". Upgrading to webpack-cli fixed it.
Commits on Nov 9, 2018
  1. fix: accept variadic arguments after optional arguments (#307)

    rix0rrr committed Nov 9, 2018
    The following type signature is valid:
        function(optional?: string, ...args: string[])
    The function can be called with anywhere from 0-infinity arguments.
  2. fix: remove overly strict checks on peer versions (#306)

    rix0rrr committed Nov 9, 2018
    1) ProjectInfo was verifying that the specified version range in
       peerDependencies is exactly the same as the version range in regular
       dependencies. This is not necessary, the only requirement is that
       the actual concrete dependency version satisfies the peer dependency
       version (which is already checked in _loadDependencies).
    2) Assembler was verifying that the concrete version of a library found
       in dependencies was the same as that same concrete library found in
       peerDependencies. But since there's ever only one concrete copy of
       any dependency, this check can never fail.
Commits on Oct 23, 2018
  1. v0.7.8 (#273)

    rix0rrr committed Oct 23, 2018
    Bug Fixes
    * **jsii:** use base interfaces for 'datatype' property ([#265](#265)) ([1c56902](1c56902)), closes [#264](#264)
    * **jsii:** use default jsx compiler options ([#261](#261)) ([bf1f586](bf1f586)), closes [awslabs/aws-cdk#830](awslabs/aws-cdk#830)
    * match behavioral interface to 'I'-prefix ([#271](#271)) ([03103f3](03103f3))
    * require distinct argument and property names ([#272](#272)) ([4d2f268](4d2f268)), closes [#268](#268)
  2. fix: require distinct argument and property names (#272)

    rix0rrr committed Oct 23, 2018
    Restrict the usage of datatype parameters in functions, so that
    languages with keyword argument support can inline datatype parameters
    into the function declaration. This means it cannot share any field
    names with remaining function argument names.
    Fixes #268.
You can’t perform that action at this time.