Skip to content

Latest commit

 

History

History
229 lines (166 loc) · 9.84 KB

CHANGELOG.md

File metadata and controls

229 lines (166 loc) · 9.84 KB

Changelog

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.

Backlog

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 yarn test:languages:noskip)
  • Compare example test cases for PHP against php -r to 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* and array_*sort* functions. Refrain from using labels, 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 in is_callable, array_walk, call_user_func_array etc.
  • 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

main

Released: TBA. Diff.

  • [ ]

v2.0.32

Released: 2024-04-05. Diff.

  • Update intro and add to the NPM module as a README.md

v2.0.31

Released: 2024-04-05. Diff.

  • dx: Add use strict to generated tests
  • dx: Add Stale Action
  • file_exists: Introduced (in #461, thx @erikn69)
  • strtotime: Add support oracle dates (fixes #340)
  • bin2hex: Add support for multi-byte characters (fixes #427)
  • var_dump: Detect circular references (fixes #305)
  • escapeshellarg: Add Windows support (fixes #395)
  • fmod: Fix Uncaught RangeError: toFixed() digits argument must be between 0 and 100 (thx @dekairi, fixes #417)

v2.0.30

Released: 2024-04-05. Diff.

  • Relax yarn engine requirement (fixes #467)
  • Allow for custom mocha tests for functions (that arent generated based on header comments)

v2.0.29

Released: 2024-04-04. Diff.

  • Fix issue #458: unserialize fails when serialized array contains (@kukawski)
  • dx: Switch from master -> main branch
  • dx: Upgrade to Yarn 4 managed by Corepack
  • dx: Add testing for Node 20
  • dx: Add prettier & upgrade ESLint & StandardJS
  • dx: Upgrade Hexo to latest
  • dx: Clarify contributing docs
  • dx: Allow all core contributors to cut NPM releases by pushing Git tags (GHA CI handles the rest)
  • dx: Upgrade all remaining dependencies

v2.0.16

Released: 2019-06-12. Diff.

  • Switch from Travis CI to GitHub Actions
  • Fix ReDOS on IPv6
  • Basic timezone support in strtotime

v2.0.11

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)

v2.0.10

Released: 2018-09-07. Diff.

  • functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.9

Released: 2017-06-22. Diff.

  • functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.8

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.

v2.0.7

Released: 2017-02-09. Diff.

  • functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.6

Released: 2016-06-16. Diff.

  • Language fixes

v2.0.5

Released: 2016-06-16. Diff.

  • Cache node modules on Travis so we'll be less dependent on npm connectivity

v2.0.4

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)

v2.0.3

Released: 2016-05-22. Diff.

  • Minor util.js refactoring
  • 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 main changes
  • website: Use Hexo deploy vs bash script

v2.0.2

Released: 2016-05-02. Diff.

  • Don't use files in package.json as we don't ship all of dist now

v2.0.1

Released: 2016-05-02. Diff.

  • Don't use bin in package.json as we don't ship cli.js

v2.0.0

Released: 2016-05-02. Diff.

  • website: Add profile to sidebar
  • Rename _locutus_shared to _helpers. Rename _locutus_shared_bc to _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 estarget option to all functions, set ip2long to es2015
  • Change fix(me)? and Todo to @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 window global, use e.g. countObj.value and errorObj.value instead
  • Have one way of getting an ini value and its default
  • Track all cases of setTimeout, use them without window prefix. Remove codez replace hack
  • Track all cases of XMLHttpRequest
  • Test is_array in-browser to see if the require for ini_get works correctly with Browserify
  • Deprecate blocking ajax requests in e.g. file_get_contents
  • Use native sha1 and md5 encoding when available
  • Remove XUL from functions
  • Rename strictForIn to sortByReference
  • Remove // (BEGIN|END) (STATIC|REDUNDANT)
  • Index all notes
  • Either deprecate or document all functions using eval or new 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 _workbench and _experimental. They are available for reference in 1.3.2 but 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 require for 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

v1.3.2

Released: April 4, 2016