-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES.txt
212 lines (199 loc) · 9.48 KB
/
CHANGES.txt
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
v1.1.1, 2013-03-31 -- Create proper Iterator classes.
v1.1.2 2013-04-04 -- Add version control modules as 'VCS'.
v1.1.3 2013-05-06
-- Issue 4 - Uptodate unit tests are skipped
-- Issue 6 - Build property stack of Target/Task calls...
-- Issue 7 - Unittests fail on Python 2.6
-- Issue 8 - Spawn keyword argument processor error and...
-- Issue 10 - Shebang task does not follow docs
-- Issue 14 - Basedir is set for current directory, not...
New tasks
-- HashGen to create md5/sha1 hash files
-- Egg to create python archive files
Other fixes/enhancements:
-- Add --quiet and --DEBUG options and handling output processing better;
-- Add timing information after targets and the program finish.
-- Add new display object, a Verbose object that should (almost) always be on.
-- Replaced multiple exclusion predicates with a class to handle it.
-- Use mappers instead of Uptodate instances.
-- Remove 'noglob' keyword from Initer.get_files() method.
-- Ignore cases where python3 is not installed.
-- Add a LOT more unit tests (from 15 tests to 91).
-- Prevent setup.py running if pyerect is present.
-- Use setuptools instead of distutils.
v1.2.0 2013-10-13
-- Issue 11 - Better use of variables; including showing variables on
verbose output of "help" target.
-- Issue 12 - Add ability to specify variables on the command-line:
If a target has an equal sign ("="), then it is taken as a variable
assignment.
-- Issue 13 - Update Version model.
-- Issue 16 - Convert from Config to Variable; Initer.config is kept for
backward compatibility, but just references Variable
-- Issue 18 - Replace Verbose instances with Python's logging module.
-- Add a "DISPLAY" log level above ERROR; keep the display() routine
-- Use new State class instead for noop and noTimer.
-- Issue 20 - Make the product thread-safe
New targets
-- InitVCS, initializes the version control support
New tasks
-- SubPyErector, call other PyErector projects
Other fixes/enhancements:
-- Two new constructs: Sequential and Parallel; Parallel is a subclass of
Sequential; "uptodates", "dependencies" and "tasks" members of implicitly
instances of Sequential; "uptodates" cannot be Parallel, but the other
two can be. Parallel targets/tasks are executed in separate threads but
may access Variables without concern (see Issue 20).
-- Add execution stacks for Target and Task instances; this stack is
displayed instead of Python's on errors.
-- Add default variables on startup:
-- basedir (set by PyErector and Initer instantiation)
-- pyerector.vcs.version
-- pyerector.vcs.branch
-- pyerector.vcs.tags
-- pyerector.release.product
-- pyerector.release.number
-- Handle PYERECTOR_PREFIX envvar better.
-- Remove extraneous "hasformat" functionality.
-- Fixes to unit tests.
-- Better help strings.
v1.2.1 2013-10-11
-- Issue 12 - Add ability to specify variables on the command-line (update)
-- Issue 15 - Redesign iterators/mappers
-- Issue 19 - Dirlist does not work as might be expected
-- Issue 20 - Thread-safe operations (update)
-- Issue 21 - Backward compatibility for Verbose
New tasks
-- Echo, displays message
Other fixes/enhancements:
-- Add pyerector.pool.size variable, default to 10, to limit how many
PyThread instances can be created (not including the PyErector instance).
-- Update pyerect to better use iterators.
-- Handle that PyErector always returns an exception, mainly SystemExit
-- Mark as "Failed." instead of "Done." if an error occurs; have
PyErector handle a proper exit status on failure.
-- Update inheritance for LogFormatter - on py2.6, super() throws a TypeError
-- Use of Verbose and Config classes now raise DeprecationWarnings
-- Move noop and noTimer to config module.
v1.2.2 2013-10-17
Other fixes/enhancements:
-- Add (initial) regression tests.
-- Fix BaseIterators to properly handle empty directories with
noglob=True; have Clean Target use DirList.
-- Fix bug when iterator has an empty sequence.
-- Have the Help target depend on InitVCS.
-- Unittest fix for Python3.
-- Fixes found during analysis from PyCharm and pylint.
-- Use short-cut class instead of function-with-mutables for initialization.
-- Some SCM cleanup.
v1.2.3 2013-10-25
-- Issue 9 - Propagate iterator parameters in Initer.get_files.
-- Issue 23 - Add an 'api' module to aid programming
New tasks
-- Scp, perform remote copies (via scp)
-- Ssh, perform a remote command (via ssh)
New iterator/mapper
-- IdentityMapper, destination file is always the destdir value.
Other fixes/enhancements:
-- Allow a Variable instance in a dependencies or tasks sequence.
-- Code cleanup using PyCharm and pylint.
-- Collapse FileSet into BaseIterator, make FileSet same as FileIterator.
-- Greatly simplified the calling system, now allows for nested calls of
Sequential/Parallel.
-- Refactor the "allow" condition in BaseIterator.next to be more
straightforward.
-- Fix the RealClean target, including a fix to Exclusions.
-- Fix to Help target for Targets with no docstring.
-- Fix how the regression module sets the proper sys.path value.
-- Fix condition where exception was shown on Abort.
-- Fixes to Subcommand calls.
-- Change Regression to a Target from a SubPyErector subclass so it can be
called by itself.
-- Create symlinks under regression/ to the proper (local) distribution,
thus overriding sys.path.
-- Move unittest driver script, named "unit-test.py" (to prevent imports)
outside of tasks.py; pass the parameters as a string instead of a
filename.
v1.2.4 2014-04-08
-- Issue 25 - Move BaseIterator and FileMapper logic to Iterator and
Mapper respectively; remove BaseIterator.
-- Issue 26 - Add directory attribute to pyerector.vcs.base.Base
subclasses; move vcs_check under Base as a classmethod.
-- Issue 27 - lazy-evaluating Path works, but not properly integrated
with the rest of the modules.
-- Issue 28 - Allow a cons as a valid return type of Iterator.next;
handle that specially in Mapper.next.
-- Issue 29 - The InitVCS target has been deprecated. The VCS() function
is called just before the package finishes being impored.
-- Issue 30 - pyerector.version.Version is now exported from the package;
it is callable with release number strings to compare with the the
current release number. If greater than the current release,
terminate with an error message.
New target
-- Testonly performs the Unittest task and the Test target now has
the dependencies of "Build, Testonly", with no tasks. This allows
calling the "testonly" target without rebuilding everything.
New task
-- Touch which is similar to the touch(1) command, creating files if
they do not exist.
New type
-- FileVariable allows some deferred resolution; file is loaded when
accessed, not when created.
Other fixes/enhancements:
-- The Exclusions object now accepts three values: True, False and None;
False will still include VCS().directory, and None will not include
any extra values.
-- Change vcs modules to a plugin type setup, using same registration
as being used by Initer; plugins loaded automatically when
pyerector.vcs.VCS is called.
-- Get the proper information back from Mercurial; previously only the
tip was retrieve.
-- Allow for mappers in Tokenize.
-- Typo in Symlinki task.
-- Add *.user and *.date variables from VCS.current_info.
-- Fix the template string for git-log; add an assertion.
-- Tokenize now allows for multiple Iterators/Mappers to be passed.
-- Various fixes to Iterators and Mappers; add uptodates entries in
pyerect.
-- Do not use assertions for type checking.
-- Initer.asserttype returns TypeError now.
-- Blank values for version strings.
-- Get a closer timestamp for svn.date comparison in unittests.
-- Allow an Iterator to be passed to Iterator.adjust.
-- Use th proper version variables.
-- Remove unused u() function.
-- Fix unit tests after making Base.args into a tuple.
v1.2.4.1 2014-07-25
-- Issue 33 - Traverse up the directory to find the right VCS.
v1.2.5 2014-09-02
-- Issue 34 - Remove Unittest from the tasks of Testonly
Other fixes/enhancements:
-- Exclusions handle usedefaults better; usedefaults=False, add vcs
names; usedefaults=None, nothing added.
-- Fix vcs.base.Base.vcs_check to search each directory for a vcs
before moving up, to prevent nfs mount issues.
-- Fix warnings where EGG-INFO files were added twice to the toadd
list.
v1.2.5.1 2015-01-10
Other fixes/enhancements
-- Py3k cannot sort types, so key off the names.
-- Must preserve the logging level number as you cannot retrieve the
level from the name in Py3k.
-- Update download url after google code removed uploads.
-- Add "homedir" as a standard Variable.
-- Add new targets "install" and "force".
-- Update Copyright dates.
v1.2.6 2016-12-16
-- Make Version instance displayable.
-- Update Copyright dates.
v1.3.0 2017-01-26
-- Integrate to using Path (most) everywhere.
-- Add Arguments class to handle arguments to Tasks.
-- Move tasks to plugin format under pyerector/tasks/.
-- Make Version instance displayable.
-- Update pypi homepage value to bitbucket
-- Add EncodeVar task
-- Add a filename property to FileVariable and change how value property is handled.
-- Changes based on coverage and pylint.
v1.3.0.1 2017-02-21
-- Fix regression/pyerect and SubPyErector.