forked from thaljef/Pinto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
1204 lines (823 loc) · 44.1 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
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{{$NEXT}}
0.084 2013-05-14 17:24:22 America/Los_Angeles
ENHANCEMENTS:
Revised documentation for pintod.
BUG FIXES:
Now requires verison 0.018 of Test::LWP::UserAgent or newer
which resolves some test failures in Pinto seen by CPAN
Testers using older versions of T::LWP::UA.
0.083 2013-05-13 14:36:21 America/Los_Angeles
ENHANCEMENTS:
* Improved password prompting, so it still works when STDIN
and/or STDOUT are not connected to a terninal anymore.
* Revised and corrected errors in documentation.
* The etc/ directory has a sample init.d script (thanks @hesco).
0.082 2013-04-29 09:42:43 America/Los_Angeles
Just minor changes so Pinto will run on perl 5.8.9
0.081 2013-04-26 13:51:32 America/Los_Angeles
Just a minor change in test code to prevent failure occasionaly
seen on Unix boxen.
0.080 2013-04-26 10:41:19 America/Los_Angeles
HEADLINES:
Pinto::Server and Pinto::Remote have been merged into this distribution,
so everything ships together. It also means both Pinto::Server and
Pinto::Remote are now working again. Woot!!
There is one caveat: when using a remote repository, pinto will not
display the diff and prompt you to edit the commit message. Instead,
it will automatically use the default generated message or the message
you specified at the command line. I hope to fix this soon.
BUG FIXES:
* pinto(1) and pintod(1) will now be installed with a fixed shebang,
so that they will always run with the same version of perl, even if
you use perlbrew to switch to a differnt perl (thanks @punter)
* pinto(1) will now show the progress meter when reading input from a
file. The progress meter will be hidden whenever STDERR is not
connected to a tty. Use the --verbose or --quiet option to forcibly
hide the progress meter.
* Pinto now indexes "inner packages" so distributions like mod_perl
will be indexed (more) correctly. I had misunderstood how PAUSE
worked. Thanks @miyagawa.
0.068 2013-04-04 22:41:55 America/Los_Angeles
* Now using Module::Build::CleanInstall, which removes files from the
last installation before installing. This should help prevent build
failures for those coming from versions prior to 0.066. Thanks to
Joel Berger for creating the wonderful M::B::CleanInstall!
* Worked around bizzare bug that caused DateTime::TimZone to blow
up with a "locate object method" exception on perl 5.14. Root cause
has not been determined.
0.067 2013-03-30 00:23:36 America/Los_Angeles
* Only minor refactoring. No functional or interface changes.
* Explicitly requires Term::ANSIColor 2.02 or later. Thanks CPAN Testers!
* Requires Pinto::Common 0.068, so you'll have better documentation.
0.066 2013-03-26 16:18:06 America/Los_Angeles
HEADLINES:
* Your MUST uninstall both Pinto and App::Pinto before installing this.
* For local repositories, you'll need to have App::Pinto 0.066 or later.
* This release is not (yet) compatible with any Pinto::Server.
IMPORTANT:
Bad news: This version of Pinto is not compatible with *existing*
repositories. To migrate, you'll need to create a new repository
(using this version of Pinto) and then "pull" all the distributons
from your old repository into the new one. Repeat this process for
each stack. Unfortunatley, you will loose your revision history. If
you bug me about it, I'll write a script to automate this for you. I
Good news: This version of Pinto has hooks to do future migrations
automatically. So any repository you create with *this version*
of Pinto can be easily migrated to any future versions. I'm also pretty
confident that the schema is now stable, so a migration will not be
required for a while.
CHANGES:
* Switched from using Archive::Tar to Archive::Extract. The
latter will attempt to use tar(1) to unpack the archive,
which works much better with older archives. This is a bit
slower however. If you don't have tar(1), it falls back
to using Archive::Tar internally.
* Switched from using HTTP::UserAgent to HTTP::Tiny. This cuts out
one non-core dependency. But some of Pinto's upstream dependencies
probably still use HTTP::UserAgent, so the net effect is moot.
* The version control subsystem has been completely redesigned.
Pinto now stores full snaphots of the stack at each revision
and organizes them in a directed graph, much like Git does. Each
revision is now identified by a unique non-sequential identifier.
* The interface with the terminal has been completely redesigned.
You'll see fewer (but hopefully better) diagnostic messages
when running in verbose mode. And if not verbose, then
you'll see a progress meter. If you still want to see all
the gory details, then set the PINTO_DEBUG environment variable.
* The logger has been completely removed, so Pinto no longer
records diagnostic messages. Recording them never proved to
be useful anyway. All the important changes to the stacks are
still recorded in the revision log though.
* Several Action classes have been added, removed, renamed,
or repurposed. The specifics are not described here because the
Pinto API is still private. See the change log for App::Pinto
for a description of all the public interface changes.
0.065_06 2013-03-23 00:22:57 America/Los_Angeles
0.065_05 2013-03-20 16:21:57 America/Los_Angeles
0.065_04 2013-03-20 16:06:15 America/Los_Angeles
0.065_03 2013-03-19 15:52:24 America/Los_Angeles
0.065_02 2013-03-15 23:39:27 America/Los_Angeles
0.065_01 2013-03-15 16:19:38 America/Los_Angeles
!! DEVELOPER RELEASES !!
Changes consolidated above under version 0.066.
0.065 2012-11-14 09:55:54 America/Los_Angeles
Interface Changes:
* In commit messages, all lines starting with '#' are discarded.
Previously, we figured out the start and end of the message
based on other landmarks, but that isn't very reliable.
* Commit timestamps are now reported in the format that is right
for your locale. However, they are reported in UTC, not the
local timezone. I will fix this in the next release.
New Features:
* Commit messages are now parsed into separate title and body
sections. The message prompt will advise you to put the title
on the first line, followed by one blank line, followed by the
body (just like with Git). We make some attempt to be lenient
with the parsing, in case you don't follow the suggetion.
0.064 2012-11-12 13:29:50 America/Los_Angeles
New Features:
* If running in an interactive environment and the PINTO_PAGER or
PAGER environment variable is set, then Action output will be
sent to it. Log messages still go to STDERR and will not be
sent to the pager.
0.063 2012-11-12 11:58:29 America/Los_Angeles
Important:
This version of Pinto is not compatible with repositories that
were created with prior versions. Please contact
[email protected] if you need to migrate an old repository.
New Features:
* Now has a Rename action, to change the name of an existing
stack. You'll need a newer App::Pinto to utilize this action
(Schwern).
Bug Fixes:
* The Delete action actually works now (Schwern, Holybit).
0.062 2012-11-08 10:52:02 America/Los_Angeles
Interface Changes:
* If the commit message for a Committable action is empty (but
defined) then we automatically fall back to using the default
message.
Interal API Changes:
* Actions that take a stack name argument can now accept a stack
object as well.
* Pinto::Util has been moved from this distribution to Pinto-Common.
0.061 2012-10-30 17:19:10 America/Los_Angeles
Interface Changes:
NONE
Interal API Changes:
* Some query optimizations, to benefit alpha.stratopan.com
* Stack and Revision objects are now sortable. In string
context, Stacks sort by name. In numeric context, they sort by
Revision. Revisions sort chronologically.
0.060 2012-10-23 10:57:41 America/Los_Angeles
New Features:
* You can now set the default stack at the same time that you
create or copy a stack.
Other Changes:
* The output of the Blame action now has the familiar format of
the List action, and records are sorted by package name.
0.059 2012-10-20 00:52:34 America/Los_Angeles
Important:
This version of Pinto is not compatible with repositories that
were created with prior versions. Please contact [email protected]
if you need to migrate an old repository.
Interface Changes:
* Stack names and property names are no longer forced to
lowercase. Instead, we preserve the original case when they
are created. But subsequent comparisons or lookups are done
irrespective of case.
* Author IDs are no longer forced to uppercase. However, the
author ID in the canonical path for any distribution that you
add will always be uppercase, which is consistent with PAUSE.
When listing distributions/packages for a certain author, the
comparison is done irrespective of case.
Other Changes:
* Made several schema optimizations to help support Stratopan,
the upcoming cloud-based service built on Pinto. For a
preview, check out http://alpha.stratopan.com
0.058 2012-10-11 22:47:23 America/Los_Angeles
New Features:
* Added the Blame action, which reports who last modified each
package in the stack. You'll need App::Pinto-0.052 to utilize
this action.
Bug Fixes:
* When pulling prereqs, Pinto would pull the latest version of
the package across the entire repository, rather than taking
the version that is already on the stack. If the package that
is on the stack does not exist or is too old, *then* you get
the latest version in the repository. And if that does not
exist or is too old, *then* we get the latest version from an
upstream repository.
0.057 2012-10-07 12:28:37 America/Los_Angeles
* The Pull action will ignore requests for packages that are in
the Perl core, unless you explicitly request a version of the
package that is newer than the core.
* Removed stray dependency on Pinto::Store::File. That module
has been deprecated and no longer ships with Pinto (holybit).
0.056 2012-09-27 13:40:56 America/Los_Angeles
Important:
This version of Pinto is not compatible with repositories that
were created with prior versions. Please contact [email protected]
if you need to migrate an old repository.
New Features:
* Added the Replace action, which substitues one dist for another
on all stacks. You'll need to upgrade App::Pinto to get the
corresponding 'replace' command.
Other Changes:
* Significantly improved performance, especially for large
repositories. Pinto can now hold the *entire* CPAN (not just
the tip) and still perform reasonably well.
* Changed the way prereqs are discovered. We now trust the
dist's own META to tell us the prereqs, rather than configuring
the dist directly. This is much faster and usually just as
accurate. The only casualties are old dists that don't have a
META file, or ones that compute prereqs dynamically during
configuration. So it ain't perfect, but it is probably good
enough.
Bug Fixes:
* Pinto can now cope with distributions that contain no packages.
These are relatively rare but they do exist on CPAN, usualy in
the form of distributions that contain only scripts.
0.055 2012-09-20 13:33:57 America/Los_Angeles
Interface Changes:
* For the List action, the magic stack name is now '%' instead of
'@'. This was changed to distinguish it from revision strings
that look like stack@1234.
* The username attribute is now attached to the Config, not the
Action. This makes it available to any object that needs it
(particularly when creating a Revision).
0.054 2012-09-19 22:02:57 America/Los_Angeles
* Added a workaround so Pinto can cope with the nonsensical
common::sense module.
0.053 2012-09-19 20:58:46 America/Los_Angeles
Bug Fixes:
* For all committable actions, a commit message is required only
if the action actually changed the state of the repository. A
commit message is never required for a dryrun action.
Other Changes:
* Requires DBIx::Class-0.08200 or newer. In certain earlier
versions, prefetching was broken.
* The Install action is now committable, but it only matters
when it is also pulling packages.
0.052 2012-09-18 16:15:38 America/Los_Angeles
Important:
This version of Pinto is not compatible with repositories that
were created with prior versions. The way that archives and
indexes are stored on the filesystem has been made simpler
and faster. If using Pinto::Server, you'll need to upgrade
that too. Contact [email protected] if you need a migration
path for an existing repository.
New Features:
* Now supports a Revert action, which restores the stack to a
prior revision. This is light-weight form of version control.
* Now supports a Log action, which displays the history of
changes to a stack.
* Each action that changes the state of the repository now
requires a commit message. You can pass this into the API, or
it will prompt for one via your editor.
Other Changes:
* The Index action is no longer supported. Now that each stack
has its own index file, I see no need to have this Action.
* Orphaned archives are now automatically cleaned whenever you do
an Add or Pull action with dryrun enabled.
* Now requires Dist-Requires-0.008, which fixes some test
failures on some platforms.
0.051 2012-08-15 18:27:34 America/Los_Angeles
* More hacking to workaround the broken prefetch feature in
DBIx::Class. May result is slightly slower performance now
that we have to make more trips to the database.
* Added the Clean action to remove orphaned archives from the
filesystem. The Pull and Add actions now automatically clean
up if doing a dryrun.
0.050 2012-08-15 14:26:13 America/Los_Angeles
* I've worked around the bug that required you to use a
development version of DBIx::Class (see previous release notes
below). So now you don't have to manually install anything.
0.048 2012-08-15 09:05:19 America/Los_Angeles
Prefetch is broken in DBIx::Class-0.08198 (see RT #78456) so
Pinto now requires DBIx::Class-0.08198_01 or later. At the
moment, this is only available as a dev release, so you may have
to install it manually before building Pinto. For example:
$ cpan JROBINSON/DBIx-Class-0.08198_01.tar.gz
0.047 2012-08-13 17:21:03 America/Los_Angeles
Added a hook for controling the lockfile timeout via an
environment variable. This makes testing for Pinto::Server and
Pinto::Remote faster.
0.046 2012-08-13 15:17:18 America/Los_Angeles
Important:
Removed workaround for bug that appeared in DBIx::Class-0.08198.
We now require DBIx-Class-0.08198_01, which is only a developer
release at the moment. So you may have to fetch that dependency
manually.
Bug Fixes:
Partially resolved #14, where Pinto would blow up if you
asked it to pull a core-only package. In this case, it
really should give you a warning. But for now, it just
silently skips it.
Other Changes:
Pinto::Tester now constructs the repository on disk
immediately upon constructing the object. Before, you
had to access the pinto attribute to trigger it to
write anything to disk.
0.045 2012-07-23 23:14:42 America/Los_Angeles
Bug Fixes:
Tests were failing with the latest version of DBIx::Class.
I think the root cause is in DBIx::Class itself (see RT #78456)
but until that is resolved, I've done a workaround.
0.044 2012-07-15 01:39:18 America/Los_Angeles
Bug Fixes:
The magic stack named '@' (meaning all stacks) did
not work.
0.043 2012-06-19 10:47:15 America/Los_Angeles
Bug Fixes:
Prevent writing to closed handle, when running the install
action via pinto remotely.
Now requires Dist::Metadata 0.923 or newer, which indexes
more like PAUSE does it.
Other Stuff:
Some minor performance optimizations, to reduce the number of
trips to the database.
0.042 2012-05-17 21:55:19 America/Los_Angeles
finally{...} doesn't seem to work properly on older perls, and
this caused several test failures. According to the perldelta,
5.14 introduced several changes to exception handling. So I've
moved the exception handling into the catch{...} block. I don't
know why, but this seems to work better.
0.041 2012-05-15 11:13:27 America/Los_Angeles
Important:
There have been major changes to the interface and behavior of
Pinto (read more below). Beware this version of Pinto is NOT
compatible with repositories created with any previous version of
Pinto. If you have an existing repository and you really, really
need to preserve it, then contact me and I can work with you to
develop a migration plan. Also, many of the internal modules
have been moved around, so I strongly suggest that you remove
existing versions of all the Pinto libraries and scripts before
installing a new one on top of it.
New/Changed/Removed Features:
Pinto now supports multiple indexes called "stacks". So you
could have one stack of dependencies for application X and a
different stack for application Y (or one for development, one
for production, etc). Each stack can contain different modules
and/or different versions of those modules. It's like having
several repositories in one.
Stacks can be copied and merged, much like a version control
system. This allows you to experiment with new dependencies
without impacting other stacks. If you have multiple
applications with different dependencies (or just different
versions of them), this also gives you a way to gradually
converge dependencies. Likewise, it allows you to fork
dependencies if two applications need to diverge in some way.
The VCS integration has been removed. Most of the people I've
talked with did not find this feature particularly useful, since
you can't really branch & merge a repository (the database is
binary). This was also the most rickety part of the system.
The "pinto-admin" and "pinto-remote" applications have been
consolidated into one application called "pinto". It will use
the appropriate backend (either Pinto or Pinto::Remote) depending
on whether the repository root is a local directory or a remote
URL. However the backends ship separately from the application,
so you must choose which to install (or you can choose both).
The pinto application also has an "install" command, which
functions as a stand-in for cpanm. It is wired to pull
distributions only from your repository, using the stack of your
choice.
Pinto no longer supports mirroring CPAN. I've found that it is
difficult to manage application dependencies in the context of an
entire mirror of CPAN. Most people only care about the stuff
their application needs, so they don't really need a snapshot of
the entire CPAN. If you really want that, then CPAN::Mini does a
fine job.
Pinto no longer allows you to remove archives from the
repository, so the "clean", "purge", and "remove" commands are
gone. Eventually, my goal is to make Pinto behave just like a
VCS, where nothing is really deleted and you can always revert
back to a previous version. So you'll be able to take a
distribution off of a stack, but the .tar.gz file never really
goes away.
Pinto no longer enforces any sort of permissions on package
namespaces. Previously, Pinto only allowed the original author
to update a package (just as PAUSE does). But the restriction
was only advisory -- you could just bypass it by changing your
author identity. Now, Pinto doesn't even bother with that -- any
user can upgrade any package. All the activity is logged to a
file so you can see who changed what, but Pinto expects you to be
accountable for your actions.
Pinto now tracks dependencies between the distributions within
the repository. So it can potentially tell you which
distributions need to be tested after upgrading a module, or
whether the stack actually contains sufficient modules to satisfy
all the prerequisites for all the distributions in the stack. I
haven't yet written those commands, but the data is in there.
0.040_003 2012-05-04 21:38:07 America/Los_Angeles
Fixed bug in 35-install.t that would cause the test to fail
(instead of skipping) if cpanm was not installed. Thanks
Andreas!
Switched to using File::NFSLock instead of Lockfile::Simple. The
latter uses some deprecated syntax that causes lots of ugly
warnings on newer perls.
Still alpha testing.
0.040_002 2012-05-04 16:19:11 America/Los_Angeles
Added Action::Install. Still alpha testing.
0.040_001 2012-05-01 13:12:34 America/Los_Angeles
This is a developer release for alpha testing the stacks feature.
0.038 2012-04-16 18:14:57 America/Los_Angeles
New Features:
The "import" command will now import a particular distribution
if you specify it using the right notation. See POD for details
(Steven Leung).
Bug Fixes:
The Git store would fail if you specified the --root as a
relative path that contained any "../" updirs (William Wolf).
0.037 2012-04-10 19:57:09 America/Los_Angeles
No code changes. Just fixed dependency declarations.
Thanks CPAN Testers!
0.036 2012-04-09 00:14:50 America/Los_Angeles
New Features:
Pinto now logs activity to $root_dir/.pinto/logs/pinto.log
(Karen Etheridge). You can set the logging level in the
repository's config file.
Other Stuff:
A lot of files have been moved around in this release (and the
last couple releases). I suggest removing your current Pinto
before installing this one, to avoid accumulating cruft.
0.035 2012-04-04 19:00:35 America/Los_Angeles
New Features:
The value for the --author option now defaults to the 'user'
specified in your ~/.pause file. If that file does not exist,
then it still defaults to your current login username.
Other Changes:
All diagnostic messages from pinto-admin now go to STDERR
rather than STDOUT. So you can cleanly directy the output
into a file (like with the `list` command).
Refactored a lot of redundant code into roles that are shared
with Pinto::Remote. But if you're not looking at the Pinto
internals, you won't notice it.
0.033 2012-03-15 06:55:39 America/Los_Angeles
Bug Fixes:
Corrected documentation about the environment variable
controlling the default location of the repository.
Thanks fibo.
The index file is now properly updated after doing an
import operation. Thanks throughnothing.
0.032 2012-03-01 10:36:25 America/Los_Angeles
Bug Fixes:
Worked around a problem that caused the PAUSE indexer to
reject the last release.
Added an accurate line-count to the 02packages file so that
cpan(1) doesn't complain about it.
0.031 2012-02-28 05:19:58 America/Los_Angeles
Bug Fixes:
Fixed bug in the create command. Not sure how this ever
worked before.
New Features:
The "add" command now recursively imports all the dependencies
by default. To disable this behavior use the --norecurse option.
0.030 2012-01-26 22:00:32 America/Los_Angeles
The --repos option for pinto-admin has been officially
renamed to --root. This was done to create a symmetrical
API between Pinto and Pinto::Admin. The old --repos option
will *not* be supported for backward compatibility.
0.029 2011-12-15 00:24:11 America/Los_Angeles
The 'list' command now has --index and --noindex options to
filter the output to packages that are in the index, or not
in the index, respectively.
The 'list' command now has --pinned and --nopinned options to
filter the output to packages that are pinned, or not pinned,
respectively.
The default output format for the 'list' command now includes a
'+' character to indicate whether a package is pinned.
Some improvements to Pinto::Store::VCS::Git, which allow you
to place your Pinto repository anywhere inside a Git repository.
0.028 2011-12-12 01:22:02 America/Los_Angeles
I discovered that Subversion 1.7 changed the working copy layout
in a way that caused Pinto to run exponentially slower as the
repository got bigger (like when mirroring the CPAN). I've fixed
this now.
pinto-admin now has a 'statistics' command that will report
some basic stats about your repository. I plan to add more
stats in the future.
You can now store your repository with Git using either
Pinto::Store::VCS::Git or Pinto::Store::VCS::Git::Remote.
These are both experimental, so use with caution.
Mirror actions are now a bit faster, espeically when you
already have most of the distributions in the source
repository.
The VCS log message used for the commit is now also used
as the message for the tag operation.
Pinning a devel package is only allowed if this repository
is configured to index devel packages.
0.027 2011-12-08 15:23:00 America/Los_Angeles
The 'list' command now has options to filter the output
to either packages or distributions that contain some
substring. This is not as powerful as a regex, and you
can only filter on the package name or dist path. But
this will make things go much faster.
Fixed numerous bugs in the VCS integration. This was totally
broken. That's what I get for not writing regression tests
in that area.
Fixed compatibility issue with Pinto::Remote.
Added or improved some log messages.
Revised some documentation.
0.026 2011-12-07 11:47:27 America/Los_Angeles
===============================================================
IMPORTANT: This version of Pinto is not compatible with
repositories built with any prior version. In theory, you can
migrate your old repository with the right combination of
pinto-admin and VCS commands. If you really want to try
migrating your old repository, please contact me for guidance.
Otherwise, you'll have to create a new repository and 'add' each
of your local distributions again. If you have foreign
distributions in your repository then you'll have to 'mirror'
them again too, but you might not get exactly the same versions
that you used to have (because they are no longer the 'latest'
version on CPAN).
I know this sucks, but it is definitely worth the upgrade. This
version of Pinto is faster, more reliable, and packed with new
features. And going forward, I'll be able to maintain backward
compatibility or at least provide an automated migration path.
================================================================
* New Features:
Pinto now uses a SQLite database to store information. This
improves performance, reduces memory consumption, and ensures
data integrity. Pinto is single threaded and permits only one
database connection at a time, so it is safe for NFS (or so I've
been told by SQLite experts).
Pinto now behaves more like PAUSE, and will accept distributions
with overlapping packages. As always, only the 'latest' version
of a package appears in the index file. And just like PAUSE,
Pinto tries to figure out the lineage of packages (i.e. which
version came first, second, third, etc.) by looking at version
numbers and file timestamps. So you can throw a pile of archives
at it without having to think about putting them in a certain
order (See POD for details). You can also remove a distribution,
and the "prior" versions of its packages will automatically become
the latest.
A Pinto repository can now be used with the cpan[1] utility. It
should also work with cpanp[1], but I haven't tried it. And of
course it still works with cpanm[1]. However, Pinto does not
provide a full 01mailrc.txt.gz or 03modlist.data.gz file. So
cpan[1] features that rely on those files may not work.
Pinto can now pull foreign distributions from multiple
repositories. You can use this to fall back to another
repository if one of them is offline (which sometimes happens
with CPAN mirrors). Or you can use this to create a network of
repositories that may each have different sets of distributions.
I'm not sure if this is actually a good idea, but we'll see.
Pinto does the-right-thing with development distributions (See
POD for details). And each Pinto repository now has a 'devel'
configuration parameter. Setting this to a true value instructs
Pinto to include development releases in the index. The default
is false.
The 'create' command for pinto-admin now accepts options that set
the parameters in the config file that is generated for the new
repository.
The 'list' command for pinto-admin now accepts a --format option
that can be used to customize what/how information is displayed.
The 'remove' command for pinto-admin now works for both foreign
and local distributions. However, there is a caveat when
removing foreign distributions (See POD for details).
The 'rebuild' command for pinto-admin now has a --recompute
option that causes Pinto to recompute the 'latest' version
of all the packages (See POD for details).
pinto-admin now has a 'manual' command for displaying the full
manual for a particular command.
pinto-admin now has a 'version' command for displaying version
information.
pinto-admin now has a 'purge' command that removes everything
from your repository.
pinto-admin now has an experimental 'import' command that fetches
a remote package or distribution (and its dependencies,
recursively) and puts all of them in your local repository.
pinto-admin now has the 'pin' and 'unpin' commands, which can be
used to tie the index file to a specific version of a package.
This lets you evolve your repository while keeping certain
packages fixed. Very cool! See POD for details.
Most of the pinto-admin commands now have aliases. Thanks to the
awesomeness of App::Cmd, you can say 'pinto-admin rm' instead of
'pinto-admin remove'. The aliases are listed in the manual for
each command.
* Other Changes:
The config files for each Pinto repsoitory are now located in
$REPOS/.pinto/config.
The 'list' command for pinto-admin has been neutered. You can no
longer specify the --type or --indexed options. However, the
output does show whether the package is local/foreign and
indexed/unindexed, so you can grep on that to narrow the results.
I'm thinking of developing a query interface to let you select
which packages/distributions you want to list.
The VCS tagging mechanism has changed. Instead of making a tag for
every commit, a tag is made only when you specify the --tag option.
You can still put date/time placeholders in your tag name.
The 'noclobber' configuration setting has been removed, since it
was never implemented anyway.
The 'nocleanup' configuration setting is gone, and we no longer
support automatic cleanup. Instead, you have to run the 'clean'
action separately. You might want to setup a cron job for this.
The 'update' command is now called 'mirror'. I know, I keep
flip-flopping on that. But I think I've finally settled now.
The --force option on the 'mirror' (formerly 'update') command is
no longer supported. I'm thinking of changing the meaning of
"force" and might bring it back in a future release.
pinto-admin is a little less noisy by default. You can increase
the verbosity by repeating the '-v' option up to three times.
Now needs newer versions of Dist::Requires and
Dist::Metadata. Thanks CPAN Testers for shaking that out.
Pinto->new() will now blow up if you specify a root_dir that
doesn't actually look like a repository directory. To be valid,
it must have a database file, a modules directory, and an authors
directory.
Changed some log messages to be more helpful
and/or less noisy.
* Bug Fixes:
Fixed bug where Pinto might blow up with 'too many args' error
the first time you update from a CPAN mirror using the Svn store.
Fixed broken code (e.g. calling undefined methods) in several
places. Added more regression testing to catch this stuff.
Prevent uninitialized warning when using the 'list' command.
0.025_004 2011-12-06 21:11:00 America/Los_Angeles
0.025_003 2011-12-03 04:12:56 America/Los_Angeles
0.025_002 2011-12-02 04:39:19 America/Los_Angeles
0.025_001 2011-12-02 03:18:26 America/Los_Angeles
Net changes aggregated above in 0.026
0.024 2011-09-01 15:23:48 America/Los_Angeles
Added a "version" command to pinto-admin
General code refactoring
No interface changes
0.023 2011-08-31 14:18:49 America/Los_Angeles
* Interface Changes:
The "remove" operation now works on distribution names, rather
than package names. You must specify the full name of the
distribution, including version number and extension.
* Other Good Stuff:
Wrote the manuals for each of the pinto-admin commands.
Say `pinto-admin COMMAND --man` to see them.
0.022 2011-08-31 01:31:04 America/Los_Angeles
* Interface Changes:
You no longer need to specify the Subversion trunk in your
pinto.ini (if you were using Pinto::Store::VCS::Svn). The
location of your Pinto repository in subversion is implicit in
the `svn info` of the working copy. Secondly, the "create"
action no longer takes care of making a location in Subversion
for you. So you now have to do a little more work to setup Pinto
with Subversion. See the POD in Pinto::Store::VCS::Svn for
step-by-step instructions.
You can no longer specify a VCS tag in your pinto.ini. Making
a tag after every commit doesn't make sense. So now, a tag
is only made if you explicitly set a --tag on the command line.
Likewise, the --notag command line switch has been removed,
since the absence of a --tag is equivalent to --notag.
* Bug Fixes:
The "update" command was broken, following rename from "mirror".
Doh!
0.021 2011-08-30 01:16:55 America/Los_Angeles
* Interface Changes:
The "mirror" command is now called "update". I feel this more
accurately reflects what is going on, since a Pinto repository
isn't really a "mirror" of anything.
* Bug Fixes:
Fixed some bugs in the VCS tagging logic.
Fixed behavior when running under cron.
0.020 2011-08-28 20:40:43 America/Los_Angeles
* Enhancements:
Added the "rebuild" command, which reconstructs the master index
from the current local and mirrored indexes. This is useful if
your master index somehow gets screwed. Note this is not the
same as actually re-indexing the distributions (that's a feature
I might add later).
All commands for pinto-admin[1] now support a --man option, which
shows you the full documentation for a commmand. But at this
point, I haven't written the documentation for all the commands.
Several of the commands for pinto-admin[1] now support a --tag
option that allows you to specify an alternative tag. The
semantics of the tag will depend on which type of VCS you are
using. Likewise, you can now specify --notag to disable tagging
completely.
0.019 2011-08-24 04:09:41 America/Los_Angeles
* Bug Fixes:
The 'add' and 'remove' commands for pinto-admin were not reading
arguments from STDIN properly.
All svn commands would fail when running under pinto-server.
This was due to some strage behavior in IPC::Run that I can't
explain.
0.018 2011-08-24 01:45:21 America/Los_Angeles
Now using IPC::Run to handle external commands (like svn).
IPC::Run seems to behave better when running in a server
environment like pinto-server (via Dancer).
0.017 2011-08-24 00:50:09 America/Los_Angeles
* Interface Changes:
pinto-admin[1] is now zero-conf (at least, by default). However,