-
Notifications
You must be signed in to change notification settings - Fork 3
/
CHANGES.txt
284 lines (184 loc) · 8.03 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
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
CHANGES
*******
0.15 (unreleased)
=================
- Fix Flake8 errors.
- Apply Black code formatter.
- Drop support for Python 3.4 and 3.5.
- Add support for Python 3.9.
- Use GitHub Actions instead of Travis for CI.
(Travis no longer gives free credits to open source projects.)
- Cleanup old Python 2 code with pyupgrade_.
.. _pyupgrade: https://github.com/asottile/pyupgrade
0.14 (2020-01-29)
=================
- **Removed**: Removed support for Python 2.
You have to upgrade to Python 3 if you want to use this version.
- Dropped support for Python 3.3.
- Added support for Python 3.5, 3.6, 3.7, 3.8 and PyPy 3.6.
- Make Python 3.7 the default testing environment.
- Don't compute expensive logging information if logging is disabled.
- Add integration for the Black code formatter.
0.13 (2016-12-23)
=================
- Add a Sentinel class, used for the ``NOT_FOUND`` object.
- Upload universal wheels to pypi during release.
- make ``directive_name`` property available on ``Directive`` instances.
0.12 (2016-10-04)
=================
- **Breaking changes**: previously you defined new directives using the
``App.directive`` directive. This would lead to import confusion: you
*have* to import the modules that define directives before you can actually
use them, even though you've already imported your app class.
In this version of Dectate we've changed the way you define directives.
Instead of::
class MyApp(dectate.App):
pass
@MyApp.directive('foo')
class FooAction(dectate.Action):
...
You now write this::
class FooAction(directive.Action)
...
class MyApp(dectate.App):
foo = directive(FooAction)
So, you define the directives directly on the app class that needs
them.
Uses of ``private_action_class`` should be replaced by an underscored
directive definition::
class MyApp(dectate.App):
_my_private_thing = directive(PrivateAction)
- Use the same Git ignore file used in other Morepath projects.
- If you set the ``app_class_arg`` class attribute to ``True`` on an
action, then an ``app_class`` is passed along to ``perform``,
``identifier``, etc. This way you can affect the app class directly
instead of just its underlying configuration in the ``config``
attribute.
- Similarly if you set the ``app_class_arg`` attribute ``True`` on a
factory class, it is passed in.
- Add a ``clean`` method to the ``App`` class. You can override this
to introduce your own cleanup policy for aspects of the class that are
not contained in the ``config`` attribute.
- We now use virtualenv and pip instead of buildout to set up the
development environment. The development documentation has been
updated accordingly.
- Include doctests in Tox and Travis.
0.11 (2016-07-18)
=================
- **Removed**: ``autocommit`` was removed from the Dectate API. Rely
on the ``commit`` class method of the ``App`` class instead for a
more explicit alternative.
- **Removed**: ``auto_query_tool`` was removed from the Dectate API.
Use ``query_tool(App.commit())`` instead.
- Fix ``repr`` of directives so that you can at least see their name.
- the execution order of filters is now reproducible, to ensure
consistent test coverage reports.
- Use abstract base classes from the standard library for the ``Action``
and ``Composite`` classes.
- Use feature detection instead of version detection to ensure Python
2/3 compatibility.
- Increased test coverage.
- Set up Travis CI and Coverall as continuous integration services for
quality assurance purposes.
- Add support for Python 3.3 and 3.5.
- Make Python 3.5 the default testing environment.
0.10.2 (2016-04-26)
===================
- If nothing is found for an app in the query tool, don't mention it
in the output so as to avoid cluttering the results.
- Fix a major bug in the query tool where if an app resulted in no
results, any subsequent apps weren't even searched.
0.10.1 (2016-04-26)
===================
- Create proper deprecation warnings instead of plain warnings for
``autocommit`` and ``auto_query_tool``.
0.10 (2016-04-25)
=================
- **Deprecated** The ``autocommit`` function is deprecated. Rely on
the ``commit`` class method of the ``App`` class instead for a more
explicit alternative.
- **Deprecated** The ``auto_query_tool`` function is deprecated. Rely
on ``dectate.query_tool(MyApp.commit())`` instead. Since the commit
method returns an iterable of ``App`` classes that are required to
commit the app class it is invoked on, this returns the right
information.
- ``topological_sort`` function is exposed as the public API.
- A ``commit`` class method on ``App`` classes.
- Report on inconsistent uses of factories between different directives'
``config`` settings as well as ``factory_arguments`` for registries. This
prevents bugs where a new directive introduces the wrong factory for
an existing directive.
- Expanded internals documentation.
0.9.1 (2016-04-19)
==================
- Fix a subtle bug introduced in the last release. If
``factory_arguments`` were in use with a config name only created in
that context, it was not properly cleaned up, which in some cases
can make a commit of a subclass get the same config object as that
of the base class.
0.9 (2016-04-19)
================
- Change the behavior of ``query_tool`` so that if it cannot find an
action class for the directive name the query result is empty
instead of making this an error. This makes ``auto_query_tool`` work
better.
- Introduce ``auto_query_tool`` which uses the automatically found
app classes as the default app classes to query.
- Fix tests that use ``__builtin__`` that were failing on Python 3.
- Dependencies only listed in ``factory_arguments`` are also created
during config creation.
0.8 (2016-04-12)
================
- Document how to refer to builtins in Python 3.
- Expose ``is_committed`` method on ``App`` subclasses.
0.7 (2016-04-11)
================
- Fix a few documentation issues.
- Expose ``convert_dotted_name`` and document it.
- Implement new ``convert_bool``.
- Allow use of directive name instead of Action subclass as argument
to Query.
- A ``query_app`` function which is especially helpful when writing
tests for the query tool -- it takes unconverted filter arguments.
- Use newer version of ``with_metaclass`` from six.
- Expose ``NOT_FOUND`` and document it.
- Introduce a new ``filter_get_value`` method you can implement if the
normal attribute getting and ``filter_name`` are not enough.
0.6 (2016-04-06)
================
- Introduce a query system for actions and a command-line tool that
lets you query actions.
0.5 (2016-04-04)
================
- **Breaking change** The signature of ``commit`` has changed. Just
pass in one or more arguments you want to commit instead of a list. See
#8.
0.4 (2016-04-01)
================
- Expose ``code_info`` attribute for action. The ``path`` in
particular can be useful in implementing a directive such as
Morepath's ``template_directory``. Expose it for composite too.
- Report a few more errors; you cannot use ``config``, ``before`` or
``after`` after in an action class if ``group_class`` is set.
- Raise a DirectiveReportError if a DirectiveError is raised in a
composite ``actions`` method.
0.3 (2016-03-30)
================
- Document ``importscan`` package that can be used in combination with
this one.
- Introduced ``factory_arguments`` feature on ``config`` factories,
which can be used to create dependency relationships between
configuration.
- Fix a bug where config items were not always properly reused. Now
only the first one in the action class dependency order is used, and
it is not recreated.
0.2 (2016-03-29)
================
- Remove clear_autocommit as it was useless during testing anyway.
In tests just use explicit commit.
- Add a ``dectate.sphinxext`` module that can be plugged into Sphinx
so that directives are documented properly.
- Document how Dectate deals with double imports.
0.1 (2016-03-29)
================
- Initial public release.