Our combined changelog and roadmap. It contains todos as well as dones.
Only project-wide changes are mentioned here. For individual function changelogs, please refer to their respective Git histories.
Locutus does not follow SemVer as we're a work in progress - and even though we try, we cannot guarantee BC-safety for the hundreds of contributions across the many languages that Locutus is assimilating.
Instead, we recommend using version pinning, and inspect changes for the few particular functions you rely on when you upgrade.
Ideas that will be planned and find their way into a release at one point
- Address the 25 remaining test failures that are currently skipped (find out which ones via
npm run test:languages:noskip) - Compare example test cases for PHP against
php -rto make sure they are correctly mimicking the most recent stable behavior - Have one way of checking pure JS arrays vs PHP arrays (vs:
Object.prototype.toString.call(arr1) === '[object Array]',typeof retObj[p] === 'object',var asString = Object.prototype.toString.call(mixedVar) var asFunc = _getFuncName(mixedVar.constructor) if (asString === '[object Object]' && asFunc === 'Object') {) - Investigate if we can have one helper function for intersecting, and use that in all
array_*diff*andarray_*sort*functions. Refrain from usinglabels, which those functions currently still rely on - Investigate if we can have one helper function for sorting, and use that in all
*sort*functions - Investigate if we can have one helper function to resolve
Function/'function'/'Class::function'/[$object, 'function'], and use that inis_callable,array_walk,call_user_func_arrayetc. - Parse
requires with AST just like Browserify does. Then we can add dependencies back to website - Port a few more tricky/inter-depending Go functions
- Port a few more tricky/inter-depending Python functions
- Port a few more tricky/inter-depending Ruby functions
- website: Render authors server-side
- website: Fix the search functionality
Released: TBA. Diff.
- Switch from Travis CI to GitHub Actions
Released: 2019-06-12. Diff.
- functions: Community-contributed function improvements, see respective functions' changelogs in the Diff:
- ci: test Node.js 6, 8, 10 and 11 (#384)
- website: Fix code listing on locutus website (#379)
Released: 2018-09-07. Diff.
- functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.
Released: 2017-06-22. Diff.
- functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.
Released: 2017-02-23. Diff.
- Upgrade eslint and fix newly found issues accordingly
- functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.
Released: 2017-02-09. Diff.
- functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.
Released: 2016-06-16. Diff.
- Language fixes
Released: 2016-06-16. Diff.
- Cache node modules on Travis so we'll be less dependent on npm connectivity
Released: 2016-05-25. Diff.
- Upgrade depurar to 0.2.2, fixing an issue with the testwriter (@kukawski)
- Add the 'reimplemented by' and 'parts by' contributionKeys to the /authors website page
- Fix linting warnings when hacking on website by adding eslint dependencies locally
- Improve array_rand: Fix coding style, hangs when selected huge number of keys from huge array, function signature (@kukawski)
Released: 2016-05-22. Diff.
- Minor
util.jsrefactoring - Use hexo deploy instead of custom bash script to aid Windows compatibility
- Use cross-env and rimraf in build scripts to aid Windows compatibility
- Improve Travis auto-deployments (now using official deploy methods)
- Switch from locutusjs.io to locutus.io
- Triage all open issues and PRs
- Triage all open issues and PRs
- docs: Miscellaneous cosmetic updates
- website: Miscellaneous cosmetic updates
- website: Show languages & functions in profile sidebar
- website: Add social buttons
- website: Let Travis auto-deploy to gh-pages on master changes
- website: Use Hexo deploy vs bash script
Released: 2016-05-02. Diff.
- Don't use
filesin package.json as we don't ship all ofdistnow
Released: 2016-05-02. Diff.
- Don't use
binin package.json as we don't shipcli.js
Released: 2016-05-02. Diff.
- website: Add profile to sidebar
- Rename
_locutus_sharedto_helpers. Rename_locutus_shared_bcto_bc - website: Fix jumpy scrolling due to on the githubs
- website: DRY up add_more code
- website: About as homepage
- Transpile to ES5 before publishing to npm
- Add
estargetoption to all functions, setip2longtoes2015 - Change
fix(me)?andTodoto@todo - Replace single line
/**/comments with// - Enforce a 100 character line-length via eslint, and change all functions accordingly
- Do not pass values by reference via the
windowglobal, use e.g.countObj.valueanderrorObj.valueinstead - Have one way of getting an
inivalue and its default - Track all cases of
setTimeout, use them without window prefix. Removecodezreplace hack - Track all cases of XMLHttpRequest
- Test
is_arrayin-browser to see if therequireforini_getworks correctly with Browserify - Deprecate blocking ajax requests in e.g.
file_get_contents - Use native
sha1andmd5encoding when available - Remove XUL from functions
- Rename
strictForIntosortByReference - Remove
// (BEGIN|END) (STATIC|REDUNDANT) - Index all
notes - Either deprecate or document all functions using
evalornew Function - Port Util to ES6 class
- Write one function (
ip2long) in ES6 and make it pass tests & linting - Deprecate support for node_js: 0.8
- Make Travis fail on eslint issues
- Move CHANGELOG to own file
- Make all functions pass eslint with JavaScript Standard Style
- Remove
_workbenchand_experimental. They are available for reference in1.3.2but making them harder to find for newcomers should help avoid a lot of complaints - Move functions that overly rely on ini & locales & global & ajax file operations to _legacy
- Address ~50 test failures that were previously skipped and now enabled
-
json_*functions can leverage Node's - Add ES6 capabilities
- Adopt better global detection, use
$locutus.golang.<specifics> - Add more 'social' buttons to website (twitter, github)
- Rework injectweb after structural changes in util.js
- Use
requirefor dependencies - Remove
;from examples in accordance with JavaScript Standard Style - Use mocha for generating language tests
- Use require for dependencies
- In util.opener: First
*should point to the requesting/current language - Split out the npm module so you could do
var sprintf = require('locutus/sprintf') - Launch BC breaking blogpost
- Roll out support for Ruby, C, Go, Python
Released: April 4, 2016
- Start using a CHANGELOG https://github.com/locutusjs/locutus/releases/tag/v1.3.2