JAL-3130 adapted getdown src. attempt 2. first attempt failed due to cp'ed .git files
[jalview.git] / getdown / src / getdown / CHANGELOG.md
1 # Getdown Releases
2
3 ## 1.8.3 - Unreleased
4
5 * Added support for `nresource` resources which must be jar files that contain native libraries.
6   Prior to launching the application, these resources will be unpacked and their contents added to
7   the `java.library.path` system property.
8
9 * When the app is updated to require a new version of the JVM, that JVM will be downloaded and used
10   immediately during that app invocation (instead of one invocation later). Via PR#169.
11
12 * When a custom JVM is installed, old JVM files will be deleted prior to unpacking the new JVM. Via
13   PR#170.
14
15 * Number of concurrent downloads now defaults to num-cores minus one. Though downloads are I/O
16   bound rather than CPU bound, this still turns out to be a decent default.
17
18 * Avoid checking for proxy config if `https.proxyHost` is set. This matches existing behavior when
19   `http.proxyHost` is set.
20
21 * Added support for proxy authentication. A deployment must also use the
22   `com.threerings.getdown.spi.ProxyAuth` service provider interface to persist the proxy
23   credentials supplied by the user. Otherwise they will be requested every time Getdown runs, which
24   is not a viable user experience.
25
26 ## 1.8.2 - Nov 27, 2018
27
28 * Fixed a data corruption bug introduced at last minute into 1.8.1 release. Oops.
29
30 ## 1.8.1 - Nov 26, 2018
31
32 * If both an `appbase` and `appdir` are provided via some means (bootstrap properties file, system
33   property, etc.) and the app dir does not yet exist, Getdown will create it.
34
35 * Added `max_concurrent_downloads` setting to `getdown.txt`. Controls what you would expect.
36   Defaults to two.
37
38 * `bootstrap.properties` can now contain system properties which will be set prior to running
39   Getdown. They must be prefixed by `sys.`: for example `sys.silent = true` will set the `silent`
40   system property to `true`.
41
42 * If Getdown is run in a headless JVM, it will avoid showing a UI but will attempt to install and
43   launch the application anyhow. Note that passing `-Dsilent` will override this behavior (because
44   in silent mode the default is only to install the app, not also launch it).
45
46 * Fixed issue with `appid` not being properly used when specified via command line arg.
47
48 * Fixed issue with running Getdown on single CPU systems (or virtual systems). It was attempting to
49   create a thread pool of size zero, which failed.
50
51 * Fixed issue with backslashes (or other regular expression escape characters) in environment
52   variables being substituted into app arguments.
53
54 ## 1.8.0 - Oct 19, 2018
55
56 * Added support for manually specifying the thread pool size via `-Dthread_pool_size`. Also reduced
57   the default thread pool size to `num_cpus-1` from `num_cpus`.
58
59 * Added support for bundling a `bootstrap.properties` file with the Getdown jar file, which can
60   specify defaults for `appdir`, `appbase` and `appid`.
61
62 * Added support for a host URL whitelist. Getdown can be custom built to refuse to operate with any
63   URL that does not match the built-time-specified whitelist. See `core/pom.xml` for details.
64
65 * Removed the obsolete support for running Getdown in a signed applet. Applets are no longer
66   supported by any widely used browser.
67
68 * Split the project into multiple Maven modules. See the notes on [migrating from 1.7 to 1.8] for
69   details.
70
71 * A wide variety of small cleanups resulting from a security review generously performed by a
72   prospective user. This includes various uses of deterministic locales and encodings instead of
73   the platform default locale/encoding, in cases where platform/locale-specific behavior is not
74   desired or needed.
75
76 * Made use of `appid` fall back to main app class if no `appid`-specific class is specified.
77
78 * Added support for marking resources as executable (via `xresource`).
79
80 * Fixed issue where entire tracking URL was being URL encoded.
81
82 * Changed translations to avoid the use of the term 'game'. Use 'app' instead.
83
84 ## 1.7.1 - Jun 6, 2018
85
86 * Made it possible to use `appbase_domain` with `https` URLs.
87
88 * Fixed issue with undecorated splash window being unclosable if failures happen early in
89   initialization process. (#57)
90
91 * Added support for transparent splash window. (#92)
92
93 * Fixed problem with unpacked code resources (`ucode`) and `pack.gz` files. (#95)
94
95 * Changed default Java version regex to support new Java 9+ version formats. (#93)
96
97 * Ensure correct signature algorithm is used for each version of digest files. (#91)
98
99 * Use more robust delete in all cases where Getdown needs to delete files. This should fix issues
100   with lingering files on Windows (where sometimes delete fails spuriously).
101
102 ## 1.7.0 - Dec 12, 2017
103
104 * Fixed issue with `Digester` thread pool not being shutdown. (#89)
105
106 * Fixed resource unpacking, which was broken by earlier change introducing resource installation
107   (downloading to `_new` files and then renaming into place). (#88)
108
109 * The connect and read timeouts specified by system properties are now used for all the various
110   connections made by Getdown.
111
112 * Proxy detection now uses a 5 second connect/read timeout, to avoid stalling for a long time in
113   certain problematic network conditions.
114
115 * Getdown is now built against JDK 1.7 and requires JDK 1.7 (or newer) to run. Use the latest
116   Getdown 1.6.x release if you need to support Java 1.6.
117
118 ## 1.6.4 - Sep 17, 2017
119
120 * `digest.txt` (and `digest2.txt`) computation now uses parallel jobs. Each resource to be verified
121   is a single job and the jobs are doled out to a thread pool with #CPUs threads. This allows large
122   builds to proceed faster as most dev machines have more than one core.
123
124 * Resource verification is now performed in parallel (similar to the `digest.txt` computation, each
125   resource is a job farmed out to a thread pool). For large installations on multi-core machines,
126   this speeds up the verification phase of an installation or update.
127
128 * Socket reads now have a 30 second default timeout. This can be changed by passing
129   `-Dread_timeout=N` (where N is seconds) to the JVM running Getdown.
130
131 * Fixed issue with failing to install a downloaded and validated `_new` file.
132
133 * Added support for "strict comments". In this mode, Getdown only treats `#` as starting a comment
134   if it appears in column zero. This allows `#` to occur on the right hand side of configuration
135   values (like in file names). To enable, put `strict_comments = true` in your `getdown.txt` file.
136
137 ## 1.6.3 - Apr 23, 2017
138
139 * Fixed error parsing `cache_retention_days`. (#82)
140
141 * Fixed error with new code cache. (9e23a426)
142
143 ## 1.6.2 - Feb 12, 2017
144
145 * Fixed issue with installing local JVM, caused by new resource installation process. (#78)
146
147 * Local JVM now uses absolute path to avoid issues with cwd.
148
149 * Added `override_appbase` system property. This enables a Getdown app that normally talks to some
150   download server to be installed in such a way that it instead talks to some other download
151   server.
152
153 ## 1.6.1 - Feb 12, 2017
154
155 * Fix issues with URL path encoding when downloading resources. (84af080b0)
156
157 * Parsing `digest.txt` changed to allow `=` to appear in the filename. In `getdown.txt` we split on
158   the first `=` because `=` never appears in a key but may appear in a value. But in `digest.txt`
159   the format is `filename = hash` and `=` never appears in the hash but may appear in the filename,
160   so there we want to split on the _last_ `=` not the first.
161
162 * Fixed bug with progress tracking and reporting. (256e0933)
163
164 * Fix executable permissions on `jspawnhelper`. (#74)
165
166 ## 1.6 - Nov 5, 2016
167
168 * This release and all those before it are considered ancient history. Check the commit history for
169   more details on what was in each of these releases.
170
171 ## 1.0 - Sep 21, 2010
172
173 * The first Maven release of Getdown.
174
175 ## 0.1 - July 19, 2004
176
177 * The first production use of Getdown (on https://www.puzzlepirates.com which is miraculously still
178   operational as of 2018 when this changelog was created).
179
180 [migrating from 1.7 to 1.8]: https://github.com/threerings/getdown/wiki/Migrate17to18