Skip to content

Releases: prezi/spaghetti

3.0-pre-2

10 Mar 15:41
Compare
Choose a tag to compare
3.0-pre-2 Pre-release
Pre-release
  • Slimmed down code generation for TypeScript
  • Add const struct names to obfuscation-protected symbols

3.0-pre-1

08 Feb 10:50
Compare
Choose a tag to compare
3.0-pre-1 Pre-release
Pre-release
  • Added support for direct dependency on JavaScript sources as 'external
    dependency'
  • Added support for enum members with explicitly assigned values
  • Extracted API from spaghetti-core
  • Enum members in direct dependency proxies are defined by reference
    to the original implementation instead of locally for improved
    robustness against modular compilation.

Breaking Changes

  • Revised syntax for improved legibility
  • Values for enums and consts from transitive dependencies are no longer
    generated
  • Removed Kotlin support

2.1

21 Apr 10:16
Compare
Choose a tag to compare

Release Notes

TBD

2.1-rc-1

21 Apr 10:26
Compare
Choose a tag to compare
2.1-rc-1 Pre-release
Pre-release
Release 2.1 RC 1

2.1-alpha-2

06 Nov 18:30
Compare
Choose a tag to compare
2.1-alpha-2 Pre-release
Pre-release
Kotlin fixes

2.1-alpha-1

06 Nov 14:39
Compare
Choose a tag to compare
2.1-alpha-1 Pre-release
Pre-release

Release Notes

  • Kotlin JS support

2.0

22 Sep 06:29
Compare
Choose a tag to compare
2.0

Release Notes

Spaghetti has been reworked quite a bit for this release. It should be much simpler and more versatile than before.

Major changes:

  • New command-line tool
  • Support for both AMD and CommonJS packaging, modules are stored in a packaging-agnostic format
  • Constant values are now specified in the module definition, and can only have primitive values
  • Only directly dependent modules' methods are accessible from a module (defined types, enums and constants are available transitively)
  • Lots of documentation
  • Cleaned up the process of creating modules and packaging them into applications
  • structs can have methods

Minor additions:

  • Module bundles can be a directory or a ZIP (similar to how Java handles JARs)
  • The new processSpaghettiResources task works like processResources in JVM plugins
  • ANTLR lexer syntax errors are now reported with the location they happened in, and they fail the build

A new package (RC2)

01 Jun 22:58
Compare
Choose a tag to compare
A new package (RC2) Pre-release
Pre-release

Release Notes

Spaghetti has been reworked quite a bit for this release. It should be much simpler and more versatile than before.

Major changes:

  • AST based parsing enables reporting errors in module definitions precisely

A New Package (RC1)

27 May 14:32
Compare
Choose a tag to compare
A New Package (RC1) Pre-release
Pre-release

Release Notes

Spaghetti has been reworked quite a bit for this release. It should be much simpler and more versatile than before.

Major changes:

  • Simplified naming when implementing modules

    • If you are implementing a module called MyModule, you need to create a class like this:

      class MyModule implements IMyModule { /* ... */ }
  • Unit testing support has been greatly improved, especially for TypeScript.

  • Support for static module methods

  • Module bundles now contain raw JS code wrapped in a __spaghetti() closure

    • There is no dependency on RequireJs anymore.
    • If you want something that works with AMD or CommonJS, you need to package the module or application with PackageModule or PackageApplication.
    • Gone are the Wrap and ExtractModules tasks, too.
  • Constant values are now specified in the module definition, and can only have primitive values:

    const MyConstants {
        int NUM = 1
        string WHO = "me"
    }
    
  • Only directly dependent modules are accessible from a module (we simply don't generate an accessor interface/proxy)

    • Defined types, enums and constants are still available (we do generate those types)

Minor additions:

  • Module bundles can be a directory or a ZIP
  • Module and application packaging names have been cleaned up:
    • BundleModule creates a directory with the module bundle contents in it, which are independent of packaging
    • PackageApplication makes a package of the application to be used with AMD or CommonJS
    • PackageModule makes a package of a single module bundle to be used with AMD or CommonJS
  • The new processSpaghettiResources task works like processResources in JVM plugins.
  • TypeScript now checks constructor arguments
  • Added lots of tests
  • ANTLR lexer syntax errors are now reported with the location they happened in, and they fail the build.

1.4.9

12 May 09:47
Compare
Choose a tag to compare

Release Notes

Minor fixes:

  • Spaghetti.getResourceUrl() is obfuscation-safe now (see #84)

Change log: 1.4.8...1.4.9