aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md213
-rw-r--r--appveyor.yml4
-rwxr-xr-xconfigure4
-rw-r--r--install.bat2
-rw-r--r--luarocks-dev-1.rockspec (renamed from luarocks-3.3.0-1.rockspec)3
-rwxr-xr-xpublishrelease7
-rw-r--r--src/luarocks/core/cfg.lua4
7 files changed, 11 insertions, 226 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c6efcab6..f161fcb4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,216 +1,5 @@
1 1
2## What's new in LuaRocks 3.3.0 2## What's new in LuaRocks 3.0
3
4### Features
5
6* **Dependency pinning**
7 * Adds a new flag called `--pin` which creates a `luarocks.lock`
8 when building a rock with `luarocks build` or `luarocks make`.
9 This lock file contains the exact version numbers of every
10 direct or indirect dependency of the rock (in other words,
11 it is the transitive closure of the dependencies.)
12 For `make`, the `luarocks.lock` file is created in the current
13 directory.
14 The lock file is also installed as part of the rock in
15 its metadata directory alongside its rockspec.
16 When using `--pin`, if a lock file already exists, it is
17 ignored and overwritten.
18 * When building a rock with `luarocks make`, if there is a
19 `luarocks.lock` file in the current directory, the exact
20 versions specified there will be used for resolving dependencies.
21 * When building a rock with `luarocks build`, if there is a
22 `luarocks.lock` file in root of its sources, the exact
23 versions specified there will be used for resolving dependencies.
24 * When installing a `.rock` file with `luarocks install`, if the
25 rock contains a `luarocks.lock` file (i.e., if its dependencies
26 were pinned with `--pin` when the rock was built), the exact
27 versions specified there will be used for resolving dependencies.
28* Improved VM type detection to support moonjit
29* git: Support for shallow recommendations
30* Initial support for Windows on ARM
31* Support for building 64-bit Windows all-in-one binary
32* More filesystem debugging output when using `--verbose` (now it
33 reports operations even when using LuaFileSystem-backed implementations)
34* `--no-manifest` flag for creating a package without updating the
35 manifest files
36* `--no-doc` flag is now supported by `luarocks make`
37
38### Performance improvements
39
40* Speed up dependency checks
41* Speed up installation and deletion when deploying files
42* build: do not download sources when when building with `--only-deps`
43* New flag `--check-lua-versions`: when a rock name is not found, only
44 checks for availability in other Lua versions if this flag is given
45
46### Fixes
47
48* safer rollback on installation failure
49* config: fix `--unset` flag
50* Fix command name invocations with dashes (e.g. `luarocks-admin make-manifest`)
51* Fix fallback to PATH search when Lua interpreter is not configured
52* Windows: support usernames with spaces
53* Windows: fix generation of temporary filenames (#1058)
54* Windows: force `.lib` over `.dll` extension when resolving `LUALIB`
55
56## What's new in LuaRocks 3.2.1
57
58* fix installation of LuaRocks via rockspec (`make bootstrap` and
59`luarocks install`): correct a problem in the initialization of the
60luarocks.fs module and its interaction with the cfg module.
61* fix luarocks build --pack-binary-rock --no-doc
62* fix luarocks build --branch
63* luarocks init: fix Lua wrapper for interactive mode
64* fix compatibility issues with command add-ons loaded via
65luarocks.cmd.external modules
66* correct override of config values via CLI flags
67
68## What's new in LuaRocks 3.2.0
69
70LuaRocks 3.2.0 now uses argument parsing based on argparse
71instead of a homegrown parser. This was implemented by Paul
72Ouellette as his Google Summer of Code project, mentored by
73Daurnimator.
74
75Release highlights:
76
77* Bugfix: luarocks path does not change the order of pre-existing path
78items when prepending or appending to path variables
79* Bugfix: fix directory detection on the Mac
80* When building with --force-config, LuaRocks now never uses the
81"project" directory, but only the forced configuration
82* Lua libdir is now only checked for commands/platforms that really
83need to link Lua explicitly
84* LuaJIT is now detected dynamically
85* RaptorJIT is now detected as a LuaJIT variant
86* Improvements in Lua autodetection at runtime
87* luarocks new_version: new option --dir
88* luarocks which: report modules found via package.path and
89package.cpath as well
90* install.bat: Improved detection for Visual Studio 2017 and higher
91* Bundled LuaSec in all-in-one binary bumped to version 0.8.1
92
93## What's new in LuaRocks 3.1.3
94
95This is another bugfix release, that incldes a couple of fixes,
96including better Lua detection, and fixes specific to MacOS and
97FreeBSD.
98
99## What's new in LuaRocks 3.1.2
100
101This is again a small fix release.
102
103## What's new in LuaRocks 3.1.1
104
105This is a hotfix release fixing an issue that affected initialization
106in some scenarios.
107
108## What's new in LuaRocks 3.1.0
109
110### More powerful `luarocks config`
111
112The `luarocks config` command used to only list the current
113configuration. It is now able to query and also _set_ individual
114values, like `git config`. You can now do things such as:
115
116 luarocks config variables.OPENSSL_DIR /usr/local/openssl
117 luarocks config lua_dir /usr/local
118 luarocks config lua_version 5.3
119
120and it will rewrite your luarocks configuration to store that value
121for later reuse. Note that setting `lua_version` will make that Lua
122version the default for `luarocks` invocations (you can always
123override on a per-call basis with `--lua-version`.
124
125You can specify the scope where you will apply the configuration
126change: system-wide, to the user's home config (with --local), or
127specifically to a project, if you run the command from within a
128project directory initialized with `luarocks init`.
129
130### New `--global` flag
131
132Some users prefer that LuaRocks default to system-wide installations,
133some users prefer to install everything to their home directory. The
134`local_by_default` configuration file controls this preference: when
135it is off, the `--local` file triggers user-specific. Before 3.1.0
136there was no convenient way to trigger system-wide installations when
137`local_by_default` was set to true. LuaRocks 3.1.0 adds a `--global`
138flag to this purpose. To enable local-by-default, you can now do:
139
140 luarocks config local_by_default true
141
142### `luarocks make` can deal with patches
143
144A rockspec can include embedded patch files, which are applied when a
145source rock is built. Now, when you run `luarocks make` on a source
146tree unpacked with `luarocks unpack`, the patches will be applied as
147well (and a hidden lockfile is created to avoid the patches to be
148re-applied incorrectly).
149
150### Smarter defaults when working with projects
151
152When working on a project initialized with `luarocks init`, the
153presence of a ./.luarocks/config-5.x.lua file will be enough to detect
154the project-based workflow and have `luarocks` default to that 5.x
155version. That means the `./luarocks` wrapper becomes less necessary;
156the `luarocks` from your $PATH will deal with the project just fine,
157git-style.
158
159### And more!
160
161There are also other improvements. LuaRocks uses the manifest cache a
162bit more aggressively, resulting in increased performance. Also, it no
163longer complains with a warning message if the home cache cannot be
164created (it just uses a temporary dir instead). And of course, the
165release includes multiple bugfixes.
166
167## What's new in LuaRocks 3.0.4
168
169* Fork-free platform detection at startup
170* Improved detection of the default rockspec in commands such as `luarocks test`
171* Various minor bugfixes
172
173## What's new in LuaRocks 3.0.3
174
175LuaRocks 3.0.3 is a minor bugfix release, fixing a regression in
176luarocks.loader introduced in 3.0.2.
177
178## What's new in LuaRocks 3.0.2
179
180* Improvements in luarocks init, new --reset flag
181* write_rockspec: --lua-version renamed to --lua-versions
182* Improved behavior in module autodetection
183* Bugfixes in luarocks show
184* Fix upgrade/downgrade when a single rock has clashing module
185filenames (should fix the issue when downgrading luasec)
186* Fix for autodetected external dependencies with non-alphabetic
187characters (should fix the libstdc++ issue when installing xml)
188
189
190## What's new in LuaRocks 3.0.1
191
192* Numerous bugfixes including:
193 * Handle missing global `arg`
194 * Fix umask behavior
195 * Do not overwrite paths in format 5.x.y when cleaning up path
196variables (#868)
197 * Do not detect files under lua_modules as part of your sources
198when running `luarocks write_rockspec`
199 * Windows: do not hardcode MINGW in the all-in-one binary: instead
200it properly detects when running from a Visual Studio Developer
201Console and uses that compiler instead
202 * configure: --sysconfdir was fixed to its correct meaning: it now
203defaults to /etc and not /etc/luarocks (`/luarocks` is appended to the
204value of sysconfdir)
205 * configure: fixed --force-config
206* Store Lua location in config file, so that a user can run `luarocks
207init --lua-dir=/my/lua/location` and have that location remain active
208for that project
209* Various improvements to the Unix makefile, including $(DESTDIR)
210support and an uninstall rule
211* Autodetect FreeBSD-style include paths (/usr/include/lua5x/)
212
213## What's new in LuaRocks 3.0.0
214 3
215- [New rockspec format](#new-rockspec-format) 4- [New rockspec format](#new-rockspec-format)
216- [New commands](#new-commands), including [luarocks init](https://github.com/luarocks/luarocks/wiki/Project:-LuaRocks-per-project-workflow) for per-project workflows 5- [New commands](#new-commands), including [luarocks init](https://github.com/luarocks/luarocks/wiki/Project:-LuaRocks-per-project-workflow) for per-project workflows
diff --git a/appveyor.yml b/appveyor.yml
index 4ab66669..6a4f9417 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,4 +1,4 @@
1version: 3.3.0.{build}-test 1version: 3.0.0.{build}-test
2 2
3shallow_clone: true 3shallow_clone: true
4 4
@@ -6,7 +6,7 @@ matrix:
6 fast_finish: true 6 fast_finish: true
7 7
8environment: 8environment:
9 LUAROCKS_VER: 3.3.0 9 LUAROCKS_VER: 3.0.0
10 10
11 matrix: 11 matrix:
12 # Lua 5.1 tests 12 # Lua 5.1 tests
diff --git a/configure b/configure
index 99dccba4..5deb44be 100755
--- a/configure
+++ b/configure
@@ -308,7 +308,7 @@ do
308 # -------------------------------- 308 # --------------------------------
309 --versioned-rocks-dir) 309 --versioned-rocks-dir)
310 echo "--versioned-rocks-dir is no longer necessary." 310 echo "--versioned-rocks-dir is no longer necessary."
311 echo "The rocks tree in LuaRocks 3.x is always versioned." 311 echo "The rocks tree in LuaRocks 3.0 is always versioned."
312 ;; 312 ;;
313 --lua-suffix) 313 --lua-suffix)
314 echo "--lua-suffix is no longer necessary." 314 echo "--lua-suffix is no longer necessary."
@@ -323,7 +323,7 @@ do
323done 323done
324 324
325echo 325echo
326BLUE "Configuring LuaRocks version 3.3.0..." 326BLUE "Configuring LuaRocks version dev..."
327echo 327echo
328echo 328echo
329 329
diff --git a/install.bat b/install.bat
index 0b953671..06d8348c 100644
--- a/install.bat
+++ b/install.bat
@@ -6,7 +6,7 @@ local vars = {}
6 6
7 7
8vars.PREFIX = nil 8vars.PREFIX = nil
9vars.VERSION = "3.3" 9vars.VERSION = "3.0"
10vars.SYSCONFDIR = nil 10vars.SYSCONFDIR = nil
11vars.CONFBACKUPDIR = nil 11vars.CONFBACKUPDIR = nil
12vars.SYSCONFFILENAME = nil 12vars.SYSCONFFILENAME = nil
diff --git a/luarocks-3.3.0-1.rockspec b/luarocks-dev-1.rockspec
index 20ad83fa..a1f30ef4 100644
--- a/luarocks-3.3.0-1.rockspec
+++ b/luarocks-dev-1.rockspec
@@ -1,9 +1,8 @@
1rockspec_format = "3.0" 1rockspec_format = "3.0"
2package = "luarocks" 2package = "luarocks"
3version = "3.3.0-1" 3version = "dev-1"
4source = { 4source = {
5 url = "git+https://github.com/luarocks/luarocks", 5 url = "git+https://github.com/luarocks/luarocks",
6 tag = "v3.3.0",
7} 6}
8description = { 7description = {
9 summary = "A package manager for Lua modules.", 8 summary = "A package manager for Lua modules.",
diff --git a/publishrelease b/publishrelease
index dc5e673c..2e635bea 100755
--- a/publishrelease
+++ b/publishrelease
@@ -25,8 +25,6 @@ git checkout v$v || {
25packages=( 25packages=(
26 luarocks-$v-windows-32.zip 26 luarocks-$v-windows-32.zip
27 luarocks-$v-windows-32.zip.asc 27 luarocks-$v-windows-32.zip.asc
28 luarocks-$v-windows-64.zip
29 luarocks-$v-windows-64.zip.asc
30 luarocks-$v-linux-x86_64.zip 28 luarocks-$v-linux-x86_64.zip
31 luarocks-$v-linux-x86_64.zip.asc 29 luarocks-$v-linux-x86_64.zip.asc
32 luarocks-$v-win32.zip 30 luarocks-$v-win32.zip
@@ -90,8 +88,7 @@ gawk '
90 print "<!-- add new release here -->" 88 print "<!-- add new release here -->"
91 print "" 89 print ""
92 print "<tr><td><a href=\"luarocks-'$v'.tar.gz\">luarocks-'$v'.tar.gz</a></td><td><a href=\"luarocks-'$v'.tar.gz.asc\">PGP signature</a></td></tr>" 90 print "<tr><td><a href=\"luarocks-'$v'.tar.gz\">luarocks-'$v'.tar.gz</a></td><td><a href=\"luarocks-'$v'.tar.gz.asc\">PGP signature</a></td></tr>"
93 print "<tr><td><a href=\"luarocks-'$v'-windows-32.zip\">luarocks-'$v'-windows-32.zip</a> (luarocks.exe stand-alone Windows 32-bit binary)</td><td><a href=\"luarocks-'$v'-windows-32.zip.asc\">PGP signature</a></td></tr>" 91 print "<tr><td><a href=\"luarocks-'$v'-windows-32.zip\">luarocks-'$v'-windows-32.zip</a> (luarocks.exe stand-alone Windows binary)</td><td><a href=\"luarocks-'$v'-windows-32.zip.asc\">PGP signature</a></td></tr>"
94 print "<tr><td><a href=\"luarocks-'$v'-windows-64.zip\">luarocks-'$v'-windows-64.zip</a> (luarocks.exe stand-alone Windows 64-bit binary)</td><td><a href=\"luarocks-'$v'-windows-64.zip.asc\">PGP signature</a></td></tr>"
95 print "<tr><td><a href=\"luarocks-'$v'-linux-x86_64.zip\">luarocks-'$v'-linux-x86_64.zip</a> (luarocks stand-alone Linux x86_64 binary)</td><td><a href=\"luarocks-'$v'-linux-x86_64.zip.asc\">PGP signature</a></td></tr>" 92 print "<tr><td><a href=\"luarocks-'$v'-linux-x86_64.zip\">luarocks-'$v'-linux-x86_64.zip</a> (luarocks stand-alone Linux x86_64 binary)</td><td><a href=\"luarocks-'$v'-linux-x86_64.zip.asc\">PGP signature</a></td></tr>"
96 print "<tr><td><a href=\"luarocks-'$v'-win32.zip\">luarocks-'$v'-win32.zip</a> (legacy Windows package, includes Lua 5.1)</td><td><a href=\"luarocks-'$v'-win32.zip.asc\">PGP signature</a></td></tr>" 93 print "<tr><td><a href=\"luarocks-'$v'-win32.zip\">luarocks-'$v'-win32.zip</a> (legacy Windows package, includes Lua 5.1)</td><td><a href=\"luarocks-'$v'-win32.zip.asc\">PGP signature</a></td></tr>"
97 done = 1 94 done = 1
@@ -119,7 +116,7 @@ gawk '
119 print "{" 116 print "{"
120 print "\"'$v'\": {" 117 print "\"'$v'\": {"
121 print "\"date\": \"'$(date +'%Y-%m-%d')'\"," 118 print "\"date\": \"'$(date +'%Y-%m-%d')'\","
122 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\"]," 119 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\"],"
123 print "\"about\": []" 120 print "\"about\": []"
124 print "}}," 121 print "}},"
125 } 122 }
diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua
index 5e95feeb..b3561422 100644
--- a/src/luarocks/core/cfg.lua
+++ b/src/luarocks/core/cfg.lua
@@ -19,8 +19,8 @@ local sysdetect = require("luarocks.core.sysdetect")
19 19
20-------------------------------------------------------------------------------- 20--------------------------------------------------------------------------------
21 21
22local program_version = "3.3.0" 22local program_version = "dev"
23local program_series = "3.3" 23local program_series = "3.0"
24local major_version = (program_version:match("([^.]%.[^.])")) or program_series 24local major_version = (program_version:match("([^.]%.[^.])")) or program_series
25 25
26local is_windows = package.config:sub(1,1) == "\\" 26local is_windows = package.config:sub(1,1) == "\\"