Skip to content

Releases: rafalp/Misago

Misago 0.14.0

22 Dec 20:46
Compare
Choose a tag to compare

Misago 0.14 is quality of life release that fixes error that may occur when spambots try to submit their spam into login form, and updates translation files for Spanish, French, Russian and Chinese languages.

Updating instructions

To update Misago from 0.13 to 0.14 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

Then run migrate and collectstatic commands to make sure your forum's database and static files are up to date:

python manage.py migrate
python manage.py collectstatic

New features

none

Theme changes

none

Bugs fixed

  • #943: Misago will now handle maliciously constructed quasi urls sent to login view that pass is_safe_url check but throw when passed to redirect()
  • #945: setup.py should now open README.rst in binary mode and then decode it to UTF-8 string. This should allow people running their consoles with non-unicode encoding to install Misago.

Implementation and API changes

none

Documentation changes

none

Localization changes

  • Updated Spanish (es), French (fr), Russian (ru) and Chinese (zh_Hans) language files to be current with their state on transifex.

Misago 0.13.0

20 Oct 21:36
Compare
Choose a tag to compare

Misago 0.13 has been released, bringing relatively hard to notice but welcome in the long run changes to ways that posts reads are tracked and handled by Misago's features. Beginning with Misago 0.13, forum's read tracker is post-accurate. This means that user mis-clicking "last" link will no longer erroneously flag all posts in thread as read. Instead, only last post will be marked as such, and all other posts will stay as unread, letting your users to keep better track of what they've read and what they've missed. This also provides more fair treatment for moderated messages, which will now show as unread to other users as they are approved by moderators.

Lastly post-level accuracy opens Misago for future improvements like marking posts as unread upon their edition or such.

Updating instructions

WARNING: Misago 0.13 includes non-reversible data migrations for read tracking feature. Those may take a while to run on your forum. Make sure you'll backup your database before updating!

To update Misago from 0.12 to 0.13 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

Then run migrate and collecstatic commands to make sure your forum's database and static files are up to date:

python manage.py migrate
python manage.py collecstatic

New features

  • #909 - Events are now marked as read by default to users that caused them.
  • #910 - Misago will now preserve read data for posts belonging to threads that are moved around or merged with each other.
  • #912 - Thread subscriptions are now keps when threads are merged.

Theme changes

  • #675 - Option to mark all threads as read has been removed.

Bugs fixed

  • #929 - Fixed showstopper on message preview API.

Implementation and API changes

  • #675 - Made read tracking mechanism post-accurate instead of thread-accurate. This enables Misago to present more accurate read information concerning threads containing previously hidden posts or posts moved from other threads or categories.
  • #922 - Added app config for misago.search application, which should solve name conflicts with 3rd party apps.

Documentation changes

none

Localization changes

  • Synchronized translation files with Transifex state for 20.10.2017

Misago 0.12.0

07 Oct 00:18
Compare
Choose a tag to compare

Updating instructions

To update Misago from 0.11 to 0.12 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

Then run migrate and collectstatic to make sure you database and static files are up to date too:

python manage.py migrate
python manage.py collectstatic

New features

none

Theme changes

none

Bugs fixed

  • #893 - Tightened the input validation in various API endpoints, which would previously crash if they received incorrectly structured data.
  • #911 - Events from moderation actions are no longer accounted for when making decision if to subscribe thread on reply.
  • #920 - Fixed typo in threadslist/base.html template causing Misago to never display root-specific "forum is empty" message when no visible threads exist.

Implementation and API changes

  • #907 - Removed excessive user.lock() calls from codebase. Moved location of thread's read transaction to the utility function.
  • #921 - Replaced lazy ACL provides initialization occurring on first request with eager one that occurs after application models have been initialized. This should hopefully resolve the issue that some people have experienced, where sometimes ACL providers were initialized twice, likely by race condition, causing hard to debug crashes on their sites.

Documentation changes

none

Localization changes

  • #913 - Some translation messages were moved around or removed as part of #893.

Misago 0.11.0

09 Sep 18:04
Compare
Choose a tag to compare

Updating instructions

To update Misago from 0.10 to 0.11 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

Next, open your settings.py, look up the context_processors setting under TEMPLATES, and find 'misago.conf.context_processors.settings', line:

'misago.conf.context_processors.settings',

Next, add new line with 'misago.search.context_processors.search_providers', below it:

'misago.conf.context_processors.settings',
'misago.search.context_processors.search_providers',

New features

  • #886 - Misago will now display search icon in navbar on desktop and tablet sized displays, that lets your users to perform quick searches for threads and users without need for going to search page.
  • #902 - It's now possible to link to page containing search results for search provider and query. This is currently used for "see all results" links in navbar's search, but may be expanded in the future.

Theme changes

  • #900 - If user has permission to use private threads, icon link to them will always be present next to user's avatar in navbar.

Bugs fixed

  • #901 - Misago will no longer display links to private threads in UI if user has no permission to use them.
  • #904 - Fixed showstopper on "delete all" action in users admin, increased its tests coverage.

Implementation and API changes

none

Documentation changes

none

Localization changes

  • #906 - Misago now includes the configuration files required for the [Transifex Client] to work, which should make it easier for translators to work and test their translations. In addition to this Misago now includes translation files for languages which translation progress is greater than 40%: Russian, French and Chinese.

Misago 0.10.0

13 Aug 05:11
Compare
Choose a tag to compare

Misago 0.10 was originally planned to be feature release adding search field to forum's navbar, but it was delayed first by discovery of showstopper fixing of which I've prioritized, then cleanup of permission system's handling of closed categories and threads. Finally RL interrupted limiting amount of time I could spend on development.

Still, I'm releasing Misago 0.10 with improvements to bulk moderation actions, permission system, as well as small configurability option implemented by @musindmitriy and small improvement in loading JavaScript translations that should hopefully solve caching problems where browser would cache JavaScript translation for old language that was changed in site's configuration.

Updating instructions

To update Misago from 0.9 to 0.10 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

As always, you should run python manage.py migrate and python manage.py collectstatic commands to put your database and static files up to date.

New features

  • #890 - Added MISAGO_BLEACH_CALLBACKS setting for better control over automatic links in user posts for those who wish for it.

Theme changes

none

Bugs fixed

  • #884 - Added bulk update/delete operations support for API, that should help with deadlocks.
  • #890 - Misago will no longer add rel="nofollow" to internal urls.

Implementation and API changes

  • #887 - Unified handling of closed categories and threads in permissions system.
  • #893 - Moved ID's lists cleaning to utility function.
  • #899 - Misago will now add language code at the end of the link to JavaScript's translation catalog to bypass browser caching and make language change instantaneous.

Translation changes

  • #888 - Generated new translation files containing changes for new messages - uploaded on Transifex.

Documentation changes

  • #892 - Added readme to project's page on pypi.
  • #894 - Fixed some url's in readme and docs.

Misago 0.9.0

09 Jul 19:24
Compare
Choose a tag to compare

Updating instructions

To update Misago from 0.8 to 0.9 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

After installing Misago 0.9 from PIP you should run the python manage.py collectstatic for your site to update your static files to their latest versions.

New features

  • #874 - Added mention user suggestion dropdown to post editor.
  • #878 - Logged profile detail changes now include "absolute_url" tag that allows quick access to profile's detail tab.

Theme changes

  • #883 - Lighted up code blocks.

Bugs fixed

  • #879 - Fix js build on case sensitive filesystems.
  • #882 - Commit missing moment.js translation file for zh_hans.

Implementation and API changes

none

Documentation changes

  • #880 - Documented cron.txt file in setup docs.

Misago 0.8.0

02 Jul 21:04
Compare
Choose a tag to compare

Updating instructions

To update Misago from 0.7 to 0.8 use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

This release includes changes to database. Make sure you have backup of your data before carrying on with the update.

Enabling profile fields

Misago 0.8 adds new feature named "profile fields" that enables your users to share additional information about themselves with other users via "details" tab on their profiles.

To enable this feature on your forum, open your settings.py and find this code:

import os


# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

And edit it look like this:

import os


# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Define placeholder gettext function
# This function will mark strings in settings visible to makemessages
# without need for Django's i18n features be initialized first.
_ = lambda x: x

Next, insert below code in same file, preferably at it its and:

# Profile fields

MISAGO_PROFILE_FIELDS = [
    {
        'name': _("Personal"),
        'fields': [
            'misago.users.profilefields.default.FullNameField',
            'misago.users.profilefields.default.GenderField',
            'misago.users.profilefields.default.BioField',
            'misago.users.profilefields.default.LocationField',
        ],
    },
    {
        'name': _("Contact"),
        'fields': [
            'misago.users.profilefields.default.TwitterHandleField',
            'misago.users.profilefields.default.SkypeIdField',
            'misago.users.profilefields.default.WebsiteField',
        ],
    },
    {
        'name': _("IP address"),
        'fields': [
            'misago.users.profilefields.default.JoinIpField',
            'misago.users.profilefields.default.LastIpField',
        ],
    },
]

Finally, find django.contrib.contenttypes in your INSTALLED_APPS:

INSTALLED_APPS = [
   # ...bunch of lines here
    'django.contrib.contenttypes',
    # ...more lines there
]

And insert the 'django.contrib.postgres', line below it:

INSTALLED_APPS = [
   # ...bunch of lines here
    'django.contrib.contenttypes',
    'django.contrib.postgres',
    # ...more lines there
]

Here's the reference of INSTALLED_APPS including this change if you need one.

Wrapping up the update

After installing Misago 0.8 from PIP and modifying your settings.py, you should run thepython manage.py migrate to update your database and python manage.py collectstatic for your site to update your static files to their latest versions.

If you'll encounter database permission error during migration, you'll need to elevate your database's user to superuser in order for Misago's migrations to enable the hstore extension for your database. {lease see the documentation short example on how to do this.

New langauge

Misago 0.8 is first release that contains (nearly complete) translation for other language, with 98% of language strings translated for simplified chinese. To enable simplified chinese language on your site, edit your settings.py, find LANGUAGE_CODE = 'en_us' in it and edit it to LANGUAGE_CODE = 'zh_Hans'.

New features

  • #865 - User profiles fields.
  • #876 - Included translation files for simplified chinese with 98% of language strings translated.

Theme changes

  • #875 - Tweaked the spacing between elements in posts content, making header-induced breaks more noticeable.

Bugs fixed

  • #869 - Goto views computed the target page incorrectly.
  • #870 - Tweaked margins on row in post's changelog header so horizontal scrollbar no longer shows up.
  • #871 - Invalid captcha would not interrupt the registration process, thus allowing users to register accounts after entering invalid answer to Q&A captcha.
  • #876 - Moment.js translation was resolved incorrectly for some language codes, like zh_Hans.
  • #877 - Approve thread moderation action didn't update its has_unapproved_posts flag correctly.

Implementation and API changes

none

Documentation changes

  • #865 - Documentation for user profile fields feature.
  • #872 - Small spelling corrections in setup and maintenance part of the docs.

Misago 0.7.1

10 Jun 22:04
Compare
Choose a tag to compare

Misago 0.7.1 is small bugfix release correcting two bugs reported since 0.7 was released.

Updating instructions

To update Misago from 0.7 to 0.7.1, use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago

After installing new version with PIP make sure to runpython manage.py collectstatic for your site to update your static files to their latest versions.

New features

none

Theme changes

none

Bugs fixed

  • #864 - Lowercased all modules paths in JavaScript files, so builds shouldn't crash anymore on case-sensitive filesystems.
  • #866 - Fixed bug in thread header where digit zero was displayed in place of hidden moderation button when user had not moderation actions available, but still could edit thread's title.

Implementation and API changes

none

Documentation changes

none

Misago 0.7

01 Jun 20:31
Compare
Choose a tag to compare

Misago 0.7 is codebase cleanup release that removes some deprecated features like the misago.datamover that enabled updates from Misago 0.5 as well as CreatePartialIndex and CreatePartialCompositeIndex migration utilities that were replaced by the PgPartialIndex in final 0.6 release.

Updating instructions

To update Misago from 0.6 to 0.7, use PIP to uninstall old Misago and install new one:

pip uninstall misago
pip install misago --pre

misago.datamover has been removed

misago.datamover entry in your settings.py INSTALLED_APPS setting is an error in Misago 0.7 and should be removed. Likewise the url(r'^', include('misago.datamover.urls')) entry in your urls.py will also error and has to be removed.

If you have updated to Misago 0.6 from Misago 0.5 and you looking to preserve redirects from old links after update to 0.7, please use the Misago 0.5 Redirects app.

CreatePartialIndex and CreatePartialCompositeIndex migration utilities have been removed

0.7 release finalizes deprecation of previous implementation of custom indexes via removal of old migration utilities as well as their migrations. Attempting the update from any of the 0.6's alphas to 0.7 and skipping the 0.6 final release on the way will lead to your database containing both old and new indexes which may be source of errors in future migrations.

New features

none

Theme changes

none

Bugs fixed

none

Implementation and API changes

  • #858 - CreatePartialIndex and CreatePartialCompositeIndex migration utilities have been removed.
  • #859 - misago.datamover has been removed. Redirects from old urls have been extracted to separate app: Misago 0.5 Redirects
  • #863 - extras directory has been excluded from Misago releases published to Pypi. This directory contains few utility scripts that perform additional cleanups after the yapf and aren't the part of package.

Documentation changes

  • #860 - Updated readme and docs to don't mention --pre anymore since Misago's Pypi releases are no longer marked as prelease.
  • #862 - "Setup and maintenance" document was turned into the chapter that contains update path documentation as well as docs on updating from Misago 0.5 guide.

Misago 0.6

28 May 20:04
Compare
Choose a tag to compare

Misago 0.6 has been released, taking the project from Alpha to Perpetual Beta.

This release adds open graph tags to Misago-generated markup, which makes content from Misago that's shared on social media look more consise.

Few improvements and bugfixes are also included in this release, with biggest one being update of all dependencies to their current versions, with support for Django 1.11 that's long term support release being nicest of all.

Updating instructions

Misago 0.6 bumps all dependencies to their current versions. This makes it preferable to perform its installation on fresh virtual environment.

virtualenv venv
pip install misago --pre

MISAGO_JS_CATALOG_PACKAGES has been deprecated.

Django 1.10 deprecates support for the javascript_catalog view, superseding it with the JavaScriptCatalog. Because of this Misago drops it's own misago.core.views.javascript_catalog view.

Instead, as part of migration you need to edit your site's urls.py to include new JavaScriptCatalog view.

Add following imports:

from django.utils import timezone
from django.views.decorators.cache import cache_page
from django.views.decorators.http import last_modified
from django.views.i18n import JavaScriptCatalog

Delete following import:

from misago.core.views import javascript_catalog

Finally, edit line defining the view:

    # Javascript translations
    url(r'^django-i18n.js$', javascript_catalog, name='django-i18n'),

To following:

    # Javascript translations
    url(
        r'^django-i18n.js$',
        cache_page(86400 * 2, key_prefix='misagojsi18n')(
            last_modified(lambda req, **kw: timezone.now())(
                JavaScriptCatalog.as_view(
                    packages=['misago'],
                ),
            ),
        ),
        name='django-i18n'
    ),

The way that Django Admin URL's were included in urlconf has changed

If you have enabled django admin in your Misago site via uncommenting it in default urls.py, you'll need to edit the line for future compatibility with Django 2.0.

Find in your urls.py:

url(r'^django-admin/', include(admin.site.urls)),

And change it to:

url(r'^django-admin/', admin.site.urls),

About the could not open extension control file error during database migration

If you run into an error that looks like following:

django.db.utils.OperationalError: could not open extension control file "/usr/share/postgresql/9.4/extension/btree_gin.control": No such file or directory

This means you'll need to install the postgresql-contrib package that includes extensions for PostgreSQL:

sudo apt-get install postgresql-contrib

About the django.db.utils.ProgrammingError: permission denied to create extension "btree_gin" error during database migration

Only superusers may enable extensions in your database. To solve this issue, you may grant your database user super user privileges for duration of the installation:

# switch to postgresql user and start psql tool
sudo -u postgres psql postgres

# make your database user the superuser
alter role user_name superuser;

# after installation is complete run below query in the psql
# to remove super user privileges from your database user 
alter role user_name nosuperuser;

New features

  • #848: Added OpenGraph tags to pages for sharing in social media.

Theme changes

  • #836 - Additional category styles.
  • #845 - Made user ranks border less dominant.
  • #847 - Made difference between default and disabled buttons more noticeable.
  • #851 - Wrapped fallback categories list on thread view in noscript so it'll won't blink before JS kicks in.
  • #852 - Removed gradients from iconography.

Bugs fixed

  • #834 - Horizontally aligned header stats items in Safari.
  • #842 - Changed css class on team role created by migration to from "team" to "primary".
  • #846 - Fixed check version tool in admin.
  • #850 - Icon and colorful badge didn't appear in user's menu if user has unread private threads.
  • #853 - Fixed and cleaned categories custom css class handling on threads and thread views.
  • #854 - Switched the order of captcha and form validation around in registration form, so invalid form submission will not invalidate reCaptcha token.

Implementation and API changes

  • #653 - Ranks are translated using language specified in settings.py when Misago is installed. If permission roles names have translation for active language, they'll be displayed translated in the admin UI.
  • #837 - Unified all models link serialization to url and api props.
  • #838 - Updated Django version to Django 1.11 LTS.
  • #839 - Updated all dependencies to their latest versions.
  • #843 - Forum search uses GIN index for faster search. It also limits results number to five pages of latest items that meet search criteria for performance reasons.
  • #855 - Deleted misagodbrelations util.
  • #857 - Misago will now no longer strip whitespaces from around the passwords. This puts its password handling behaviour in compliance with django.contrib.auth.
  • #844 -The CreatePartialIndex and CreatePartialCompositeIndex utils have been superseded with new PgPartialIndex that uses custom index mechanic introduced in Django 1.11

Documentation changes

  • #838 - Removed MISAGO_JS_CATALOG_PACKAGES from settings doc.
  • #853 - Documented additional CSS classes available on thread and category views when custom CSS class is set on category.