This release succeeds v0.2.8, which was released 15 July, 2016. There are no backwards-incompatible changes, but certain default behaviors have changed (see changes below). Support continues for ECMAScript 3+.
Changes between 0.2.8 and 0.2.9
-------------------------------
This release contains a number of bugfixes for traits, which is stable but
still under development:
I apologize for the (extreme) delay in this release: the process was stalled for many months while waiting for certain legal documents after my employer was purchased by another company.
Release notes for past releases are available at:
https://www.gnu.org/software/easejs/release-notes.html
More information, including an online manual, can be found on GNU's website:
https://gnu.org/software/easejs
This is a minor release introducing transparent Error subtyping.
This release succeeds v0.2.7, which was released 26 October, 2015. There are no backwards-incompatible changes; support continues for ECMAScript 3+.
Changes between 0.2.7 and 0.2.8:
* Transparent Error subtyping
- Extending an ECMAScript Error constructor will transparently produce a Error subtype that performs all necessary boilerplate and strips itself from the stack trace. See manual for more information.
- Manual changes:
- Added "Error Subtyping" section.
- Removed recommendation to always use `public' keyword when defining public methods (which is the default), and warning that it might be required in the future. Omitting is fine (and preferred by some).
- Added "Class Caveats" section; documented `this.__inst'.
Release notes for past releases are available at:
https://www.gnu.org/software/easejs/release-notes.html
More information, including an online manual, can be found on GNU's website:
https://gnu.org/software/easejs
This is a minor release introducing additional features for classes and
traits.
This release succeeds v0.2.6, which was released 14 August, 2015. There are
no backwards-incompatible changes; support continues for ECMAScript 3+.
Changes between 0.2.6 and 0.2.7:
* ES6-style constructor method supported.
- Directly invoking the easejs object with a constructor will now perform
the equivalent of a Class.extend( ctor, {} ).
- Documentation now compiles with Texinfo 5.2.
Trait support is currently under development and will be undocumented
until v0.3.0; it is included here as a preview. The implementation is
stable and comprehensively tested, but is incomplete (see TODO).
* [preview] Traits can now override public and protected methods of class
supertypes.
- [preview] Error now provided when attempting to declare a mixin that is
not a trait.
GNU ease.js 0.2.6 released [stable]
This is a minor release, focusing on a single compatibility issue.
This release succeeds v0.2.5, which was released 28 May, 2015. There are no
backwards-incompatible changes; support continues for ECMAScript 3+.
Changes between 0.2.5 and 0.2.6:
* `require` paths in index.js changed to be compatible with Browserify
- Browserify will now properly recognize all require'd modules;
previously, it was halting after processing only index.js.
Historical release notes are available at:
https://www.gnu.org/software/easejs/release-notes.html
Getting GNU ease.js
-------------------
Here are the compressed sources and a GPG detached signature[*]:
https://ftp.gnu.org/gnu/easejs/easejs-0.2.6.tar.gz
https://ftp.gnu.org/gnu/easejs/easejs-0.2.6.tar.gz.sig
Alternative download options are available at:
http://www.gnu.org/software/easejs/download.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify easejs-0.2.6.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 8EE30EAB
and rerun the 'gpg --verify' command.
This is a feature release, focused primarily on the continued development of traits.
This release succeeds v0.2.4, which was released 07 Aug, 2014. There are no
backwards-incompatible changes; support continues for ECMAScript 3+.
Changes between 0.2.4 and 0.2.5:
- [doc] Manual has been updated to reflect an implementation detail that
causes `this.__super` to remain in scope after a call to a private
method.
- This is not a bug, but is undefined behavior.
Trait support is currently under development and will be undocumented
until v0.3.0; it is included currently as a preview and is functional and
comprehensively tested, but is incomplete. For a list of outstanding
tasks, see `README.traits`.
* [preview] Traits may now "extend" classes.
- Extending a class C denotes compatibility with C's interface: the
trait may then only be mixed into C or its subtypes.
- Extending traits is not yet supported, but will be in the next
release.
- Releated test cases:
- test/Trait/{Abstract,ClassExtend}Test.js
- [preview] Staging object returned by `#use` calls---representing an
eventual mixin---now statisfy the `Class.isClass` predicate.
Examples of Trait use can be found in the extensive test cases (test/Trait)
and in the resources found on the ease.js homepage:
https://www.gnu.org/software/easejs/#traits
Historical release notes are available at:
https://www.gnu.org/software/easejs/release-notes.html
Getting GNU ease.js
-------------------
Here are the compressed sources and a GPG detached signature[*]:
https://ftp.gnu.org/gnu/easejs/easejs-0.2.5.tar.gz
https://ftp.gnu.org/gnu/easejs/easejs-0.2.5.tar.gz.sig
Alternative download options are available at:
http://www.gnu.org/software/easejs/download.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify easejs-0.2.5.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 8EE30EAB
and rerun the 'gpg --verify' command.
Free Your JavaScript!
---------------------
<http://www.gnu.org/software/easejs/whyfreejs.html>
See the FSF's Free JavaScript Campaign at
<https://fsf.org/campaigns/freejs>.
Are you a JavaScript developer? Consider joining the campaign's JavaScript
Developers Task Force mailing list at
<https://lists.gnu.org/mailman/listinfo/js-devs-task-force>.
About GNU ease.js
-----------------
GNU ease.js is a classical object-oriented framework for JavaScript,
intended to eliminate boilerplate code and "ease" the transition into
JavaScript from other object-oriented languages. Features include simple and
intuitive class definitions; classical inheritance; abstract classes and
methods; traits as mixins; interfaces; public, protected, and private access
modifiers; static and constant members; and more. Please see the
comprehensive documentation at
<https://www.gnu.org/software/easejs/manual.html> for more information,
examples, and implementation details.
This is a maintenance release correcting a number of bugs---most of which were introduced in v0.2.3---addressing primarily ECMAScript 3 incompatibilities. Users needing to support ES3 environments (notably, IE<=8) should consider v0.2.3 to be broken.
v0.2.3 was released last week on Jul 28.
Changes between 0.2.3 and 0.2.4:
Trait support is currently under development and will be undocumented until v0.3.0; it is included currently as a preview and is functional and comprehensively tested, but incomplete.
- [preview] [bugfix] Non-argument traits now apply an empty array to `__mixin` instead of `undefined`, which is unsupported by ES3
This is the fourth release of the 0.2 series as part of the GNU project; it is primarily a maintenance release, but does introduce a significant (preview and undocumented) feature---parameterized traits. A generic `super` method has also been added to satisfy more sophisticated subtyping that `__super` alone cannot handle.
Changes between 0.2.2 and 0.2.3:
Trait support is currently under development and will be undocumented until v0.3.0; it is included currently as a preview and is functional and comprehensively tested, but incomplete.
This is a maintenance release for the 0.2.0 series, including performance enhancements and copyright assignment to the FSF. The copyright assignment will allow the Free Software Foundation to enforce the project licenses and ensures that GNU ease.js will always remain free (as in freedom).
[Release announcement originally sent 17 Apr 2014.]
Changes between 0.2.0 and 0.2.1:
Thanks to Donald Robertson III for his help and guidance during the copyright assignment process.
I am pleased to announce version 0.2.0 of GNU ease.js, the first of many releases as part of the GNU project. This release contains exciting new features, a couple bug fixes, and extensive test case cleanup. The project has also been relicensed under the GNU GPLv3+ to help in the fight against non-free JavaScript (detailed below).
[This is a copy of a portion of the release announcement that went out to info-gnu and info-easejs on 16 Mar 2014; sorry for the delay!]
Changes between 0.1.1 and 0.2.0:
The project's new home is now at <https://www.gnu.org/software/easejs>; easejs.org now redirects to the appropriate page, and so you should not need to update your bookmarks.
[For more information on the FSF's Free JavaScript campaign, please see <http://www.gnu.org/philosophy/javascript-trap.html>.]
Web pages increasingly include JavaScript code, which raises the same ethical concerns as software written in any other language: Non-free JavaScript can rob you of your right to study, modify, and share the software that you are running. Unlike traditional software, JavaScript usually enters your machine without prompting and often without your knowledge---the simple act of visiting a web page may install and execute a non-free program within your web browser.
JavaScript provides an often frictionless cross-platform distribution mechanism that can be exploited without your permission; this amplifies the effects of some of the most insidious anti-features, such as spying on your activities and tracking your movements. If a web page executes non-free code, how are you able to audit it (or have someone else do so on your behalf) to ensure that it is not malicious? Further, how are you or others able to modify the software to remove the malicious code? (Unfortunately, the latter can be complicated even with free JavaScript, but it can be done.)
But non-malicious programs sometimes need changes too. You deserve control over all software that runs on your computer; why should you sacrifice this freedom simply because JavaScript creates the illusion of remote execution?
How many web sites have you visited today that download JavaScript onto your computer? How many of them respect your freedoms? I chose to license ease.js under the GPLv3+ because I believe that non-free JavaScript should be eliminated, not enabled. Please help to spread the word and join me in writing free JavaScript; without it, we will have an Internet that is locked away from free software users; this is not the spirit in which the Internet was created.
More information on the JavaScript trap is available here:
<http://www.gnu.org/philosophy/javascript-trap.html>.
To join in on the FSF's Free JavaScript campaign:
<https://fsf.org/campaigns/freejs>
More information on free software and its freedoms:
<http://www.gnu.org/philosophy/free-sw.html>
Special thanks to Brandon Invergo for his help during the GNU submission process and for his auto{conf,make} advice and patches; RMS for extensive proofreading and advice on "The Importance of Making JavaScript Code Free"; and the many others at the FSF and GNU Project that were involved in this process.
All open tasks have been moved from the Mantis installation at easejs.org to Savannah. Note that most completed tasks have not been copied over. Also note that numbers have changed, so commit messages referencing certain numbers may no longer make sense (unfortunately).
easejs.org/bugs will now redirect to the ease.js project page on Savannah.