-
Notifications
You must be signed in to change notification settings - Fork 18
/
Changes
650 lines (590 loc) · 33.9 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
Revision history for Perl extension PGXN::Manager
0.32.2
0.32.1 2024-08-15T21:02:40Z
- Added a TRACE log level to PGXN::Manager::Consumer.
- Removed doc generation scripts from the release bundle.
- Taught `bin/format_l10n_docs` to to parse `.md` or `.mmd` files.
- Fixed various typos.
- Converged inline links in `doc/spec.txt` to reference links for
slightly better legibility as plain text.
- Fixed import quoted version warning with Perl 5.40.
- Fixed validation of rsync URLs in the mirror editor.
- Added Content Security Policy notes to the README to ensure that
inline JavaScript works properly.
- Added a type about building Compress::Raw::Lzma to the README.
0.32.0 2024-02-17T17:25:24Z
- Combined the pgxn_consumer PID number and file location into one
output.
- Configured handlers for INT, TERM, and QUIT signals to log flagging
for shutdown in the next loop.
- Fixed invalid license example in the META spec.
- Added a logger to the Consumer and the Mastodon and Twitter handlers,
so that they now log debug and info messages about what's being sent.
- Moved PID file cleanup from the `DEMOLISH` method to the `run` method,
and the signal handlers, where it should always execute at least once.
This will hopefully fix the issue where the consumer mysteriously
ceases running and doesn't remove its PID file, so never restarts.
- Replaced use of the deprecated `given`/`when` syntax with plain old
`if`/`elsif`/`else`.
- Moved `doc/howto.md` to `lib/PGXN/Manager/Locale/en`, added
`bin/format_l10n_docs` to convert it to HTML, and added `from_file`
to PGXN::Manager::Locale to find and returns its contents. This
allows it to be removed from the Locale `%Lexicon`, which was a
ridiculous waste of memory, and also prevents it from being processed
by Locale::Maketext, which requires tildes to escape brackets and
trailing backslashes (#76).
- Added the release status to Twitter and Mastodon toots for testing and
unstable releases (#72).
0.31.1 2023-10-07T21:40:53Z
- Restored the writing of the pgxn_consumer PID file, accidentally
removed in v0.31.0. Added tests to ensure continues to be passed
properly.
0.31.0 2023-10-07T19:02:24Z
- Added the application names (pgxn_manager and pgxn_consumer) to the
Postgres connections.
- Updated pgxn_consumer to delete the PID file on exit.
- Updated tag stats to lowercase the tag name, both for consistency
across updates for this case-insensitive value, as well as for test
consistency.
- Fixed test failures on Postgres 16 by replacing PL/Perl-based mocks
with pure SQL.
0.30.1 2023-02-18T23:15:06Z
- Added the --log-file option to `pgxn_consumer`.
0.30.0 2023-02-12T00:33:38Z
- Upgraded jQuery to v3.6.0 and the jquery.validate plugin to 1.19.3.
- Switched to serve jQuery and jquery.validate locally rather than
from CDNs. This eliminates a vector for data collection by the
CDNs.
- Fixed an error when a the forgotten password form is submitted
with an invalid label value.
- Replaced the Twitter posting hack with an extensible, event-oriented
system based on PostgreSQL LISTEN/NOTIFY queues, and a new client,
`pgxn_consumer` to process events and post them to Twitter and
Mastodon. Requires a configuration change to enable event handlers.
- Fixed character encoding in emails.
0.22.1 2022-01-16T20:32:34Z
- Re-implemented the basic auth middleware to prevent passwords
from appearing in stack traces.
- Enabled fixup mode for the database connection, so the service
can auto-recover from database downtimes.
- Switched from command-line binaries to pure Perl modules for
extracting archives. Not sure why it preferred binaries up to now,
but preferring Pure Perl eliminates a lot of IO::Select warnings that
were really messing with things.
- Changed some internal error propagation to use blessed arrays
rather than plain arrays, to prevent confusing any doe that might
try to call isa() on them (as was happening when preferring
command-line tools for extraction).
0.21.0 2021-07-05T22:30:54Z
- Updated the password hashing to a much slower and therefor more
secure algorithm (blowfish with 9 iterations).
- Refactored the password algorithm selection into a function so
that it can more easily be changed in the future.
- Changed the minimum password length from 4 to 8 characters.
- Added clear_password() SQL function as a tool for admins to
set a user password to a random string and create a reset token.
- Added the `reset_password` command to `pgxn_maint` for admins to use
to clear one or more user passwords and send emails to those users
with links to create new passwords.
0.20.2 2021-06-01T01:48:32Z
- Switched to a more appropriate README icon in the distribution view,
and changed the background color for a bit more contrast.
- Simplified Request->uri_for and fixed the URI included in account
request emails.
- Removed unused method from PGXN::Manager::Distribution.
- Fixed an issue processing uploaded files with no directory prefix.
Thanks to Damien Clochard for the test case.
0.20.1 2021-05-18T01:56:15Z
- Removed the `Capfile` and `eg` directory from the source (and
distribution). Examples for managing PGXN can now be found in the
pgxn/pgxn-ops repository on GitHub.
- Replaced all icons with SVG icons from the icons8/flat-color-icons
project.
- Updated the favicons for best support on modern browsers, including
SVG and ICO variants, as well as special cases for iOS and Android
devices.
- Added titles to new account moderation buttons.
- Improved the layout of the new account request userinfo popover so
that it is in front of everything else and does not overlap with the
side nav.
0.20.0 2021-05-12T02:15:41Z
- Explicitly loading Email::Address in PGXN::Manager::Controller
to avoid an issue where it's not loaded at all.
- Return a 404 instead of an error on an invalid semantic version
when requesting a distribution and version (issue #66).
- Require SemVer v0.10.0 and pg-semver 0.3.10. These releases properly
support the semver 2.0.0 spec (aside from version parts larger than 32
bits).
- Updated all URLs with HTTPS variants to use HTTPS.
- Regenerated the HOWTO HTML using MultiMarkdown, so as to get heading
IDs for direct linking and with a language class for the code examples.
- Distribution versions are now allowed to be less than than previous
release versions if they update existing major or minor versions. So if
you have versions 2.0.0, 2.2.1, and 2.4.2, you can release 2.0.1,
2.2.2, 2.4.3, 2.5.0, or 3.0.0, but not 2.0.0-r1, 2.2.0, or 2.3.0. This
should allow for the release of updates to older versions without
otherwise creating new major or minor versions that were not previously
released. Thanks to Geoff Montee for the report! (#52).
- Extension versions are no longer checked to ensure they're greater than
or equal to previous versions. It's simply not feasible to check for
appropriate extension versions while allowing the release of lower
distribution versions as described in the last point without
introducing an extremely convoluted set of rules we're likely to get
wrong, and likely annoy at times even if they're right. Better to check
for sensible distribution versions and let authors be responsible for
proper extension version hygiene.
- Fixed the email sent to the PGXN admins on error to redact
`HTTP_AUTHORIZATION` header from the environment dump.
- Fix the quoting for the reason for a new user request in the email sent
to admins.
- Fixed the request object to read X_ variables from the Plack environment
with a leading HTTP_. In other words, read HTTP_X_FORWARDED_FOR not
X_FORWARDED_FOR. This seems to be how X_ variables are loaded by Plack.
- Worked around a situation where Plack gives an uploaded file a
meaningless temporary name that Archive::Extract cannot detect the
archive type for. Requires the Archive::Extract 0.88. Thanks to Sandro
Santilli ror the report and Philippe Beaudoin for providing a file with
which replicate the issue (#61).
- Eliminated the /pub app and moved the /auth app to /. The entire site
is now served by the / app, so that it can be fully encrypted. Basic
auth is enabled for those parts of the site that require
authentication, but the rest is publicly available, including the home
page, about, howto, etc. The /pub and /auth apps now simply redirect to
the / app, in case they're still used, although the reverse proxy
configuration should be updated to do the same, to avoid calling the
/pub and /auth apps at all, only /.
- Updated the format of version check errors to show the distribution
releases the conflicts are found in.
- Added the /login path and made it the URL for the "Log In" link on
unauthenticated pages. It requires auth and simply redirects to
/distributions for now.
- Dropped support for running PGXN Manager on PostgresSQL 11 or lower.
- Removed the Pod tests from the release.
- Fixed a server error when the account registration form is submitted
with no nickname.
0.16.0 2015-08-31T18:25:24Z
- Updated the `Makefile` example in the HOWTO to extract the extension
version from the `META.json` file, rather than the distribution
version.
- Updated the `Makefile` example in the HOWTO to avoid trying to
install the extension file twice, which causes an error on
PostgtreSQL 9.3.2.
- Twitter posts now sent over SSL.
- Fixed warnings on Perl 5.20.
- Fixed encoding issues with Perl 5.20 and DBD::Pg 3.0.
- Fixed pgxn_maint so that reindexing failures are reported on the
command-line and the exit value set to the number of failures.
Previously it would fail silently.
- Added the ability to pass the path to a zip archive to `pgxn_maint
index`. Previously, you had to pass a distribution name and release
version (and you still can), but that required that one manually
place the archive where the existing one is, first. This is cleaner,
as now `pgxn_maint` will process the file from wherever you have it
and put it where it belongs.
- Distribution versions are now forced to be greater than in previous
releases.
- Extension versions are now required to be greater than or equal to
versions in previous releases. When re-indexing, they are also
required to be less than or equal to versions in subsequent releases.
0.15.0 2013-06-19T06:18:45Z
- Silenced Net::Twitter::Lite warnings by disabling the legacy lists
API (which we don't use anyway).
- Updated upload tweeting to use the Twitter v1.1 API, as the v1 API is
no more.
- Fixed test failures due to changes in behavior in
Email::Sender::Simple v0.120000.
- Requiring SemVer v0.4.0 and pg-semver 0.3.0. These releases support a
dash before the prerelease version, as required by the final semver
1.0.0 spec.
- Fixed a test failure due to the recently introduced restriction where
different users cannot access the same `%_SHARED` hash in PL/Perl
functions. Fixed by switching to a temporary table.
- Removed superfluous commas from a JSON exmple in the PGXN spec
document. Thanks to Jörg Beyer for the spot!
- Eliminated smartmatch deprecation warnings on Perl 5.18.0.
- Fixed test failures on Perl 5.18 due to hash randomization.
- The build system now tries to always run the tests as the database
super user. This allows mocked functions in the tests to work
properly.
- Updated the HOWTO to properly order things in the `Makefile` and to
include a `dist` target.
- Added `remote_host()` and `address()` to PGXN::API::Request to return
the forwarded host name and address, if present. This should allow
the proper host information to be included in the registration admin
email (issue #38).
- Tweaked the hint for the nickname field in the registration form to
indicate that it will be the user's PGXN user name.
0.14.1 2012-01-11T18:29:26Z
- Greatly improved the `check_mirrors` utility, making it work with the
`mirrors` file, rather than a special, undocumented "timestamp" file.
0.14.0 2012-01-10T04:10:22Z
- Changed the `utc_date()` function from IMMUTABLE to STABLE, because
converting between time zones is not immutable, alas.
- Removed use of `catch` blocks with DBIx::Connector, switching to
Try::Tiny. This is because DBIx::Connector deprecated its support of
`catch` blocks in v0.46.
- Updated for PostgreSQL 9.1 `CREATE EXTENSION` support.
- Added `Capfile` for capistrano deployment.
- Added `eg/debian_init`, an example init script for Debian that runs
PGXN::Manager on Starman.
- Now require PGXN::Meta::Validator v0.14.0, which has much nicer error
messages.
- Fixed version issues. All classes now have a version and the
`version_string` class method of PGXN::Manager should be used for
displaying the version.
- Commented out the `MODULES` line in the example `Makefile` in the
How-To, as it turns out that it's not as harmless as I thought for
extensions with no C code. Reported by Daniele Varrazzo.
- Added credit to Veerle Pieters for table design and to Miles Ponson
for icons to the About page.
- Updated the metadata spec to 1.0.0.
- Allow Build.PL to execute when Module::Build::DB is not installed.
This makes it easier to run once to determine what dependencies are
required, including Module::Build::DB.
- A request to / no longer returns a redirect to /pub/, bur rather a
"forbidden" response (403) explaining that you probably wanted /pub/
or to run PGXN Manager behind a reverse proxy server.
- Documented reverse proxy configuration with Nginx in the README.
0.13.1 2011-06-01T04:26:20
- Replaced a leftover `ORDER BY semver USING <` with `ORDER BY semver
ASC`, as it was causing errors on the "Your Distributions" page and
hasn't been needed since the `semver` domain was replaced with the
`semver` C data type.
0.13.0 2011-06-01T03:51:17
- Added version ranges to the spec. These may be used in the `prereqs`
field to specify precise version requirements. Stolen directly from
CPAN::Meta Spec 2.0.
- The "provides" field is now required by the meta spec.
- Fixed embarrassing typo on the home page. Thanks to Stefan
Kaltenbrunner for the spot.
- The hints for creating user names now specify that only ASCII letters
are supported. Thanks to Stefan Kaltenbrunner for the gripe.
- Added a link to the mail list to the contact page. Suggested by Stefan
Kaltenbrunner.
- Submitting an empty forgotten form no longer returns a 500 error, but
a nice 400 error and the form to properly fill in. Reported by Stefan
Kaltenbrunner.
- Tag names may no longer contain slashes, backslashes, or control
characters, and must be 256 characters or less.
- Extension names may no longer contain slashes, backslashes, control
characters, or space characters.
- Eliminated "Wide character in print" warnings.
- Added the "conflicts" relationship to the meta spec `prereqs` field.
- Now using PGXN::Meta::Validator to validate the `META.json` file on
upload and in the database. This will make it easier for users to
figure out what's wrong with their file when they try to release to
PGXN, while also enforcing the requirement for the `provides` field.
- Version numbers are no longer be normalized into semantic versions.
They now must be valid semantic versions on upload.
0.12.8 2011-05-12T23:57:44
- Updated the HOWTO to add details for better indexing and support for
the PostgreSQL 9.1 extension architecture.
0.12.7 2011-05-12T18:11:02
- Upgraded to jQuery 1.6.
- Distributions names containing control characters, whitespace
characters, /, and \ are now disallowed.
- Backported to Perl 5.10.
0.12.6 2011-05-03T21:06:43
- Fixed a bug where reindexing a distribution would cause the release
date to be updated in the generated `META.json` file (Issue #26).
- User JSON files will no longer output a "uri" key if the value is an
empty string (Issue #25).
- Added the `-E` option to `pgxn_maint`, to specify the environment in
which to run, just like the Plack app. This ensures that the proper
configuration file is loaded.
0.12.5 2011-04-27T18:52:18
- Changed the default download file suffix from `.pgz` to `zip`.
0.12.4 2011-04-25T16:59:36
- The directory prefix in rewritten zip files is now lowercase, just
like the zip file name.
- The zip file is now replaced when a distribution is re-indexed. This
is because re-indexing might have changed it.
0.12.3 2011-04-25T16:35:28
- Distribution and extension names, as well as version strings, should
now always be converted to lowercase before writing files to disk.
This is because all these values (as well as tags and nicknames, which
were already lowercased in file names) are case-insensitive. So while
preserving case in JSON files, force lowercase in file names for
consistency.
- An attempt to upload a file without actually selecting a file to upload
no longer causes a 500 error. A 400 error is returned instead,
presenting the user with the form.
0.12.2 2011-04-22T18:51:42
- Added another workaround to a MultiMarkdown bug to `doc/spec.txt`,
this time for MultiMarkdown's inability to properly parse a single-row
table. Hopefully these workarounds can be removed someday when
MultiMarkdown 3.0 is ported to Perl.
- Updated Meta Spec links to their new URL, https://pgxn.org/spec/,
and GitHub link to their new URL, https://github.com/spec/.
- The "provides" section of a `META.json` file is now properly
validated, so a missing version no longer triggers a 500 error, but
tells the user that the version is missing. Reported by Hitoshi
Harada.
0.12.1 2011-04-20T05:59:39
- Fixed JSON writing in PGXN::Manager::Maint so that it properly writes
out UTF-8 encoded data read from the database.
0.12.0 2011-04-20T05:35:52
- Requests should now all be returned with an appropriate
`Content-Length` header.
- Updated `doc/spec.txt` to use MultiMarkdown definition list syntax and
curly quotation marks and apostrophes.
- Updated examples cited in `doc/spec.txt` to be actual PGXN
distributions.
- Added the `docfile` key to the `provides` section of the meta spec. It
can be used to specify a path to documentation for an extension.
PGXN::Manage does nothing with this key, but PGXN::API uses it.
- A JSON file is now created for new users as soon as they're approved,
and is updated whenever the user updates her data via the UI. This
means that usr JSON files should now always be up-to-date, and will be
present even for users who have no distributions (yet).
- Added the `update_users` method to PGXN::Manager::Maint, which
implicitly also adds the `update-users` task to the `pgxn_maint`
utility.
0.11.1 2011-04-13T02:25:37
- Changed the volatility option on the `utc_date()` database function
from "stable" to "immutable".
- Added `num_to_list` param to the `all_stats_json()` database function.
- Changed the volatility of the `all_stats_json()` and
`get_distribution()` database functions from "volatile" to "stable".
- Changed the "spec" URL template to "/meta/spec.{format}".
0.11.0 2011-04-11T23:41:16
- Added JSON-emitting statistics functions:
* `tag_stats_json()`
* `user_stats_json()`
* `extension_stats_json()`
* `dist_stats_json()`
* `summary_stats_json()`
- Added more rows to the output of `add_distribution()`. The new rows
contain stats JSON, to be saved to the location specified by the new
"stats" URI template.
- Added "release_permalink" configuration, used to create the link to a
newly released distribution in the announcing Tweet.
- Added `update_distribution()` database function, which is just like
`add_distribution()` except that it updates an existing distribution.
- Added `get_distribution()` database function, which returns all the
JSON metadata as `add_distribution()`, but for an already-existing
distribution.
- Added the `reindex()` method to PGXN::Manager::Distribution. It can be
used to reindex an existing distribution.
- Added `pgxn_maint` utility, and its implementation,
PGXN::Manager::Maint. Allows maintenance tasks to be easily executed.
Supported tasks include:
* `update-stats`
* `reindex`
* `reindex-all`
- Added the PGXN Meta spec, as well as a URI template for it, "spec".
The file will be updated in the mirror root any time its modification
time is older than the copy in `doc/spec.txt`.
0.10.4 2011-03-28T02:01:11
- Renamed the "dist" URI template to "download".
- Removed the leading `/by` from the URI templates.
- Removed the leading `by_` from database functions.
0.10.3 2011-03-17T23:29:34
- Added the "sha1" key to the JSON objects describing the most recent
distributions for each release status in the `/by/extension/*.json`
files. This will allow a client to skip the downloading of the
distribution metadata file for a simple `install extension foo`
command.
0.10.2 2011-03-16T23:11:33
- Changed the default URI templates to use `{dist}/{version}` instead of
`{dist}-{version}`. This allows versions to be more easily
distinguished from extension names in URIs. The three changed templates
are:
"dist": "/dist/{dist}/{version}/{dist}-{version}.pgz",
"readme": "/dist/{dist}/{version}/README.txt",
"meta": "/dist/{dist}/{version}/META.json",
Note that existing installations should work fine with whatever
templates they have.
0.10.1 2011-03-15T18:31:23
- Fixed a bug in the upload code where a failure to recognize an archive
was not returned to the client. Reported by Alexey Klyukin (Issue #4).
- Now requiring HTTP::Body 1.08 or higher so that upload file name
extensions are preserved. This allows Archive::Extract to properly
detect the type of an extension.
0.10.0 2011-03-10T21:53:17
- Removed conflicting meaning of the term "owner". It now is used only
in the context of permissions: who owns or co-owns.a particular
extension. The user who uploads a distribution is now recorded as the
"creator" of that extension, and listed in the JSON metadata simply as
the "user". The term "creator" is not used here because the user who
created the distribution (that is, uploaded it) should not be confused
the the person who created the code in the distribution.
To enact this change in terminology, the these changes have been made
to the code and its outputs:
* Renamed the `distributions.owner` column to `distributions.creator`.
* Renamed the "owner" key in the distribution metadata file to "user".
* Renamed the "owner" attribute in PGXN::Manager::Distribution to
"creator".
* Moved the `/by/owner/` metadata files to `/by/user/`.
* Renamed the `by_owner_json()` SQL function to `by_user_json()`.
* Changed the name of the URI template for the user JSON output by
`add_distribution()` to `by-user`.
- Renamed the "release_date" in the distribution metadata output file to
"date", so that it's the named consistently with the key that appears
in the `by_user_json()`, `by_dist_json()`, and `by_tag_json()` JSON.
0.9.1 2011-03-09T23:59:58
- Changed "releases" status values in the `by_tag_json()` output from a
list of versions to a list of objects with a "version" key and a
"date" key, to match the output from `by_dist_json()` and
`by_owner_json()`.
0.9.0 2011-03-09T21:35:11
- Removed extra space from generated extension JSON.
- Removed `NO_PGXS` stuff from the `Makefile` example in the HOWTO.
Suggested by Alvaro Herrera.
- Added the "twitter" key to the owner JSON output.
- Added the "mirrors" URI template to included configuration files.
Existing installations will need to update their `/index.json` files
manually.
- Changed "releases" status values in the `by_dist_json()` and
`by_owner_json()` output from a list of versions to a list of objects
with a "version" key and a "date" key.
0.8.0 2011-02-25T23:56:37
- Added `abstract` column to `distribution_extensions` and the
`abstract` key to the `provides` section of the JSON output.
0.7.0 2011-02-25T01:22:32
- Fixed JSON handling inside the database to properly handle UTF-8
semantics.
- Added `release_date` key to the JSON file generated for a
distribution.
0.6.1 2011-02-11T00:08:46
- Added `--help` option to `get_twitter_token`.
- Updated to use native `semver` data type now distributed on PGXN.
0.6.0 2011-01-05T03:24:51
- Added Twitter notification upon successful upload.
- Added `bin/get_twitter_token`, a utility to make configuring
the Twitter OAuth token relatively simple.
- Consolidated the sending of email into a single method, `send_email`
in PGXN::Manager.
- Fixed a bug in our exception-handling code to properly include the
exception message along with the stack trace in log, UI, and email
output.
0.5.1 2011-01-04T22:54:12
- Updated `check_mirrors` for new `mirrors.json` format.
- Fixed the encoding of `mirrors.json` so that UTF-8 will be properly
encoded in the file.
0.5.0 2011-01-04T21:47:29
- Added `doc/howto.md`.
- Moved `check_mirrors` from the PGXN repository.
- Tweaked the nav menu a bit:
* Eliminated the "Admin Menu" header.
* Added `hr`s between menus.
* Made the type a little smaller.
* Fixed borders so menu items don't move between loads.
- Removed the copyright statement from every page.
- Audited module usage and made the list in `Build.PL` comprehensive.
- Updated the DBIx::Connector requirement to 0.42, which has an
exception-handling fix.
- Updated Router::Resource requirement to 0.11, which has a header
fix for the method missing exception.
- Changed PGXN::Manager::Controller to have a constructor and be used as
an instance.
- Added mirror administration:
* Added the `update_mirror()` PL/pgSQL function.
* Add, update, and delete mirrors.
* Only available to administrators.
* Uses PUT and DELETE HTTP methods for updates and deletes.
* Requires Plack::Middleware::MethodOverride to support said
methods from browsers.
* Keeps `meta/mirrors.json`in the mirror root up-to-date.
0.4.5 2010-11-01T19:13:51
- Updated for storage of stack trace by Plack::Middelware::StackTrace in
Plack 0.9951.
- Fixed permission issue when an uploaded file is moved rather than
rewritten.
- Removed stack trace from error environment in the 500 error emails. It
was ugly and redundant, considering that it's included as a separate
item.
0.4.4 2010-10-29T17:59:12
- Updated `Makefile` example in /howto.
- Updated meta spec URL in /howto.
0.4.3 2010-10-24T21:32:59
- Fixed internal server error on /howto page. Turns out that
Data::Section isn't too fork safe when subclasses are loaded in a
child thread. So moved the howto body into the normal locale
lexicon.
- Move default lexicon strings from PGXN::Manager::Locale::en to
PGXN::Manager::Locale so that other locales can take advantage of
them. That is, Locale::fr does not inherit from Locale::en.
0.4.2 2010-10-22T20:50:49
- Added credits to the About page.
0.4.1 2010-10-22T19:22:50
- Changed error controller action so that it only sends email if called
as an `ErrorDocument` middleware subrequest. This is to prevent bogus
emails if people just hit its URL directly.
0.4.0 2010-10-22T19:21:50
- Improved internal server error handling. Now errors will be sent to
the alert email address.
0.3.0 2010-10-21T23:31:46
- Added salutation to new user email.
- Fixed a bunch of warnings emitted by the Perl code (found by turning
on warnings in tests)
- Added "How To" page and tweaked the "Contact", "About Us", and
"Upload" pages, including appropriate links to "How To".
0.2.5 2010-10-20T23:06:48
- Added descriptions of fields to the registration/profile form. Should
make things less confusing to folks signing up. In response to a gripe
from Damien Clochard.
0.2.4 2010-10-20T17:21:31
- Fixed redirection after successful registration and password reset to
go to the proper place.
0.2.3 2010-10-20T17:12:53
- Built out the 500 error page, which is a static file, based on other
error pages.
- Fixed misspelling in the user registration alert email. Also added
a link to the moderation UI.
- Renamed `Request->login_uri` to `auth_uri`, and renamed the
configuration setting to same.
- Added `Request->uri_for()` and updated places in the public site
that link to the auth site to use it.
- Moved the password reset form (to which a link is set when a new user
account is accepted or a user fills in the forgotten password form) to
the auth site, where it belongs. This is the only part of the auth
site that does not require authentication.
0.2.2 2010-10-20T00:29:41
- Added Error document support for production.
- Fixed registration form URL to point to the right place.
0.2.1 2010-10-19T06:07:02
- Added version, copyright, and license to footer.
- Fixed display of form legends on Firefox so that they're not floating
above the fieldset with which they're associated.
0.2.0 2010-10-19T04:19:54
- Added build and installation instructions to `README.md`.
- Added missing dependencies on Plack::Middleware::Session and
Email::Address to `Build.PL`.
- Added `conf/prod.json`. I think the usage will be pretty typical, and
it will be nicer for folks just to have a file to edit.
- Changed Archive::Extract error handling in PGXN::Manager::Distribution
to always die with our custom error message, rather than try to parse
the original error message, which can vary depending on the
implementation of `tar`.
- Fixed a test failure when looking at the sha1 in `t/distview.t`.
- Fixed a test failure on Test::More 0.95_01 or higher when comparing a
string to a string-overloaded Email::Address object. Just turn the
Email::Address into a string to compare instead.
- Initialize the mirror root on startup in `bin/pgxn_manager.psgi`.
- User access time is now updated on authentication. Conveniently, the
`authenticate_user()` function is called every time the user visits
the site and is logged in.
- Now using a subdirectory of the temp directory named
"pgxn-session-$ENV{PLACK_ENV}" to store the session files. This
prevents the pollution of /tmp with a lot of junk.
- Change mounts so that the public site is mounted under /pub/ and the
auth site is mounted under /auth/. They are now effectively separate
apps. This allows them to be separately reverse-proxied.
- Rename `conf/prod.json` to `conf/local.json`. The `README` now says
to copy this file to `conf/prod.json` and edit the copied file.
- Added `conf/proxied.json`. This will serve as an example for setting
up PGXN::Manager to run behind a reverse proxy server.
- Recommend Plack::Middleware::ReverseProxy. I think it's likely that
the app will usually be run behind a reverse proxy server.
- Added the `uri_script_name_key` and `login_uri` configuration keys.
They have useful defaults but should be tweaked if /pub/ and /auth/
are behind separate reverse proxy servers.
- Switched router to Router::Resource. It's more RESTy and also offers
handling of 404s and 405s.
- Copyright retroactively assigned exclusively to David E. Wheeler,
rather than to both PostgreSQL Experts and David.
- An email is now sent when a new user registers. This is so that admins
can be quickly alerted to registrations and moderate them ASAP.
0.1.0 2010-10-08T01:51:55Z
- Initial version.