From 59a606047fe07a70b6f9ae398dcf76dbaef3adf1 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Mon, 27 Jan 2020 15:13:54 -0300 Subject: changelog for LuaRocks 3.3.0 --- CHANGELOG.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f161fcb4..ddd5f719 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,79 @@ -## What's new in LuaRocks 3.0 +## What's new in LuaRocks 3.3.0 + +### Features + +* **Dependency pinning** + * Adds a new flag called `--pin` which creates a `luarocks.lock` + when building a rock with `luarocks build` or `luarocks make`. + This lock file contains the exact version numbers of every + direct or indirect dependency of the rock (in other words, + it is the transitive closure of the dependencies.) + For `make`, the `luarocks.lock` file is created in the current + directory. + The lock file is also installed as part of the rock in + its metadata directory alongside its rockspec. + When using `--pin`, if a lock file already exists, it is + ignored and overwritten. + * When building a rock with `luarocks make`, if there is a + `luarocks.lock` file in the current directory, the exact + versions specified there will be used for resolving dependencies. + * When building a rock with `luarocks build`, if there is a + `luarocks.lock` file in root of its sources, the exact + versions specified there will be used for resolving dependencies. + * When installing a `.rock` file with `luarocks install`, if the + rock contains a `luarocks.lock` file (i.e., if its dependencies + were pinned with `--pin` when the rock was built), the exact + versions specified there will be used for resolving dependencies. +* Improved VM type detection to support moonjit +* git: Support for shallow recommendations +* Initial support for Windows on ARM +* Support for building 64-bit Windows all-in-one binary +* More filesystem debugging output when using `--verbose` (now it + reports operations even when using LuaFileSystem-backed implementations) +* `--no-manifest` flag for creating a package without updating the + manifest files +* `--no-doc` flag is now supported by `luarocks make` + +### Performance improvements + +* Speed up dependency checks +* Speed up installation and deletion when deploying files +* build: do not download sources when when building with `--only-deps` +* New flag `--check-lua-versions`: when a rock name is not found, only + checks for availability in other Lua versions if this flag is given + +### Fixes + +* safer rollback on installation failure +* config: fix `--unset` flag +* Fix command name invocations with dashes (e.g. `luarocks-admin make-manifest`) +* Fix fallback to PATH search when Lua interpreter is not configured +* Windows: support usernames with spaces +* Windows: fix generation of temporary filenames (#1058) +* Windows: force `.lib` over `.dll` extension when resolving `LUALIB` + +## What's new in LuaRocks 3.2.1 + +## What's new in LuaRocks 3.2.0 + +## What's new in LuaRocks 3.1.3 + +## What's new in LuaRocks 3.1.2 + +## What's new in LuaRocks 3.1.1 + +## What's new in LuaRocks 3.1.0 + +## What's new in LuaRocks 3.0.4 + +## What's new in LuaRocks 3.0.3 + +## What's new in LuaRocks 3.0.2 + +## What's new in LuaRocks 3.0.1 + +## What's new in LuaRocks 3.0.0 - [New rockspec format](#new-rockspec-format) - [New commands](#new-commands), including [luarocks init](https://github.com/luarocks/luarocks/wiki/Project:-LuaRocks-per-project-workflow) for per-project workflows -- cgit v1.2.3-55-g6feb From b6cb0c16a18789967ee71ceebf2819a2a6e8ca08 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 28 Jan 2020 12:50:03 -0300 Subject: changelog: add all entries in the 3.x series --- CHANGELOG.md | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd5f719..c6efcab6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,24 +55,161 @@ ## What's new in LuaRocks 3.2.1 +* fix installation of LuaRocks via rockspec (`make bootstrap` and +`luarocks install`): correct a problem in the initialization of the +luarocks.fs module and its interaction with the cfg module. +* fix luarocks build --pack-binary-rock --no-doc +* fix luarocks build --branch +* luarocks init: fix Lua wrapper for interactive mode +* fix compatibility issues with command add-ons loaded via +luarocks.cmd.external modules +* correct override of config values via CLI flags + ## What's new in LuaRocks 3.2.0 +LuaRocks 3.2.0 now uses argument parsing based on argparse +instead of a homegrown parser. This was implemented by Paul +Ouellette as his Google Summer of Code project, mentored by +Daurnimator. + +Release highlights: + +* Bugfix: luarocks path does not change the order of pre-existing path +items when prepending or appending to path variables +* Bugfix: fix directory detection on the Mac +* When building with --force-config, LuaRocks now never uses the +"project" directory, but only the forced configuration +* Lua libdir is now only checked for commands/platforms that really +need to link Lua explicitly +* LuaJIT is now detected dynamically +* RaptorJIT is now detected as a LuaJIT variant +* Improvements in Lua autodetection at runtime +* luarocks new_version: new option --dir +* luarocks which: report modules found via package.path and +package.cpath as well +* install.bat: Improved detection for Visual Studio 2017 and higher +* Bundled LuaSec in all-in-one binary bumped to version 0.8.1 + ## What's new in LuaRocks 3.1.3 +This is another bugfix release, that incldes a couple of fixes, +including better Lua detection, and fixes specific to MacOS and +FreeBSD. + ## What's new in LuaRocks 3.1.2 +This is again a small fix release. + ## What's new in LuaRocks 3.1.1 +This is a hotfix release fixing an issue that affected initialization +in some scenarios. + ## What's new in LuaRocks 3.1.0 +### More powerful `luarocks config` + +The `luarocks config` command used to only list the current +configuration. It is now able to query and also _set_ individual +values, like `git config`. You can now do things such as: + + luarocks config variables.OPENSSL_DIR /usr/local/openssl + luarocks config lua_dir /usr/local + luarocks config lua_version 5.3 + +and it will rewrite your luarocks configuration to store that value +for later reuse. Note that setting `lua_version` will make that Lua +version the default for `luarocks` invocations (you can always +override on a per-call basis with `--lua-version`. + +You can specify the scope where you will apply the configuration +change: system-wide, to the user's home config (with --local), or +specifically to a project, if you run the command from within a +project directory initialized with `luarocks init`. + +### New `--global` flag + +Some users prefer that LuaRocks default to system-wide installations, +some users prefer to install everything to their home directory. The +`local_by_default` configuration file controls this preference: when +it is off, the `--local` file triggers user-specific. Before 3.1.0 +there was no convenient way to trigger system-wide installations when +`local_by_default` was set to true. LuaRocks 3.1.0 adds a `--global` +flag to this purpose. To enable local-by-default, you can now do: + + luarocks config local_by_default true + +### `luarocks make` can deal with patches + +A rockspec can include embedded patch files, which are applied when a +source rock is built. Now, when you run `luarocks make` on a source +tree unpacked with `luarocks unpack`, the patches will be applied as +well (and a hidden lockfile is created to avoid the patches to be +re-applied incorrectly). + +### Smarter defaults when working with projects + +When working on a project initialized with `luarocks init`, the +presence of a ./.luarocks/config-5.x.lua file will be enough to detect +the project-based workflow and have `luarocks` default to that 5.x +version. That means the `./luarocks` wrapper becomes less necessary; +the `luarocks` from your $PATH will deal with the project just fine, +git-style. + +### And more! + +There are also other improvements. LuaRocks uses the manifest cache a +bit more aggressively, resulting in increased performance. Also, it no +longer complains with a warning message if the home cache cannot be +created (it just uses a temporary dir instead). And of course, the +release includes multiple bugfixes. + ## What's new in LuaRocks 3.0.4 +* Fork-free platform detection at startup +* Improved detection of the default rockspec in commands such as `luarocks test` +* Various minor bugfixes + ## What's new in LuaRocks 3.0.3 +LuaRocks 3.0.3 is a minor bugfix release, fixing a regression in +luarocks.loader introduced in 3.0.2. + ## What's new in LuaRocks 3.0.2 +* Improvements in luarocks init, new --reset flag +* write_rockspec: --lua-version renamed to --lua-versions +* Improved behavior in module autodetection +* Bugfixes in luarocks show +* Fix upgrade/downgrade when a single rock has clashing module +filenames (should fix the issue when downgrading luasec) +* Fix for autodetected external dependencies with non-alphabetic +characters (should fix the libstdc++ issue when installing xml) + + ## What's new in LuaRocks 3.0.1 +* Numerous bugfixes including: + * Handle missing global `arg` + * Fix umask behavior + * Do not overwrite paths in format 5.x.y when cleaning up path +variables (#868) + * Do not detect files under lua_modules as part of your sources +when running `luarocks write_rockspec` + * Windows: do not hardcode MINGW in the all-in-one binary: instead +it properly detects when running from a Visual Studio Developer +Console and uses that compiler instead + * configure: --sysconfdir was fixed to its correct meaning: it now +defaults to /etc and not /etc/luarocks (`/luarocks` is appended to the +value of sysconfdir) + * configure: fixed --force-config +* Store Lua location in config file, so that a user can run `luarocks +init --lua-dir=/my/lua/location` and have that location remain active +for that project +* Various improvements to the Unix makefile, including $(DESTDIR) +support and an uninstall rule +* Autodetect FreeBSD-style include paths (/usr/include/lua5x/) + ## What's new in LuaRocks 3.0.0 - [New rockspec format](#new-rockspec-format) -- cgit v1.2.3-55-g6feb From 4f66ca5d0d77e3f7cdd175ede54ba2851a5819a9 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 28 Jan 2020 12:58:21 -0300 Subject: Release: 3.3.0 --- appveyor.yml | 4 ++-- configure | 4 ++-- install.bat | 2 +- luarocks-3.3.0-1.rockspec | 37 +++++++++++++++++++++++++++++++++++++ luarocks-dev-1.rockspec | 36 ------------------------------------ publishrelease | 7 +++++-- src/luarocks/core/cfg.lua | 4 ++-- 7 files changed, 49 insertions(+), 45 deletions(-) create mode 100644 luarocks-3.3.0-1.rockspec delete mode 100644 luarocks-dev-1.rockspec diff --git a/appveyor.yml b/appveyor.yml index 6a4f9417..4ab66669 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 3.0.0.{build}-test +version: 3.3.0.{build}-test shallow_clone: true @@ -6,7 +6,7 @@ matrix: fast_finish: true environment: - LUAROCKS_VER: 3.0.0 + LUAROCKS_VER: 3.3.0 matrix: # Lua 5.1 tests diff --git a/configure b/configure index 5deb44be..99dccba4 100755 --- a/configure +++ b/configure @@ -308,7 +308,7 @@ do # -------------------------------- --versioned-rocks-dir) echo "--versioned-rocks-dir is no longer necessary." - echo "The rocks tree in LuaRocks 3.0 is always versioned." + echo "The rocks tree in LuaRocks 3.x is always versioned." ;; --lua-suffix) echo "--lua-suffix is no longer necessary." @@ -323,7 +323,7 @@ do done echo -BLUE "Configuring LuaRocks version dev..." +BLUE "Configuring LuaRocks version 3.3.0..." echo echo diff --git a/install.bat b/install.bat index 06d8348c..0b953671 100644 --- a/install.bat +++ b/install.bat @@ -6,7 +6,7 @@ local vars = {} vars.PREFIX = nil -vars.VERSION = "3.0" +vars.VERSION = "3.3" vars.SYSCONFDIR = nil vars.CONFBACKUPDIR = nil vars.SYSCONFFILENAME = nil diff --git a/luarocks-3.3.0-1.rockspec b/luarocks-3.3.0-1.rockspec new file mode 100644 index 00000000..20ad83fa --- /dev/null +++ b/luarocks-3.3.0-1.rockspec @@ -0,0 +1,37 @@ +rockspec_format = "3.0" +package = "luarocks" +version = "3.3.0-1" +source = { + url = "git+https://github.com/luarocks/luarocks", + tag = "v3.3.0", +} +description = { + summary = "A package manager for Lua modules.", + detailed = [[ + LuaRocks allows you to install Lua modules as self-contained + packages called "rocks", which also contain version dependency + information. This information is used both during installation, + so that when one rock is requested all rocks it depends on are + installed as well, and at run time, so that when a module is + required, the correct version is loaded. LuaRocks supports both + local and remote repositories, and multiple local rocks trees. + ]], + homepage = "http://www.luarocks.org", + issues_url = "https://github.com/luarocks/luarocks/issues", + maintainer = "Hisham Muhammad", + license = "MIT", +} +test_dependencies = { + "luacov", +} +test = { + type = "busted", + platforms = { + windows = { + flags = { "--exclude-tags=ssh,git,unix" } + }, + unix = { + flags = { "--exclude-tags=ssh,git" } + } + } +} diff --git a/luarocks-dev-1.rockspec b/luarocks-dev-1.rockspec deleted file mode 100644 index a1f30ef4..00000000 --- a/luarocks-dev-1.rockspec +++ /dev/null @@ -1,36 +0,0 @@ -rockspec_format = "3.0" -package = "luarocks" -version = "dev-1" -source = { - url = "git+https://github.com/luarocks/luarocks", -} -description = { - summary = "A package manager for Lua modules.", - detailed = [[ - LuaRocks allows you to install Lua modules as self-contained - packages called "rocks", which also contain version dependency - information. This information is used both during installation, - so that when one rock is requested all rocks it depends on are - installed as well, and at run time, so that when a module is - required, the correct version is loaded. LuaRocks supports both - local and remote repositories, and multiple local rocks trees. - ]], - homepage = "http://www.luarocks.org", - issues_url = "https://github.com/luarocks/luarocks/issues", - maintainer = "Hisham Muhammad", - license = "MIT", -} -test_dependencies = { - "luacov", -} -test = { - type = "busted", - platforms = { - windows = { - flags = { "--exclude-tags=ssh,git,unix" } - }, - unix = { - flags = { "--exclude-tags=ssh,git" } - } - } -} diff --git a/publishrelease b/publishrelease index 2e635bea..dc5e673c 100755 --- a/publishrelease +++ b/publishrelease @@ -25,6 +25,8 @@ git checkout v$v || { packages=( luarocks-$v-windows-32.zip luarocks-$v-windows-32.zip.asc + luarocks-$v-windows-64.zip + luarocks-$v-windows-64.zip.asc luarocks-$v-linux-x86_64.zip luarocks-$v-linux-x86_64.zip.asc luarocks-$v-win32.zip @@ -88,7 +90,8 @@ gawk ' print "" print "" print "luarocks-'$v'.tar.gzPGP signature" - print "luarocks-'$v'-windows-32.zip (luarocks.exe stand-alone Windows binary)PGP signature" + print "luarocks-'$v'-windows-32.zip (luarocks.exe stand-alone Windows 32-bit binary)PGP signature" + print "luarocks-'$v'-windows-64.zip (luarocks.exe stand-alone Windows 64-bit binary)PGP signature" print "luarocks-'$v'-linux-x86_64.zip (luarocks stand-alone Linux x86_64 binary)PGP signature" print "luarocks-'$v'-win32.zip (legacy Windows package, includes Lua 5.1)PGP signature" done = 1 @@ -116,7 +119,7 @@ gawk ' print "{" print "\"'$v'\": {" print "\"date\": \"'$(date +'%Y-%m-%d')'\"," - print "\"files\": [\"luarocks-'$v'.tar.gz\", \"luarocks-'$v'.tar.gz.asc\", \"luarocks-'$v'-win32.zip\", \"luarocks-'$v'-win32.zip.asc\", \"luarocks-'$v'-windows-32.zip\", \"luarocks-'$v'-windows-32.zip.asc\", \"luarocks-'$v'-linux-x86_64.zip\", \"luarocks-'$v'-linux-x86_64.zip.asc\"]," + print "\"files\": [\"luarocks-'$v'.tar.gz\", \"luarocks-'$v'.tar.gz.asc\", \"luarocks-'$v'-win32.zip\", \"luarocks-'$v'-win32.zip.asc\", \"luarocks-'$v'-windows-32.zip\", \"luarocks-'$v'-windows-32.zip.asc\", \"luarocks-'$v'-windows-64.zip\", \"luarocks-'$v'-windows-64.zip.asc\", \"luarocks-'$v'-linux-x86_64.zip\", \"luarocks-'$v'-linux-x86_64.zip.asc\"]," print "\"about\": []" print "}}," } diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua index b3561422..5e95feeb 100644 --- a/src/luarocks/core/cfg.lua +++ b/src/luarocks/core/cfg.lua @@ -19,8 +19,8 @@ local sysdetect = require("luarocks.core.sysdetect") -------------------------------------------------------------------------------- -local program_version = "dev" -local program_series = "3.0" +local program_version = "3.3.0" +local program_series = "3.3" local major_version = (program_version:match("([^.]%.[^.])")) or program_series local is_windows = package.config:sub(1,1) == "\\" -- cgit v1.2.3-55-g6feb