Old changes in atelier
¶
2020-12-07¶
inv release
failed because PyPI has a new limit of 1 second between each
api call. Fixed this using the
RateLimitedServerProxy
posted by evgeni on https://github.com/pypa/warehouse/issues/8753
2020-09-24¶
Fix pp -l
fails when a repo has HEAD detached.
2020-07-20¶
Misc changes.
Released Atelier 1.1.24 to PyPI (and bugfix release 1.1.25 a bit later).
2020-06-07¶
Optimized the yearly blog index (blogger_year
directive) : add the
date before the “All entries” list. Have them sorted newest first. No navigator
when there is only one year.
2020-04-08¶
Fixed a bug that caused rstgen.sphinxconf.blog
to fail collecting
multiple blog entries of a same day in some cases. You can now have two files
0408.rst
and 0408b.rst
and atelier will collect them correctly.
The calendar link will point to the first one.
2019-12-03¶
rstgen.sphinxconf.configure()
now installs sphinx_rtd_style as theme.
2019-11-27¶
Remove tox from install_requires in favor of standart tesing using unittest.
Released version 1.1.23
2019-11-26¶
Changed default of test_command
to “python -m unittest discover -s tests”.
2019-11-25¶
atelier.invlib.tasks
now changes the current working directory to the
project’s root_dir
before launching test_command
.
2019-11-22¶
(canceled on 20191122) When a tox.ini
file exists, the inv test
command now sets an environment variable REQ_VERSION
to the value
“local” when calling tox.
We realized that Atelier must not use tox. Atelier is meant to run within one virtual environment, tox is being used “outside” of atelier. New
2019-11-20¶
(canceled on 20191122) The command inv cov
now runs inv test
before actually running the
coverage.
Released version 1.1.22
2019-11-19¶
Released version 1.1.20 Released version 1.1.21
2019-11-15¶
(canceled on 20191122) inv test
now simply calls tox if a file tox.ini
exists. To use
the new way of testing, existing projects should:
add a
tox.ini
filerename
__init__.py
totest_everything.py
Add
.tox
to the.gitignore
file.
2019-11-11¶
Released version 1.1.19
2019-11-07¶
rstgen.sphinxconf.interproject.configure()
now supports intersphinx links
to pure documentation projects.
2019-10-03¶
rstgen.sphinxconf.interproject.configure()
didn’t collect the
intersphinx_mapping for packages that had an intersphinx_urls
but were
installed via PyPI.
Add sphinx to the install_requires.
Released version 1.1.17 and then 1.1.18
2019-10-02¶
When building the doc, raise an clear exception if we can’t import the required package.
Released version 1.1.16.
2019-08-09¶
When you instantiate a atelier.sheller.Sheller
without specifying a
directory, it now creates a temporary directory and all processes run there.
Until now they ran in the current working directory, which is pretty
unpredictable.
Released version 1.1.15.
2019-08-05¶
We have now two config settings for inv prep
: prep_command
and
demo_prep_command
. demo_prep_command
is what
prep_command
was until now (i.e. a command to run in every demo
project). prep_command
(default empty) is now a command to run in the
project’s root directory. First use case is getlino. Both settings are meant to be
customized in the projects tasks.py
file.
Released version 1.1.14.
2019-08-02¶
The pp -l
command no longer shows the doctrees. If you want to see them,
change SHOW_DOCTREES
in atelier.projects
to True. Showing the
doctrees causes the command to need about 7 seconds instead of one second (in my
environment) because it also imports the conf.py
file of every doctree.
2019-08-01¶
Renamed `inv configure
to inv install
2019-07-29¶
The default value for the editor_command
setting is now taken from
the EDITOR
environment variable.
2019-07-20¶
Added a new command inv configure
(which later became inv install
).
Released version 1.1.13.
2019-07-01¶
The inv release
command no longer creates a version branch by default.
If you want a branch, you must now say --branch
.
2019-06-07¶
Added support for multilingual Sphinx sites. When the conf.py
file of
a Sphinx doctree defines a variable translated_languages
(which is
expected to be a list of language codes), then inv mm
and inv bd
now act accordingly. This works only if you previously did pip install
sphinx-intl
. You should add yourself interlanguage links. The simplest way
is to write a template languages.html
and add it to your
html_sidebars
.
2019-03-07¶
per_project -l
now shows the title of each doctreeinterproject no longer stops loading after current project when no explicit project list is given.
2019-03-06¶
Fixed a bug in atelier.sphinxcontrib.interproject
which caused it to not
correctly set intersphinx_mapping
when local builds are being used. Intersphinx data in builds of other local
projects is now being used by default if it exists. To simulate the situation
on Travis where they never exist, set an environment variable
ATELIER_IGNORE_LOCAL_BUILDS
to the string “yes”.
2019-02-12¶
The notag
option of inv release
was renamed to nobranch
.
2019-01-21¶
Added a --reverse
option to pp.
You can now run a command in all projects in the reversed order of what is
defined in your ~/.atelier/config.py
.
This is important if you maintain several projects whose docs use intersphinx
to refer to each other. In such a context you will use the --reverse
option
for commands like inv bd and inv pd. You can then run a
full pp tour as follows:
$ pp -rv inv clean -b bd pd
$ pp inv prep test
Rule of thumb : project a must come before project b if
code in a requires code in b to be installed
docs in a require intersphinx references to docs of b
Version 1.1.12 (released 2018-11-24)¶
(20181124) The intersphinx_urls
can now be specified in
tasks.py
for projects without a main_module
.
Version 1.1.11 (released 2018-11-05)¶
(20181105) changed the syntax of demo_projects
: instead of
specifying paths (relative to the project’s root_dir
) we now
specify them as Python modules.
(20181102) added an option –only (or -o) to inv bd
and
inv pd
because in book we have now already 4 doctrees and
sometimes you might want to build only one of them.
Version 1.1.10 (released 2018-10-29)¶
(20181029) The inv release
command now creates a branch
instead of a tag (#2599 ).
Version 1.1.9 (released 2018-09-19)¶
(20180901) : The inv release
command now also pushes the
version tag. Tag creation can be skipped by specifying the new
argument --notag
.
(20180821) Added support for Sphinx version is 1.8 or later.
rstgen.sphinxconf.configure()
now checks the Sphinx version and
sets the new autodoc_default_options
configuration value instead of the deprecated autodoc_default_flags
(if Sphinx is 1.8 or newer).
The inv clean
command now also removes .eggs
directories and __pycache__
directories.
The DjangoTemplateBridge
from rstgen.sphinxconf
was
not used and has been removed.
(20180806) : The context variable {prj}
in sdist_dir
must not be the project_name
but SETUP_INFO['name']
.
(20180803) : sdist_dir
now supports a string template with a
single context variable: {prj}
will be replaced by the
project_name
atelier.invlib.tasks.show_pypi_status()
has a new optional
argument severe. Default value is True (same behaviour as before),
but the inv sdist
command now calls with severe=False.
(20180521) Bugfix: When the ~/.atelier/config.py
file
contained an invalid project name (i.e. it calls
atelier.projects.add_project()
with a root_dir that doesn’t
exist), the project was being added to the list, but pp -l
failed:
AttributeError: 'NoneType' object has no attribute 'configuration'
Now this configuration error will already raise an exception when
reading the ~/.atelier/config.py
file, making it easier to
localize.
Version 1.1.8 (released 2018-05-21)¶
(20180510) get_project_from_module
didn’t yet work in
environments without a local config.py
file. Such projects
have neither a tasks.py
file not a setup.py
file,
but at least they have a main_package
(and that’s what intersphinx needs).
This fixes #2385 (intersphinx does not find the objects.inv
for Atelier on Travis).
Version 1.1.7 (released 2018-05-04)¶
More internal optimizations. Fixed a bug which caused problems in
per_project
with reading the configuration.
Version 1.1.6 (released 2018-05-02)¶
The test suite generated by atelier.test.make_docs_suite()
is
now sorted alphabeticallly in order to avoid surprises when some
doctest inadvertantly modifies a demo database or some other
condition.
Fixed a bug in per_project
: commands starting with git
(e.g. pp git st
) would fail with a traceback.
More internal optimizations, e.g. the config
of a project now
always has all keys.
Version 1.1.5 (released 2018-04-30)¶
Fixes some bugs that caused failures when building docs on Travis. Versions 1.1.0 through 1.1.4 were beta previews for this.
Backwards-incompatible new syntax for tasks.py
files:
Before:
from atelier.invlib.ns import ns
ns.setup_from_tasks(globals(), ...)
After:
from atelier.invlib import setup_from_tasks
ns = setup_from_tasks(globals(), ...)
Version 1.0.14 (released 2018-03-15)¶
New function
atelier.utils.isidentifier()
Version 1.0.13 (released 2017-12-17)¶
Better support for Python 2-3 compatible doctests:
Added a new function
atelier.utils.sixprint()
.atelier.utils.rmu()
now honors Mike Orr’spathlib.Path
objects which happen to print differently under Python 3.
Version 1.0.12 (released 2017-10-11)¶
New optional parameter addenv for
atelier.test.make_docs_suite()
.
Version 1.0.11 (released 2017-09-26)¶
Better Python 3 support and increased test coverage.
Version 1.0.10 (released 2017-09-22)¶
Version 1.0.9 wasn’t enough: the default value for
prep_command
also needs to use sys.executable
.
Version 1.0.9 (released 2017-09-22)¶
Several tasks in atelier.invlib
used to call hard-coded
python, but on certain CI environments the Python executable has
another name. Replaced by sys.executable
.
Version 1.0.8 (released 2017-09-20)¶
Changed configuration API for demo_projects: I moved the definition of
demo_projects
from Lino to atelier.invlib
and changed
the syntax: the itema of demo_projects
must now be directory
names (and no longer names of Django settings modules).
Version 1.0.7 (released 2017-09-12)¶
DocTestCase removes PYTHONPATH from environment. Fixes #1296.
Version 1.0.6 (released 2017-06-07)¶
New functions atelier.utils.isiterable()
and
atelier.utils.is_string()
.
Version 1.0.5 (released 2017-02-16)¶
Fixes some Python 3 issues.
Version 1.0.4 (released 2016-10-26)¶
A minor but backwards-incompatible optimization of the modules below
atelier.invlib
requires changes in thetasks.py
file of every project which uses Atelier.
Version 1.0.3 (released 2016-08-31)¶
The
inv ls
command has been replaced by a--list
option toper_project
. (2016-08-14)inv sdist
now creates the archive file directly in sdist_dir and no longer in a subdir thereof (using the project name).Worked on
inv cov
.
Version 1.0.2 (released 2016-07-16)¶
Fixes
TypeError: setup_from_tasks() got an unexpected keyword argument 'demo_projects'
. Thanks to Grigorij for reporting the problem.
Version 1.0.1 (released 2016-06-19)¶
Support the new pyinvoke version 0.13 (released 10 days ago).
atelier.invlib
now works with both versions. Thanks to James for reporting problem and solution.
Version 1.0.0 (released 2016-03-25)¶
First satisfying API and docs for inv tasks defined by atelier
Version 0.0.20 (released 2016-03-24)¶
Most
fab
commands now work asinv
.Fixed a bug which caused
TypeError: object.__new__(NotImplementedType) is not safe, use NotImplementedType.__new__()
Version 0.0.19 (released 2016-03-08)¶
New functions
atelier.utils.dict_py2()
,atelier.utils.list_py2()
andatelier.utils.tuple_py2()
are required for Lino’s test suite.
Version 0.0.18 (released 2016-03-04)¶
New function
atelier.utils.last_day_of_month()
.
Version 0.0.17 (released 2016-02-15)¶
Subtle change in
docs_rsync_dest
: until now it was not possible to specify a template without any placeholder (as the one in the example on https://github.com/lsaffre/dblog)Started to replace fabric by invoke. This is not finished. For the moment you should continue to use the
fab
commands. But soon they will be replaced byinv
commands.
Version 0.0.16 (released 2015-12-04)¶
atelier.fablib
no longer tries to import django.utils.importlib. (Dropped support for Python 2.6)Fixed #553. The
fab bd
command failed to callload_fabfile
when trying to write the README.rst file. This didn’t disturb anybody until now because I have a~/.atelier/config.py
file (and when you have such a file, all projects are automatically loaded, includingload_fabfile
.Fixed #533.
fab bd
failed when the repository was in a directory using a symbolic link because Python got hassled when importing the main module.atelier.projects
now resolves the project_dir.
Version 0.0.15 (released 2015-06-10)¶
New setting atelier.fablib.env.locale_dir
. Until now
fab mm always wrote the locale files into a subdirectory of
the main module. Now a project can specify an arbitrary location. This
was necessary for Django 1.7 where you cannot have plugins named
foo.modlib.bar if you also have a plugin whose full name is foo
(2015-04-27)
New function atelier.rstgen.attrtable.
Version 0.0.14 (released 2015-03-15)¶
Importing atelier
now automatically adds a codecs writer to
sys.stdout. As a consequence, atelier.doctest_utf8
is no
longer needed.
Version 0.0.13 (released 2015-02-14)¶
Fixed a bug in atelier.test.TestCase.run_subprocess()
which
could cause a subprocess to deadlock when it generated more output
than the OS pipe buffer would swallow.
JarBuilder
is now in a
separate module, the usage API is slightly changed. Signing with a
timestamp is now optional, and the URL of the TSA can be configured.
Version 0.0.12 (released 2015-02-02)¶
Getting Lino to build on Travis CI. Once again I changed the whole
system of declaring demo projects. The parameter to
atelier.fablib.add_demo_project()
must be a Django settings
module, it cannot be a path. And
atelier.fablib.run_in_demo_projects()
must set the current
working directory to the site_dir
, not the project_dir
.
Version 0.0.11 (released 2015-01-29)¶
Users of
atelier.fablib
who used “demo databases” (which we now call “Django demo projects”, seeatelier.fablib.env.demo_projects
) must adapt theirfabfile.py
as described in 2015-01-29.New configuration setting
atelier.fablib.env.editor_command
.
Version 0.0.10 (released 2014-12-29)¶
Fixes a problem for generating the calendar view of a
blogger_year
: the cell for December 29, 2014 was not
clickable even when a blog entry existed.
Version 0.0.9 (released 2014-12-26)¶
fab blog
failed when the user had onlyVISUAL
but notEDITOR
set (2014-12-27).fab blog
failed when the directory for the current year didn’t yet exist. Now it automatically wishes “Happy New Year”, creates both the directory and the defaultindex.rst
file for that year.Removed (source scripts/shotwell2blog.py) which has now its own repository.
(source scripts/per_project) no longer stumbles over projects whose revision_control_system is None.
Version 0.0.8 (released 2014-12-26)¶
fab_commands can now be invoked from a subdirectory of the project’s root. And
atelier.projects
now supports to work in undeclared projects even if there is aconfig.py
file. (2014-12-26)New method
shell_block
.fab docs renamed to
fab bd
, fab pub renamed tofab pd
Version 0.0.7 (released 2014-12-22)¶
This is a bugfix release for 0.0.6 which fixes one bug:
[localhost] local: git tag -a 0.0.6 -m Release atelier 0.0.6.
fatal: too many params
Version 0.0.6 (released 2014-12-22)¶
The
fab release
now also does git tag.The
fab release
command now reminds me of the things to check before a release, communicates with PyPI and displays information about the last official release.Improved the documentation.
Version 0.0.5 (released 20141207)¶
Version 0.0.3¶
Fixed AttributeError: work_root occuring when there was no work_root in user’s
.fabricrc
file. The work_root env setting is no longer used.(2014-01-17) atelier now supports namespace packages (and thus the
fab summary
fablib command no longer prints “old” and “new” version because that would require the Distribution object (returned from pkg_resources.get_distribution) which afaics makes problems for namespace packages.(2013-06-23)
atelier.test.TestCase.run_simple_doctests()
didn’t yet support non-ascii characters.Now it does. Had to add a new module
atelier.doctest_utf8
for this. Because we need to run each doctest in a separate subprocess and because the command-line interface of python -m doctest has no way to specify an encoding of the input file.rstgen.sphinxconf.configure()
now automatically adds the intersphinx entries for projects managed in this atelier.The PROJECTS variable in /etc/atelier/config.py is now a list of importable Python module names, and their local path will be automatically extracted. No longer necessary to define a PROJECTS_HOME
per_project no longer inserts “fab” as first command.
Renamed atelier.test.SubProcessTestCase to atelier.test.TestCase. Moved Django-specific methods away to a new module
djangosite.utils.pythontest
.
Version 0.0.2 (released 2013-05-05)¶
atelier.test.SubProcessTestCase.run_docs_doctests now activates the Site’s default language for each testcase (when
north
is available)
Version 0.0.1 (released 2013-04-22)¶
This project was split out of djangosite in April 2013. See 2013-04-10.