-
Improvements to publishing to make it accomodate more types of content.
-
Fix bug where the content items and placeholders associated with a fluent content model (other than a page) were not included in the published copy.
-
Provide
icekit.publishing.models.PublishableFluentContents
andicekit.publishing.admin.PublishableFluentContentsAdmin
as base classes for fluent content models and admins, to help keep things DRY. -
Minor docs on testing.
-
Greater test coverage.
-
Import model mixins
FluentFieldsMixin
,LayoutFieldMixin
, andReadabilityMixin
fromicekit.mixins
module instead oficekit.abstract_models
. -
Import admin mixin
FluentLayoutsMixin
fromicekit.admin_mixins
module instead oficekit.admin
.
-
ICEkit gets a facelift. Content editing now looks cleaner and easier to scan. Reordering items is animated, meaning it's easier to keep track of what got moved.
-
Improved Image controls, optionally including a title in the caption.
-
alt_text
is no longer required - some images don't provide content that is useful to users who can't see them, though thealt=
attribute is still always included in HTML. -
Fix a bug where looking for
help_text
in a placeholder slot that had no manual configuration raised a 500, resulting in no layout data found. -
Fix fatal error (typo) in
startproject.sh
script. -
Update
.editorconfig
, and add to project template. -
Tag Docker images during build on Travis CI for release versions.
-
Update the recommended method of running projects via
Docker
andgo.sh
to provide a more consistent and familiar experience for developers.Old:
$ docker-compose up # Run all services and log to stdout (no interactivity) $ docker-compose exec django entrypoint.sh # Shell into running `django` container to run interactive processes
New:
$ docker-compose run --rm --service-ports django # Start dependant services and shell into a new `django` container
The benefits are that:
-
We start with an interactive terminal in which we can any number of interactive processes in a familiar way.
-
It's much easier and quicker to stop and restart the main process (e.g. the Django dev server) without having to stop and restart dependant services.
-
We aren't overwhelmed by several screens of log output from all the service dependencies.
-
We don't start a WSGI process in a non-interactive
django
service, then have to shell into the container to stop it and replace it with an interactive one.
-
-
Use different locations for
PYTHONUSERBASE
(via Docker) and virtualenv (viago.sh
) directories, to avoid conflicts. -
Isolate the
go.sh
BASH shell from user's personal.bashrc
and.profile
files to avoid conflicts and unexpected behaviour. -
Validate that manually installed dependencies are available when run via
go.sh
, and fail loudly. -
Call
setup-django.sh
by default whengo.sh
is called without arguments, to mimicdocker-compose run ... django
default behaviour. -
Improve the
runtests.sh
script:-
Use a database name derived from project directory and Git branch.
-
Restore
test_initial_data.sql
instead ofinitial_data.sql
before running tests, soinitial_data.sql
can be used for development. -
Only run and report on project tests when run in a project context.
-
-
Improve detection of
*.sql
file vs source database to restore when creating a database. -
Don't clobber the version of ICEkit installed into the base Docker image when building a project image.
-
Avoid failing test builds when Coveralls fails to push its update.
-
Add an authors app.
-
You can now define
help_text
for a fluent placeholder inFLUENT_CONTENTS_PLACEHOLDER_CONFIG
. -
Improved
ICEkitURLField
, which uses correctPage
queryset.
Backwards incompatible changes:
-
The default command for
django
service now starts an interactive shell instead ofsupervisord.sh
(which starts Nginx and Gunicorn). Use the newdocker-compose run --rm --service-ports django
command to shell into a newdjango
container and then manually callrunserver.sh
orsupervisord.sh
instead ofdocker-compose up
. -
The
entrypoint.sh
script is now executed via theENTRYPOINT
instruction inDockerfile
. You don't need to explicitly include it as an argument todocker-compose run ...
commands or indocker-compose.yml
services. -
Move Node modules and Bower components out of
icekit
package and into project template for simplicity and greater visibility. Add ICEkit dependencies to your projectbower.json
andpackage.json
files. -
Remove
django-supervisor
. We are now using Supervisor directly because it uses a lot of memory and is slow to invoke the whole Django machinery just to render asupervisord.conf
template before starting Supervisor.Define additional services in
docker-compose.yml
and a Supervisor config file (referenced by theSUPERVISORD_CONFIG_INCLUDE
environment variable) or shell scripts to run additional processes interactively.
-
Refactored templates so as to only use bootstrap markup when layout is intrinsic. Improved markup for some, particularly quote and OEmbed.
-
Added instructions covering uninstalling a docker project.
-
Installation improvements.
-
Thumbnail configuration should now be specified in settings, not templates.
-
Make project run more consistently without Docker (via
go.sh
). -
Refactor docs to provide better onboarding.
-
Fix intermittent cache related test failures.
-
Serve Django with Nginx/Gunicorn under Supervisord, to buffer requests, facilitate large file uploads (500MB), and take full advantage of multiple CPU cores.
-
The
SITE_PORT
setting now represents the public port that the site is listening on (Nginx), not the WSGI process (Gunicorn). -
Use
initial_data.sql
dump to bypass old migrations on first run, not only when running tests. -
Use wrapper scripts for program commands, so we can run programs consistently in Docker containers of via Supervisord when not using Docker.
-
Expose private ports (e.g. Gunicorn, PostgreSQL, Redis) to the host on a dynamic port during development.
-
Update the
Site
object matching theSITE_ID
setting in a post-migrate signal handler with theSITE_DOMAIN
,SITE_PORT
andSITE_NAME
settings. -
Run celery programs via Supervisord when not using Docker.
-
Configure Docker and non-Docker environments to be more similar so we can use more of the same scripts to run.
-
Don't use Redis lock to avoid parallel setup when not using Docker, on a single server.
- Run tests in a Docker image on Travis CI and push to Docker Hub on success.
- Test the same settings module in Docker and Tox.
- Fix broken tests.
- Speed up tests by restoring a database with migrations already applied.
- Fix broken tests.
New:
-
#3 Include a Django project with ICEkit, making it easier to run in development, need less boilerplate code, be less likely to diverge over time, and easier to keep up-to-date.
-
#4 Make content plugins "portable", making it easier to fork and customise them for a project.
Backwards incompatible changes:
-
Make content plugins portable. You will need to run an SQL statement for each plugin manually to fix Django's migration history when upgrading an existing project.
UPDATE django_migrations SET app='icekit_plugins_brightcove' WHERE app='brightcove'; UPDATE django_migrations SET app='icekit_plugins_child_pages' WHERE app='child_pages'; UPDATE django_migrations SET app='icekit_plugins_faq' WHERE app='faq'; UPDATE django_migrations SET app='icekit_plugins_file' WHERE app='file'; UPDATE django_migrations SET app='icekit_plugins_horizontal_rule' WHERE app='horizontal_rule'; UPDATE django_migrations SET app='icekit_plugins_image' WHERE app='image'; UPDATE django_migrations SET app='icekit_plugins_instagram_embed' WHERE app='instagram_embed'; UPDATE django_migrations SET app='icekit_plugins_map' WHERE app='map'; UPDATE django_migrations SET app='icekit_plugins_map_with_text' WHERE app='map_with_text'; UPDATE django_migrations SET app='icekit_plugins_oembed_with_caption' WHERE app='oembed_with_caption'; UPDATE django_migrations SET app='icekit_plugins_page_anchor' WHERE app='page_anchor'; UPDATE django_migrations SET app='icekit_plugins_page_anchor_list' WHERE app='page_anchor_list'; UPDATE django_migrations SET app='icekit_plugins_quote' WHERE app='quote'; UPDATE django_migrations SET app='icekit_plugins_reusable_form' WHERE app='reusable_form'; UPDATE django_migrations SET app='icekit_plugins_slideshow' WHERE app='slideshow'; UPDATE django_migrations SET app='icekit_plugins_twitter_embed' WHERE app='twitter_embed';
- Initial release.