Decidim Versions Save

The participatory democracy framework. A generator and multiple gems made with Ruby on Rails

v0.26.9

4 months ago

Security fixes

This release addresses several security issues:

The details regarding the security vulnerability will be published on February 20th 2024, which is two months after the release date of this version. For more information, please refer to our Security Policy.

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.26.9"
gem "decidim-dev", "0.26.9"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Deduplicating endorsements

We have identified a case when the same user can endorse the same resource multiple times. This is a bug that we have fixed in this release, but we need to clean up the existing duplicated endorsements. We have added a new task that helps you clean the duplicated endorsements.

bundle exec rails decidim:upgrade:fix_duplicate_endorsements

You can see more details about this change on PR #11853

Changelog

Added

Nothing.

Changed

Nothing.

Fixed

  • decidim-core: Backport 'Raise exception in UserTimelineController if no user with the nickname provided' to v0.26 #11470
  • decidim-core: Backport 'Encode non-ASCII characters on external links' to v0.26 #11500
  • Backport 'Revert "Lock ChromeDriver to the latest working version"' to 0.26 #11620
  • Backport 'Add "Tile usage" notice at the top of doc page for OSM maps and geocoding' to v0.26 #11891
  • decidim-generators: Backport 'Fix Bootsnap configuration' to v0.26 #11897
  • decidim-core: Backport 'Update HERE API autocomplete' to v0.26 #11907
  • decidim-core: Backport 'Return the coordinates from Photon geocoding in correct order' to v0.26 #11916
  • Backport 'Add 127.0.0.1 and 0.0.0.0 as secondary hosts in the Organization's seeds' to v0.26 #11912
  • decidim-budgets, decidim-comments: Backport 'Fix 'download your data' when there are comments on budgets' to v0.26 #11902
  • decidim-surveys: Backport 'Add alert when publish a survey with answers' to v0.26 #11894
  • decidim-admin: Backport 'Sort components in "Add component" alphabetically' to v0.26 #11922
  • decidim-core: Backport 'Fix autocomplete result list duplicates' to v0.26 #11893
  • decidim-core: Backport 'Deletion of ZIP file in tmp folder OpenData export job' to v0.26 #11901
  • decidim-core: Backport 'Raise an error if the export format is unknown' to v0.26 #11921
  • decidim-conferences, decidim-meetings: Backport 'Fix conference venues meetings visibility' to v0.26 #11913
  • decidim-system: Backport 'Add admin's password confirmation validation in system' to v0.26 #11928
  • decidim-core: Backport 'Deletion of leftovers ZIP files in tmp directory' to v0.26 #11898
  • decidim-elections, decidim-forms, decidim-meetings: Backport 'Use UTC in the serializers for the date fields' to v0.26 #11926
  • decidim-core: Backport 'Fix password confirm validation error message' to v0.26 #11934
  • Backport 'Add missing activerecord budget locales for search' to v0.26 #11939
  • decidim-meetings: Backport 'Display meeting button for unauthenticated users' to v0.26 #11946
  • decidim-core: Backport 'Fix possible JavaScript console error with geocoding inputs' to v0.26 #11943
  • decidim-system: Backport 'Extraction of i18n strings in system panel' to v0.26 #11952
  • decidim-core: Backport 'Fix search when moderations are hidden' to v0.26 #11918
  • decidim-budgets: Backport 'Fix Permissions screen on budgets throw errors' to v0.26 #11905
  • decidim-initiatives: Backport 'Hide omnipresent in media print of initiatives' to v0.26 #11947
  • decidim-admin: Backport 'Redirect non-admin users to core's root_path' to v0.26 #11936
  • decidim-conferences, decidim-meetings: Backport 'Fix empty address in conference's venues ' to v0.26 #11909
  • decidim-system: Backport 'Add titles in system pages' to v0.26 #11954
  • Backport 'Bump devise_invitable from v2.0.8 to v2.0.9' to v0.26 #11938
  • decidim-templates: Backport 'Simplify the code related to questionnaire templates previews' to v0.26 #11927
  • decidim-meetings: Backport 'Don't show map with only online meetings in Content Block' to v0.26 #11958
  • Backport 'Fix duplicated endorsements' to v0.26 #11973
  • decidim-core: Backport 'Fix dependency resolver trying to fetch gem paths from lazy specifications' to v0.26 #12061
  • Backport 'Lock ChromeDriver to 119.0.6045.105' to v0.26 #12167
  • Remove duplicated chromedriver setting in v0.26 #12186

Removed

Nothing.

Internal

  • Backport "Lock ChromeDriver to the latest working version" to v0.26 #11393
  • Backport 'Revert "Lock ChromeDriver to the latest working version"' to 0.26 #11620
  • Fix spec for i18n change in Crowdin in release/0.26-stable #11906

Developer improvements

  • Backport 'Revert "Lock ChromeDriver to the latest working version"' to 0.26 #11620
  • Backport 'Add 127.0.0.1 and 0.0.0.0 as secondary hosts in the Organization's seeds' to v0.26 #11912

v0.28.0

4 months ago

Release Notes

See our blog post about the highlights for admins in this release.

⚠️ Mind that our last stable version (v0.27.0) is more than one year old. Lots of things have happened in Decidim, so we recommend that you follow all the steps in this guide for updating your application. Enjoy the new design and features!

Security fixes

This release addresses several security issues:

The details regarding the security vulnerability will be published on February 20th 2024, which is two months after the release date of this version. For more information, please refer to our Security Policy.

We highly recommend updating to this version as soon as possible to ensure the security of your system.

1. Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

1.1. Update your ruby and node versions

For ruby, if you're using rbenv, this is done with the following commands:

rbenv install 3.1.1
rbenv local 3.1.1

If not, you need to adapt it to your environment. See "2.1. Ruby update to 3.1"

For node, if you're using nvm, this is done with the following commands:

nvm install 18.17.1
nvm use 18.17.1

If not, you need to adapt it to your environment. See "2.2. Node update to 18.17"

1.2. Update your Gemfile

gem "decidim", "0.28.0"
gem "decidim-dev", "0.28.0"

Comment out any of the 3rd party decidim modules that you're using in your Gemfile. You can uncomment them later after you've updated them. Before upgrading to decidim 0.28.0, you need to manually comment out the decidim-consulations if you have it installed. This gem has been removed from the core and you need to remove it from your Gemfile as well.

Please note that sometimes you may get some errors, so please make sure you fully understand the output of the commands before continuing.

When running bundle update decidim, you may get some errors like the one below:

Bundler could not find compatible versions for gem "faker":
  In snapshot (Gemfile.lock):
    faker (= 2.23.0)  # <<< This is the name of the name of the gem that you need to add to bundle update command

  In Gemfile:
    faker

    decidim-dev (= 0.28.0) was resolved to 0.28.0, which depends on
      faker (~> 3.2)

Please repeat the bundle command adding gems to the list until there the above error type disappears.

bundle update decidim faker

1.3. Manual changes

In order to successfully run decidim 0.28.0, you will need to manually edit the following files:

1.3.1. package.json

Edit the engines key to :

  "engines": {
    "node": "18.17.1",
    "npm": ">=9.6.7"
  }

Also remove, if present, the following lines:

   "babel": {
     "presets": [
       "./node_modules/@rails/webpacker/package/babel/preset.js"
     ]
   },

1.3.2. babel.config.json

Edit the file, and remove, if present, the following lines:

    [ "@babel/plugin-proposal-private-property-in-object", { "loose": true }],
    ["@babel/plugin-proposal-private-methods", { "loose": true }],
    ["@babel/plugin-proposal-class-properties", { "loose": true }]
1.3.3. postcss.config.js

Replace the file content with:

module.exports = {
  syntax: 'postcss-scss',
  plugins: [
    // postcss-import must be the very first plugin https://tailwindcss.com/docs/using-with-preprocessors#build-time-imports
    require('postcss-import'),
    require('tailwindcss'),
    require('postcss-flexbugs-fixes'),
    require('postcss-preset-env')({
      autoprefixer: {
        flexbox: 'no-2009'
      },
      stage: 3
    }),
    require('autoprefixer')
  ]
}

1.4. Commands to run

bundle update decidim
rm config/initializers/social_share_button.rb # for "4.2. Social Share Button change"
bin/rails decidim:upgrade
wget https://github.com/decidim/decidim/releases/download/v0.28.0/consulations_removal.bash -O consultations_removal.bash  # For "2.4. Consultation module removal"
bash consultations_removal.bash # For "2.4. Consultation module removal"
bin/rails db:migrate
bin/rails decidim:procfile:install # For "3.3. Added Procfile support"
bin/rails decidim:robots:replace # for "3.11. Anti-spam measures in the robots.txt"
sed -i -e "/rackup      DefaultRackup/d" config/puma.rb # for "3.14. Puma syntax change"

Then there are some actions that needs to be done that depend in your customizations and configurations:

  • Do you have any custom design in your application or a custom module? If yes, then you'll need to adapt your design to the new framework, Tailwind CSS. Check out "5.1. Tailwind CSS instead of Foundation"

  • Do you have the decidim-consultations module installed in your application? If yes, you need to remove it and change some migrations. Check out "2.4. Consultation module removal"

  • Do you have any custom module or external javascript/font/stylesheet/assets? If yes, you need to configure it. Check out "3.10. Add Content Security Policy (CSP) support"

  • Have you integrated the SMS gateway? Then you may be interested in "5.5. Extra context argument added to SMS gateway implementations"

  • Have you customized the Decidim.password_blacklist configuration or DECIDIM_PASSWORD_BLACKLIST. Then you need to adapt it, check out "5.6. Configuration parameter change"

  • Are you using the print feature in Initaitives? Then you need to enable it manually, check out "5.7. Change in Initiatives configuration"

  • Do you have any custom module or component that uses Decidim permissions? If yes, we recommend checking out the "5.2. Automated authorization conflict handling for deleted users" so it's consistent with the rest of the modules.

  • Do you have any custom configuration/code with the WYSIWYG editor used until now (Quill.js)? If yes, then you'll need to adapt it to the new library (TipTap). Check out "5.3. Tiptap rich text editor"

  • Do you have any custom module that implements the Report functionality? If yes, we recommend checking out "5.4. Ability to hide content of a user from the public interface" so it's consistent with the rest of the modules.

In the production environment there are some data migrations that need to be done:

bin/rails decidim:upgrade:migrate_wysiwyg_content  # for "3.2. Content migration for rich text editor"
bin/rails decidim:upgrade:moderation:fix_blocked_user_panel # for "3.4. User moderation panel changes"
bin/rails decidim:content_blocks:initialize_default_content_blocks # for "3.6. Initialize content blocks on spaces or resources with landing page"
bin/rails decidim:proposals:upgrade:remove_valuator_orphan_records # for "3.8. Orphans valuator assignments cleanup"
bin/rails decidim:initiatives:upgrade:fix_broken_pages # for "3.9. Initiatives pages exception fix"
bin/rails decidim:upgrade:fix_duplicate_endorsements # for "3.12. Deduplicating endorsements"
bin/rails decidim:upgrade:fix_short_urls # for "3.13. Fix component short links"

In the production server, add the following scheduling task if you want to have participatory processes steps changing automatically

*/15 * * * * cd /home/user/decidim_application && RAILS_ENV=production bin/rails decidim_participatory_processes:change_active_step # for "4.1. Automatically change active step in participatory processes"

For running the application in the development application you now have the command:

./bin/dev

This is just a summary of all the most relevant changes done in this version. Keep reading to know the details of the relevant changes for your environmnet.

2. General notes

2.1. Ruby update to 3.1

We have updated the Ruby version to 3.1.1. Upgrading to this version will require either to install this Ruby version on your host, or change the decidim docker image to use ruby:3.1.1.

You can read more about this change on PR #9449.

2.2. Node update to 18.17

We have updated the Node version to 18.17.1 Upgrading to this version will require either to install this Node version on your host, or adapt your decidim docker image.

You can read more about this change on PR #11564.

2.3. Redesign

The design of the application has changed radically. The most relevant things to notice are:

  • Improvements in the general user interface and experience, both for participants and administrators
  • New module decidim-design, available by default in the development_app and optionally in other appllications. Avaialable at /design. I.e.: http://yourdomain.example.org/design
  • Replacement of Foundation CSS by Tailwind CSS. You can read more about this change in the section "3.1. Tailwind CSS introduction" and also in "5.1. Tailwind CSS instead of Foundation".
  • Introduction of Content Blocks for the Participatory Processes and Assemblies' landing pages. You can read more about this change in the section "3.6. Initialize content blocks on spaces or resources with landing page".
  • Introduction of the mega-menu on desktop: improvements of the navigation based on breadcrumbs with extra information while hovering at the element.
  • Simplification of the login form.

You can read more about this change by searching the PRs and issues with the label contract: redesign. At the moment we have more than 300 merged Pull Requests with this label.

2.4. Consultation module removal

The consultations module has been fully removed from this version, so if you're using it in your application you need to remove it from your Gemfile:

bundle remove decidim-consultations

If you're not using it, then you don't need to do anything.

If you're maintaining a version of this module, please share the URL of the git repository by creating an issue on the decidim.org website repository so that we can update the Modules page.

There's an error with the migrations after you've removed this module. Note that this only happens when creating a new database. You'd need to change them like this:

wget https://docs.decidim.org/en/develop/develop/consultations_removal.bash -O consultations_removal.bash
bash consultations_removal.bash

You can read more about this change on PR #11171.

3. One time actions

These are one time actions that need to be done after the code is updated in the production database.

3.1. Tailwind CSS introduction

The redesign has introduced Tailwind CSS framework to compile CSS. It integrates with Webpacker, which generates Tailwind configuration dynamically when Webpacker is invoked.

There are some actions that you will need to do in your existing application that's already done in new applications:

  • Add tailwind.config.js to your app's .gitignore.
echo tailwind.config.js >> .gitignore
  • Migrate your settings from your applications's _decidim-settings.scss file, available at app/packs/stylesheets/decidim/_decidim-settings.scss. If you want to define the colors and other Tailwind related configurations, you can do it following the instructions on the documentation on how to customize Tailwind.

  • After that's done, remove your _decidim-settings.scss file.

rm app/packs/stylesheets/decidim/_decidim-settings.scss
  • Remove this comment from your decidim-application.scss file, available at app/packs/stylesheets/decidim/decidim_application.scss.
// To override CSS variables or Foundation settings use _decidim-settings.scss

You can read more about this change on PR #9480.

3.2. Content migration for rich text editor

The rich text editor has been changed to a new editor named Tiptap. This change causes some changes in the HTML content structure stored in the database as well as in the CSS to display this content. We have introduced a new task to take care of the content migration for all components and models managed by the Decidim core modules. To migrate the content to the new structure, you need to run this task as follows:

bin/rails decidim:upgrade:migrate_wysiwyg_content

Module developers may need to register their own models for the content migration or implement custom content migrations in case their modules contain any content that is managed through the rich text editors. To learn how to do this, please refer to the "Changes in APIs" section of this document.

In case you have done any customizations to the old editor, you will need to remove those customizations and re-do then on the APIs provided by Tiptap. You will also need to do changes in any CSS you have added or customized for displaying the editor content. To learn more about these new APIs, please refer to the "Changes in APIs" section of this document.

You can read more about this change on PR #10196.

3.3. Added Procfile support

We have added Procfile support to ease up the development of Decidim instances. In order to install foreman and the Procfile.dev, you need to run the following command:

bin/rails decidim:procfile:install

After this command has been ran, a new command will be available in your bin/, so in order to boot up your application you will just need to run

./bin/dev

Additional notes on Procfile:

In some cases, when running in a containerized environment, you may need to manually edit the config/webpacker.yml to edit the host parameter from host: localhost to host: 0.0.0.0

In some other cases when you run your application on a custom port (other than 3000), you will need to edit the Procfile, and add the parameter. web: bin/rails server -b 0.0.0.0 -p 3000

You can read more about this change on PR #10519.

3.4. User moderation panel changes

In older Decidim installations, when blocking an user directly from the participants menu, without being previously reported, it will hide that user, making it unavailable in the Reported Participants section. You will need to run this command once to make sure there are no users or entities that got blocked but are not visible in the participants listing.

bin/rails decidim:upgrade:moderation:fix_blocked_user_panel

You can read more about this change on PR #10521.

3.5. Change Webpacker to Shakapacker

Since the Rails team has retired the Webpacker in favour or importmap-rails or js-bundling, we got ouserlves in a situation where performance improvements could not be performed. In order to continue having support for Webpacker like syntax, we have switched to Shakapacker.

In order to perform the update, you will need to make sure that you do not have webpacker in your Gemfile. If you have it, please remove it, and allow Decidim to handle the webpacker / shakapacker dependency.

Note for development

If you are using the Procfile.dev file, you will need to make sure that you have the following line in your configuration. If you have not altered the Procfile.dev file, you will not need to do anything, as we covered that part:

shakapacker: ./bin/shakapacker-dev-server

In order to run your development server, you will need to run the following command:

./bin/dev

Also, by migrating to Shakapacker, we no longer use config/webpacker.yml. All the webpack configuration will be done through config/shakapacker.yml

You can read more about this change on PR

3.6. Initialize content blocks on spaces or resources with landing page

The processes and assemblies participatory spaces have changed the show page and now is composed using content blocks. For the new spaces created in this version a callback is executed creating the content blocks marked as default! in the engine for the corresponding homepage scope. To have the same initialization in the existing spaces there is a task to generate those blocks if not present already. Run the below command to generate default content blocks when not present for all spaces and resources with content blocks homepage (participatory processes, participatory process groups and assemblies):

bin/rails decidim:content_blocks:initialize_default_content_blocks

The task has some optional arguments:

  • The first to specify the manifest name and generate the default content blocks only on the spaces or resources with the manifest name (participatory_processes, participatory_process_group or assemblies).
  • The second can be the id of a resource o space to apply only on the space or resource with the id. This argument is considered only if the manifest name argument is present.
  • The last argument only works on participatory spaces (assemblies and participatory processes) and when set as true the task also creates a content block for each published component on the space unless a block already exists for that component or the block exists for the component type and configured to display resources from all components of the same type.

For example, to generate the default content blocks and also the components blocks on participatory spaces run the command with arguments:

bin/rails decidim:content_blocks:initialize_default_content_blocks[,,true]

3.7. Graphql upgrade

In #10606 we have upgraded the GraphQL gem to version 2.0.19. This upgrade introduces some breaking changes, so you will need to update your GraphQL queries to match the new API. This change should be transparent for most of the users, but if you have custom GraphQL queries, you will need to update them. Also, please note, there might be some issues with community plugins that offer support for GraphQL, so you might need to update them as well.

Please see the change log for graphql gem for more information.

3.8. Orphans valuator assignments cleanup

We have added a new task that helps you clean the valuator assignements records of roles that have been deleted.

You can run the task with the following command:

bin/rails decidim:proposals:upgrade:remove_valuator_orphan_records

You can see more details about this change on PR #10607

3.9. Initiatives pages exception fix

We have added a new tasks to fix a bug related to the pages component inside of the Initiatives module (decidim-initiatives).

You can run the task with the following command:

bin/rails decidim:initiatives:upgrade:fix_broken_pages

You can see more details about this change on PR #10928

3.10. Add Content Security Policy (CSP) support

We have introduced support for Content Security Policy (CSP). This is a security feature that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. By default, the CSP is enabled, and is configured to be as restrictive as possible, having the following default configuration:

{
        "default-src" => %w('self' 'unsafe-inline'),
        "script-src" => %w('self' 'unsafe-inline' 'unsafe-eval'),
        "style-src" => %w('self' 'unsafe-inline'),
        "img-src" => %w('self' *.hereapi.com data:),
        "font-src" => %w('self'),
        "connect-src" => %w('self' *.hereapi.com *.jsdelivr.net),
        "frame-src" => %w('self'),
        "media-src" => %w('self')
}

In order to customize the CSP we are providing, have 2 options, either by using a configuration key the initializer config/initializers/decidim.rb or by setting values in the Organization's system admin.

Please read more in the docs:

You can check more about the implementation in the #10700 pull request.

3.11. Anti-spam measures in the robots.txt

In order to improve the fight against spam attacks in Decidim applications, we have added a new task that helps you replace yours. Take into account that this will override your robots.txt, so if you have done any change you need to make a backup before running this task.

bin/rails decidim:robots:replace

You can see more details about this change on PR #11693

3.12. Deduplicating endorsements

We have identified a case when the same user can endorse the same resource multiple times. This is a bug that we have fixed in this release, but we need to clean up the existing duplicated endorsements. We have added a new task that helps you clean the duplicated endorsements.

bin/rails decidim:upgrade:fix_duplicate_endorsements

You can see more details about this change on PR #11853

We have identified that some of the short links for components are not working properly. We have added a new task that helps you fix the short links for components.

bin/rails decidim:upgrade:fix_short_urls

You can see more details about this change on PR #12004

3.14. Puma syntax change

There's a change in the puma syntax, and you need to remove a line in the configuration (rackup DefaultRackup)

sed -i -e "/rackup      DefaultRackup/d" config/puma.rb

You can see more details about this change in issue puma/puma#2989

4. Scheduled tasks

Implementers need to configure these changes it in your scheduler task system in the production server. We give the examples with crontab, although alternatively you could use whenever gem or the scheduled jobs of your hosting provider.

4.1. Automatically change active step in participatory processes

We have added the ability to automatically change the active step of participatory processess. This is an optional behavior that system admins can enable by configuring a cron job. The frequency of the cron task should be decided by the system admin and depends on each platform's use cases. A precision of 15min is enough for most cases. An example of a crontab job may be:

*/15 * * * * cd /home/user/decidim_application && RAILS_ENV=production bin/rails decidim_participatory_processes:change_active_step

Each time the job executes it checks all currently active and published participatory processes and for each, it checks the steps with the date range in the current date. If a change should be made, it deactivates the previous step and activates the next step.

Platform administrators will always have the possibility to manually change phases, although if a cron job is configured the change may be undone.

This feature also changes the step start_date and end_date fields to timestamps.

You can read more about this change on PR #9026.

4.2. Social Share Button change

As the gem that we were using for sharing to Social Network do not support Webpacker, we have implemented the same functionality in decidim-core.

If you want to have the default social share services enabled (X/Twitter, Facebook, WhatsApp and Telegram), then you can just remove the initializer in your application:

rm config/initializers/social_share_button.rb

If you want to change the default social share services, you will need to remove this initializer and add it to the Decidim initializer. We recommend doing it with the environment variables and secrets to be consistent with the rest of configurations.

rm config/initializers/social_share_button.rb
# In config/initializers/decidim.rb
Decidim.configure do |config|
  (...)
  config.social_share_services = Rails.application.secrets.decidim[:social_share_services]
end
# In config/secrets.yml
decidim_default: &decidim_default
(...)
  social_share_services: <%= Decidim::Env.new("DECIDIM_SOCIAL_SHARE_SERVICES", "Twitter, Facebook, WhatsApp, Telegram").to_array.to_json %>

And define your own services in the environment variable DECIDIM_SOCIAL_SHARE_SERVICES with the services that you want.

With this change you can also define your own services. See documentation for social share services customization.

4.3. Password validator configuration

Decidim implements several password strength checks that ensure the platforms participants and admins are not using weak passwords. One of these validation rules includes checking the user's password against the domain parts of the website, such as foo.example.org. The validation ensures that in this case the user's password does not contain the words foo or example.

This check turned out to be problematic for short subdomains, such as the one in the presented example. Because of this, a new configuration was added to configure the minimum length of a domain part to match against the user's password. The default configuration for this is four characters meaning any domain part shorter than this limit will not be included in this validation rule.

The default value is 4 characters, to change this value you can change the configuration:

# In config/initializers/decidim.org

Decidim.configure do |config|
  config.password_similarity_length = 4
end

You can read more about this change on PR #10201.

5. Changes in APIs

5.1. Tailwind CSS instead of Foundation

In this version we are introducing Tailwind CSS as the underlying layer to build the user interface on. In the previous versions, we used Foundation but its development stagnated which led to changing the whole layer that we are using to build user interfaces on.

This means that in case you have done any changes in the Decidim user interface or developed any modules with participant facing user interfaces, you need to do changes in all your views, partials and view components (aka cells).

Tailwind is quite different from Foundation and it does not support the old classes and markup that we used to use with Foundation. You will need to update all your views according to the new user interface conventions. You should always aim to follow the styling in the core and utilize the same components that the core provides in order to provide a consistent user experience.

You can read more about this change on PR #9480.

You can read more about Tailwind from the Tailwind documentation.

5.2. Automated authorization conflict handling for deleted users

In previous Decidim versions authorization conflicts (i.e. authorizing the user with the same unique data as a previous user) needed to be always handled manually. Now these are automatically handled for cases where the original user had authorized their account, then deleted their account and finally authorized the new account with the same details as the previous account.

This means that some participation data bound to the previous deleted user account is now automatically transferred over to the new account during the authorization process to prevent e.g. duplicate votes in budgeting votings (note that duplicate votes have never been possible but this PR improves the participant experience for any person trying to do that). This includes any data that may or may not require an authorization through the component permissions because in Decidim we cannot be always perfectly sure when an authorization is required for the action or not. As an example, budget voting can start without an authorization and if the admin decides to configure an authorization for the component one day after the voting started, we need to assume that the all votes in that component required an authorization. Otherwise we would potentially allow multiple votes from the users that voted before the authorization was configured if they decided to create a new account to vote for a second time or deleted their original account and did that.

The transferred data can differ between the different modules but the official modules handle the following data automatically:

  • decidim-core
    • Amendments (meaning any amendments for amendable records in different modules, such as proposals at decidim-proposals)
    • Coauthorships (meaning any coauthorable records in different modules, such as proposals and collaborative drafts at decidim-proposals)
    • Endorsements (for any records, e.g. blog posts at decidim-blogs, debates at decidim-debates and proposals at decidim-proposals)
  • decidim-blogs
    • Blog posts
    • Endorsements for blog posts (through endorsement transfers at decidim-core)
  • decidim-budgets
    • Budgeting votes (or orders as we call them in the code)
  • decidim-comments
    • Comments
    • Comment votes
  • decidim-debates
    • Debates
    • Endorsements for debates (through endorsement transfers at decidim-core)
  • decidim-elections
    • Election votes
    • Election form answers (through form answer transfers at decidim-forms)
    • Feedback form answers (through form answer transfers at decidim-forms)
  • decidim-forms
    • Form answers (for different forms, such as survey form answers at decidim-surveys or registration form answers at decidim-meetings)
  • decidim-initiatives
    • Initiatives
    • Initiative votes/signatures
  • decidim-meetings
    • Meetings
    • Meeting registrations
    • Meeting poll answers
    • Meeting registration form answers (through form answer transfers at decidim-forms)
  • decidim-proposals
    • Proposal votes/supports
    • Proposals (through coauthorship transfers at decidim-core)
    • Collaborative drafts (through coauthorship transfers at decidim-core)
    • Proposal amendments (through amendment transfers at decidim-core)
    • Endorsements for proposals (through endorsement transfers at decidim-core)
  • decidim-surveys
    • Survey form answers (through form answer transfers at decidim-forms)

If external modules need to transfer records between accounts during the authorization transfers, module developers can define the following initializer at their modules (note that coauthorable records are automatically already handled):

module Decidim
  module YourModule
    class Engine < ::Rails::Engine
      # ...
      initializer "decidim_your_module.authorization_transfer" do
        Decidim::AuthorizationTransfer.register(:your_module) do |transfer, auth_hander|
          # Define the record class as the first argument to be moved to the
          # new user and the column name as the second argument that maps the
          # record to the original user. This will update all records that match
          # the old deleted account to the new user that was authorized using
          # conflicting authorization data. If you need access to the
          # authorization handler that caused the transfer to be initiated, it
          # is available as the second yielded argument (auth_hander).
          transfer.move_records(Decidim::YourModule::Foo, :decidim_author_id)
        end
      end
      # ...
    end
  end
end

By default you should handle transfer of all records that can require an authorization and leave instance implementers the possibility to disable those transfers if they want to as explained below.

If you would like to disable the authorization transfers feature altogether, you can define the following code in your application class located at config/application.rb of your instance:

module DecidimYourCity
  class Application < Rails::Application
    # ...
    config.to_prepare do
      Decidim::AuthorizationTransfer.disable!
    end
    # ...
  end
end

Note that when the functionality is disabled, the authorization transfers work as they used to, i.e. a conflict is registered, admin users are notified about the conflict situation and the conflict needs to be manually handled.

If you would like to disable the authorization transfers only for specific modules, you can define the following code in your application class located at config/application.rb of your instance (pick only the modules you want to disable):

module DecidimYourCity
  class Application < Rails::Application
    # ...
    config.after_initialize do
      Decidim::AuthorizationTransfer.unregister(:core) # any coauthorable records, e.g. proposals and collaborative drafts
      Decidim::AuthorizationTransfer.unregister(:blogs) # blog posts
      Decidim::AuthorizationTransfer.unregister(:budgets) # budgets
      Decidim::AuthorizationTransfer.unregister(:comments) # comments
      Decidim::AuthorizationTransfer.unregister(:debates) # debates
      Decidim::AuthorizationTransfer.unregister(:elections) # elections
      Decidim::AuthorizationTransfer.unregister(:forms) # form answers, e.g. survey form answers or meeting registrations
      Decidim::AuthorizationTransfer.unregister(:initiatives) # initiatives and initiative votes/signatures
      Decidim::AuthorizationTransfer.unregister(:meetings) # meetings, meeting registrations and meeting poll answers
      Decidim::AuthorizationTransfer.unregister(:proposals) # proposal votes/supports

      # Or if you want to unregister multiple modules at once
      Decidim::AuthorizationTransfer.unregister(:blogs, :forms, :comments)
    end
    # ...
  end
end

Note that when unregistering an authorization transfer handler, the transfers will still work normally for the other transfer handlers and no conflicts are reported for the admin users in case of conflict situation between a new authorization and a previous authorization for a deleted user. In this case, the authorization is transferred to the new user normally but the unregistered transfer handlers are not called which means those records will not be transferred between the user accounts. For conflicts between normal registered users or managed users, the conflicts are still reported as before. The automated authorization transfers only happen in case the previously authorized conflicting user account was deleted.

You can read more about this change at PR #9463.

5.3. Tiptap rich text editor

The WYSIWYG ("What You See Is What You Get") rich text editor has been replaced with a new editor named Tiptap to improve the rich text editing experience in Decidim and to ensure that the codebase remains maintained. This change may affect developers that have customized the rich text editor or who are storing rich text editable content in the database.

You can read more about this change on PR #10196.

5.3.1. New rich text editing API

The new rich text editor is built on the Tiptap editor which uses the ProseMirror toolkit for managing the editor's functionality and the content it produces. These frameworks allow the content to be stored in multiple different formats but in Decidim we store them in HTML format because the content is being displayed in an HTML based website.

Tiptap is a headless WYSIWYG editor which does not include a user interface by itself. The user interface is custom built in to Decidim which also allows us to provide a deeper integration and make the editing experience more integrated with the Decidim user interface. This means that Decidim itself ships quite a lot of custom code to add functionality to the editor itself.

Tiptap is well documented and you can find more information about it from its website at:

https://tiptap.dev/introduction

As Tiptap utilizes ProseMirror as its "engine", you can also use any APIs directly that ProseMirror provides. You can learn more about these APIs at:

https://prosemirror.net/docs/ref/

When extending the editor or adding new features to it, you should always primarily rely on the APIs provided by Tiptap. If that is not enough, then look into ProseMirror. Also, take a look at the already implemented Decidim Tiptap extensions to learn how to utilize the APIs in action.

5.3.2. Updated rich text editor JavaScript

The new rich text editor is bundled into its own JavaScript "pack" named decidim_editor. You will find the entrypoint file for that from the decidim-core gem at app/packs/entrypoints/decidim_editor.js and all the editor related JavaScript from the same gem at the app/packs/src/decidim/editor folder in case you want to modify any of its functionality.

The initialization of the editor has also changed. In case you are using the form.editor or form.translated :editor method to generate the rich text editing fields, there is nothing extra you need to do. Those fields should be automatically initialized by the core. But in case you need to initialize the editor for some custom editor elements, you will need to do the following change in your JavaScript code:

// This is what you did in previous Decidim versions (0.27 and earlier)
import createQuillEditor from "src/decidim/editor"

window.addEventListener("DOMContentLoaded", () => {
  document.querySelectorAll(".your-custom-editor-container").forEach((container) => {
    createQuillEditor(container);
  });
});

// This is what you need to do in newer Decidim versions (0.28 and newer)
// Note that you do not need to import anything as the `createEditor` method is
// exposed through the window object.
window.addEventListener("DOMContentLoaded", () => {
  document.querySelectorAll(".your-custom-editor-container").forEach((container) => {
    window.createEditor(container);
  });
});

The editor JS is automatically included in the normal Decidim layout when you display editors using the default form builder shipped with Decidim.

5.3.3. New CSS to display the rich text content

The new version of Decidim ships with rewritten CSS for displaying the rich text editor content. This CSS has been written in Tailwind as this is the new CSS framework used in Decidim. You will need to revisit any CSS that you had previously written for the editor and preferrably rewrite it based on the updated content structure and CSS class names.

The editor CSS is automatically included in the normal Decidim layout when you display editors using the default form builder shipped with Decidim.

5.3.4. Registering rich text content for the content migration

Before running the content migration task explained at the "One time actions" section of this document, the modules that store rich text content may need to register their own records for the content migration. This can be done by shipping a custom rake task with the module that does this when when the content migration task is through the task provided by the core.

In case your module ships any models that stores rich text content, you can register that model and its rich text content columns for this migration by creating a new task in the module's lib/tasks/upgrade folder and adding the following contents to the new rake task:

# frozen_string_literal: true

# Replace `decidim_yourmodule` with the actual name of your module.
namespace :decidim_yourmodule do
  namespace :upgrade do
    desc "Registers YourModule records for the WYSIWYG content migration"
    task :register_wysiwyg_migration do
      # Register here all the models with their column names that need to be
      # included in the content migration. The first argument is the model's
      # class name as string and the second argument is an array of the columns
      # to be updated. The columns in the database can be either text columns
      # or JSONB columns that store text for multiple languages.
      Decidim::Upgrade::WysiwygMigrator.register_model("Decidim::YourModule::Record", [:body])
      Decidim::Upgrade::WysiwygMigrator.register_model("Decidim::YourModule::AnotherRecord", [:short_description, :description])
    end
  end
end

# NOTE:
# The line below is important as it tells Decidim to run your custom task as
# part of the core migration registration.
Rake::Task["decidim:upgrade:register_wysiwyg_migration"].enhance ["decidim_yourmodule:upgrade:register_wysiwyg_migration"]

In case you have some extremely custom content stored outside of models, you can also migrate the content manually by adding the following custom migration code to the rake task shipped with your module:

# frozen_string_literal: true

# Replace `decidim_yourmodule` with the actual name of your module.
namespace :decidim_yourmodule do
  namespace :upgrade do
    desc "Updates YourModule content entered through the WYSIWYG editors"
    task :migrate_wysiwyg_content do
      Decidim::YourModule::SomeVeryCustomContentRecord.find_each do |record|
        record.update!(
          content: Decidim::Upgrade::WysiwygMigrator.convert(record.content)
        )
      end
    end
  end
end

# NOTE:
# The line below is important as it tells Decidim to run your custom task as
# part of the core migration.
Rake::Task["decidim:upgrade:migrate_wysiwyg_content"].enhance ["decidim_yourmodule:upgrade:migrate_wysiwyg_content"]

Note that the component settings are already automatically handled by the core as long as you have defined editor: true on the component attribute. This marks those attributes to be editable through the rich text editor. There is nothing you need to do regarding the components to get their content migrated to the new format.

5.4. Ability to hide content of a user from the public interface

As of #10111, the administrators have the ability of blocking the user from the public interface. In order to do so, the administrator needs to go to the user's profile and click on the "Report user" button. If the reporting user is a system wide admin, a new "Block this participant" checkbox will appear. If the checkbox is checked, then the reporting user will have the ability as well to check "Hide all their contents". The first checkbox will force the reporting user to admin area where he can add a justification for blocking the offending Participant. The second checkbox will hide all the content of the user from the public interface.

In order to hide all the Participant resources, keeping a separation of concerns, we have started to use ActiveSupport::Notifications.publish to notify the modules that the admin user has chosen to hide all the Participant's contributions.

As of #11064 we are dispatching the following event:

event_name = "decidim.admin.block_user:after"
ActiveSupport::Notifications.publish(event_name, {
  resource: form.user, # user to be blocked
  extra: {
    event_author: form.current_user, # current admin user
    locale:, # current locale
    justification: form.justification, # reason for blocking the user
    hide: form.hide? # true if the admin user has chosen to hide all the user's content
  }
})

The plugin creators could subscribe to this event and hide the content of the user. For example, in order to hide the content of a user in the decidim-comments module, you could add the following in your engine initializer file:

initializer "decidim_comments.moderation_content" do
  ActiveSupport::Notifications.subscribe("decidim.admin.block_user:after") do |_event_name, data|
    Decidim::Comments::HideAllCreatedByAuthorJob.perform_later(**data)
  end
end

The Decidim::Comments::HideAllCreatedByAuthorJob is a job that uses the base Decidim::HideAllCreatedByAuthorJob job, having the following content:

module Decidim
  module Comments
    class HideAllCreatedByAuthorJob < ::Decidim::HideAllCreatedByAuthorJob
      protected

      def base_query
        Decidim::Comments::Comment.not_hidden.where(author: )
      end
    end
  end
end

For more complex scenarios, you could override the perform method of the job and add your own logic, following the patern:

module Decidim
  module YourModule
    class HideAllCreatedByAuthorJob < ::Decidim::HideAllCreatedByAuthorJob
      protected

      def perform(resource:, extra: {})
        return unless extra.fetch(:hide, false)

        Decidim::YourModule::YourModel.not_hidden.from_author(resource).find_each do |content|
          hide_content(content, extra[:event_author], extra[:justification])
        end

        Decidim::YourModule::YourSecondModel.not_hidden.from_author(resource).find_each do |content|
          hide_content(content, extra[:event_author], extra[:justification])
        end
      end
    end
  end
end

You can read more about this change at PRs:

5.5. Extra context argument added to SMS gateway implementations

If you have integrated any SMS gateways, there is a small change in the API that needs to be reflected to the SMS integrations. An extra context attribute is passed to the SMS gateway's initializer which can be used to pass e.g. the correct organization for the gateway to utilize.

In previous versions your SMS gateway initializer might have looked like the following:

class MySMSGatewayService
  attr_reader :mobile_phone_number, :code
  def initialize(mobile_phone_number, code)
    @mobile_phone_number = mobile_phone_number
    @code = code
  end
  # ...
end

From now on, you will need to change it as follows (note the extra context attribute):

class MySMSGatewayService
  attr_reader :mobile_phone_number, :code, :context
  def initialize(mobile_phone_number, code, context = {})
    @mobile_phone_number = mobile_phone_number
    @code = code
    @context = context
  end
  # ...
end

You can read more about this change at PR #10760.

5.6. Configuration parameter change

Prior to 0.28, there was the possibility of configuring a list of disallowed passwords using the configuration parameter Decidim.password_blacklist or the environment variable DECIDIM_PASSWORD_BLACKLIST. These methods have been renamed as follows:

  • Decidim.password_blacklist becomes Decidim.denied_passwords
  • DECIDIM_PASSWORD_BLACKLIST becomes DECIDIM_DENIED_PASSWORDS

You can read more about this change on PR #10288.

5.7. Change in Initiatives configuration

Initiatives configuration has a setting to enable a form to be printed for the creation of Initiatives.

This used to be enabled by default, and now it's disabled.

If you need to enable back, you can do so by setting the INITIATIVES_PRINT_ENABLED environment variable to true or if you have not migrated to the environment variables configurations (the default since v0.25.0), then you can do so by adding the following snippet in config/initializers/decidim.rb

Decidim::Initiatives.configure do |config|
  config.print_enabled = true
end

Changelog

See full CHANGELOG.

v0.27.5

4 months ago

Security fixes

This release addresses several security issues:

The details regarding the security vulnerability will be published on February 20th 2024, which is two months after the release date of this version. For more information, please refer to our Security Policy.

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.27.5"
gem "decidim-dev", "0.27.5"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Deduplicating endorsements

We have identified a case when the same user can endorse the same resource multiple times. This is a bug that we have fixed in this release, but we need to clean up the existing duplicated endorsements. We have added a new task that helps you clean the duplicated endorsements.

bundle exec rails decidim:upgrade:fix_duplicate_endorsements

You can see more details about this change on PR #11853

We have identified that some of the short links for components are not working properly. We have added a new task that helps you fix the short links for components.

bundle exec rails decidim:upgrade:fix_short_urls

You can see more details about this change on PR #12004

Changelog

Added

Nothing.

Changed

Nothing.

Fixed

  • decidim-accountability, decidim-blogs, decidim-budgets, decidim-debates, decidim-meetings, decidim-sortitions: Backport 'Nullable component setting generates error :comments_max_length' to v0.27 #11239
  • decidim-core: Raise exception in UserTimelineController if no user with the nickname provided #11465
  • decidim-budgets: Backport 'Fix ambiguous id column on projects query' to v0.27 #11482
  • decidim-core: Backport 'Encode non-ASCII characters on external links' to v0.27 #11499
  • Backport 'Revert "Lock ChromeDriver to the latest working version"' to 0.27 #11619
  • decidim-core: Backport 'Use left outer join instead of include in with_any_category scope' to v0.27 #11614
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-generators, decidim-participatory processes: Backport 'Update the Twitter icons and brand name to X' to v0.27 #11616
  • decidim-assemblies, decidim-participatory processes: Use with_any_scope instead of with_scope for assemblies and processes #11438
  • decidim-core: Fix password confirm validation error message #11625
  • decidim-core: Backport 'Fix PWA availability for organizations with forced sign in' to v0.27 #11805
  • decidim-surveys: Backport 'Add alert when publish a survey with answers' to v0.27 #11895
  • Backport 'Add "Tile usage" notice at the top of doc page for OSM maps and geocoding' to v0.27 #11890
  • decidim-core: Backport 'Update HERE API autocomplete' to v0.27 #11908
  • decidim-generators: Backport 'Fix Bootsnap configuration' to v0.27 #11896
  • decidim-conferences, decidim-meetings: Backport 'Fix conference venues meetings visibility' to v0.27 #11914
  • Backport 'Add 127.0.0.1 and 0.0.0.0 as secondary hosts in the Organization's seeds' to v0.27 #11911
  • decidim-budgets, decidim-comments: Backport 'Fix 'download your data' when there are comments on budgets' to v0.27 #11903
  • decidim-core: Backport 'Deletion of leftovers ZIP files in tmp directory' to v0.27 #11899
  • decidim-admin: Backport 'Sort components in "Add component" alphabetically' to v0.27 #11923
  • decidim-core: Backport 'Fix autocomplete result list duplicates' to v0.27 #11892
  • decidim-system: Backport 'Add admin's password confirmation validation in system' to v0.27 #11929
  • decidim-core: Backport 'Deletion of ZIP file in tmp folder OpenData export job' to v0.27 #11900
  • decidim-core: Backport 'Return the coordinates from Photon geocoding in correct order' to v0.27 #11915
  • decidim-core: Backport 'Raise an error if the export format is unknown' to v0.27 #11920
  • decidim-elections, decidim-forms, decidim-meetings: Backport 'Use UTC in the serializers for the date fields' to v0.27 #11925
  • decidim-templates: Backport 'Simplify the code related to questionnaire templates previews' to v0.27 #11930
  • Backport 'Add missing activerecord budget locales for search' to v0.27 #11941
  • decidim-meetings: Backport 'Display meeting button for unauthenticated users' to v0.27 #11945
  • decidim-core: Backport 'Fix possible JavaScript console error with geocoding inputs' to v0.27 #11942
  • decidim-system: Backport 'Extraction of i18n strings in system panel' to v0.27 #11951
  • decidim-core: Backport 'Fix missing results on Geocoded when search without diacritics' to v0.27 #11949
  • Backport 'Bump devise_invitable from v2.0.8 to v2.0.9' to v0.27 #11937
  • decidim-budgets: Backport 'Fix Permissions screen on budgets throw errors' to v0.27 #11904
  • decidim-initiatives: Backport 'Hide omnipresent in media print of initiatives' to v0.27 #11948
  • decidim-core: Backport 'Fix search when moderations are hidden' to v0.27 #11919
  • decidim-conferences, decidim-meetings: Backport 'Fix empty address in conference's venues ' to v0.27 #11910
  • decidim-system: Backport 'Add titles in system pages' to v0.27 #11953
  • decidim-meetings: Backport 'Don't show map with only online meetings in Content Block' to v0.27 #11961
  • Backport 'Support deploy to a subdirectory - direct_uploads' to v0.27 #11931
  • decidim-admin: Backport 'Redirect non-admin users to core's root_path' to v0.27 #11935
  • Backport 'Fix duplicated endorsements' to v0.27 #11974
  • decidim-initiatives: Backport 'Fix order initiatives by comments using the column instead of a subquery' to v0.27 #11983
  • decidim-proposals: Backport 'Fix order proposals by comments and follows using the column instead of a query' to v0.27 #11993
  • decidim-core: Backport 'Fix issues with the file uploader input display' to v0.27 #11731
  • decidim-core: Backport 'Fix shortlink references' to v0.27 #12007
  • decidim-assemblies: Backport 'Fix n+1 query on assemblies permissions' to v0.27 #12042
  • decidim-meetings: Backport 'Add link explicitly in the meetings' icalendar event' to v0.27 #12047
  • decidim-core: Fix filter by scope on search page #12036
  • Backport 'Add prerequirements to the manual installation tutorial' to v0.27 #12070
  • decidim-proposals: Backport 'Do not show the titles in the admin proposals page if there isn't any' to v0.27 #12046
  • decidim-debates: Backport 'Show message when there are no debates' to v0.27 #12071
  • decidim-blogs: Backport 'Show error message when there are no posts in blogs' to v0.27 #12054
  • Backport 'Lock ChromeDriver to 119.0.6045.105' to v0.27 #12162
  • decidim-meetings: Backport 'Don't use a CTA for canceling a registration in a meeting' to v0.27 #12050
  • Remove duplicated chromedriver setting in v0.27 #12182

Removed

Nothing.

Developer improvements

  • Backport 'Revert "Lock ChromeDriver to the latest working version"' to 0.27 #11619
  • Backport 'Add 127.0.0.1 and 0.0.0.0 as secondary hosts in the Organization's seeds' to v0.27 #11911

Internal

  • Backport "Lock ChromeDriver to the latest working version" to v0.27 #11392
  • Backport 'Revert "Lock ChromeDriver to the latest working version"' to 0.27 #11619

Previous versions

Please check release/0.27-stable for previous changes.

v0.27.4

9 months ago

Security fixes

This release addresses one security issue:

The details regarding the security vulnerability will be published on September 25th 2023, which is two months after the release date of this version. For more information, please refer to our Security Policy.

We highly recommend updating to this version as soon as possible to ensure the security of your system.

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.27.4"
gem "decidim-dev", "0.27.4"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Orphans valuator assignments cleanup

We have added a new task that helps you clean the valuator assignements records of roles that have been deleted.

You can run the task with the following command:

bundle exec rake decidim:proposals:upgrade:remove_valuator_orphan_records

You can see more details about this change on PR #10607

Initiatives pages exception fix

We have added a new tasks to fix a bug related to the pages component inside of the Initiatives module (decidim-initiatives).

You can run the task with the following command:

bundle exec rake decidim:initiatives:upgrade:fix_broken_pages

You can see more details about this change on PR #10928

Added

Nothing.

Changed

Nothing.

Fixed

  • Backport 'Remove unused preset-env dependencies' to v0.27 #11005
  • decidim-verifications: Backport 'Fix missing translations for SMS confirmation when signing a petition' to v0.27 #11011
  • decidim-initiatives: Backport 'Fix for initiative menu not active on creation' to v0.27 #11019
  • decidim-initiatives: Backport 'Change to display initiatives after creation' to v0.27 #11029
  • decidim-elections: Backport 'Allow to publish an Election even if it hasn't valid Questions' to v0.27 #11031
  • decidim-core: Backport 'Fix to Proposal cards CSS in Processes' to v0.27 #11021
  • decidim-core: Backport 'Add translation string for URL error message' to v0.27 #11013
  • decidim-blogs: Backport 'Add possibility of reporting blog posts ' to v0.27 #11025
  • decidim-core, decidim-debates, decidim-initiatives, decidim-proposals, decidim-sortitions: Backport 'Fix user and group related migrations calling the actual record classes' to v0.27 #11009
  • decidim-budgets: Backport 'Fix budgets zero single view' to v0.27 #11015
  • decidim-conferences: Backport 'Fix partner type in Conferences' partners edit form' to v0.27 #11017
  • decidim-core: Backport 'Fix do not count blocked users to stats' to v0.27 #11027
  • decidim-core: Backport 'Fix error when SVG icon is not available in the file system' to v0.27 #11007
  • decidim-elections: Backport 'Fix error message mismatch in election' to v0.27 #11033
  • decidim-core: Backport 'Fix notifications page when vapid is not available' to v0.27 #10940
  • decidim-initiatives: Backport 'Fix exception in Initiatives' Page' to v0.27 #11023
  • decidim-admin: Backport 'Don't allow access to admin panel without ToS acceptance' to v0.27 #11042
  • decidim-core: Backport 'Fix "No activity" message in Last Activities isn't shown sometimes' to v0.27 #11056
  • decidim-budgets: Backport 'Show all projects if none is selected when the voting has finished' to v0.27 #11118
  • decidim-core: Backport 'Fix for sending welcome emails for new participants' to v0.27 #11121
  • decidim-elections: Backport 'Fix Admin dashboard disappear if you are in Trustee Zone' to v0.27 #11114
  • decidim-core: Backport 'Avoid password change to be requested when user registration mode is disabled' to v0.27 #11120
  • decidim-proposals: Backport 'Fix flaky collaborative drafts spec' to v0.27 #11127
  • Backport 'Fix webpack version to <5.83.0' to v0.27 #11133
  • decidim-participatory processes: Backport 'Fix the active filter for process groups' to v0.27 #11130
  • decidim-core: Backport 'Verify modules are installed in StatsParticipantsCount query' to v0.27 #11157
  • decidim-core: Backport 'Fix issues with overriding maps and loading Leaflet' to v0.27 #11131
  • decidim-elections, decidim-initiatives: Backport 'CSV & JSON export function fix' to v0.27 #11185
  • decidim-budgets: Backport 'Fix the unused keyword arguments for the budgets workflows' to v0.27 #11228
  • decidim-budgets, decidim-elections: Backport 'Budgets component fix for Votings module' to v0.27 #11229
  • decidim-elections: Backport 'Fix for saving an Election that wasn't blocked' to v0.27 #11187
  • decidim-admin: Backport 'Fix blocked users not present in global moderation panel' to v0.27 #11234
  • decidim-core, decidim-meetings, decidim-proposals: Backport 'Always allow image upload in WYSWYG editor' to v0.27 #11237
  • decidim-core: Backport 'Fix linking to invariable image URLs' to v0.27 #11242
  • decidim-core, decidim-surveys: Backport 'Fix running DB commands consecutively' to v0.27 #11236
  • decidim-forms: Backport 'Fix memory leak with user answers serializer (at survey export)' to v0.27 #11241
  • decidim-core: Backport 'Fix admin password change required for omniauth-only accounts' to v0.27 #11240
  • decidim-core: Backport 'Prevent aria-describedby attribute being added to hidden inputs' to v0.27 #11243
  • decidim-budgets, decidim-core, decidim-initiatives, decidim-proposals, decidim-sortitions: Backport 'Fix scope and category filtering links with ransack' to v0.27 #11248
  • decidim-admin, decidim-assemblies, decidim-blogs, decidim-conferences, decidim-core, decidim-elections, decidim-initiatives, decidim-participatory processes, decidim-templates: Backport 'Enforce resources being found in the organization scope' to v0.27 #11232
  • decidim-assemblies, decidim-conferences, decidim-participatory processes, decidim-proposals: Backport 'Fix proposals' valuators assignments not deleted when space admin is removed' to v0.27 #11332
  • decidim-admin: Backport 'Fix HTML titles in admin panel' to v0.27 #11333
  • decidim-admin: Backport 'Fix HTML titles in admin panel (part 2)' to v0.27 #11336

Removed

Nothing.

Developer improvements

  • Backport "Update several gems" to v0.27 #11139

Internal

  • decidim-admin, decidim-core: Backport 'Fix default seeds on first login (password_updated_at and accepted_tos_version)' to v0.27 #10854
  • decidim-core: Backport 'Remove duplication of LastActivity queries' to v0.27 #11055
  • decidim-proposals: Backport 'Fix flaky collaborative drafts spec' to v0.27 #11127

Previous versions

Please check release/0.27-stable for previous changes.

v0.26.8

9 months ago

Security fixes

This release addresses one security issue:

The details regarding the security vulnerability will be published on September 25th 2023, which is two months after the release date of this version. For more information, please refer to our Security Policy.

We highly recommend updating to this version as soon as possible to ensure the security of your system.

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.26.8"
gem "decidim-dev", "0.26.8"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Orphans valuator assignments cleanup

We have added a new task that helps you clean the valuator assignements records of roles that have been deleted.

You can run the task with the following command:

bundle exec rake decidim:proposals:upgrade:remove_valuator_orphan_records

You can see more details about this change on PR #10607

Added

Nothing.

Changed

Nothing.

Fixed

  • decidim-verifications: Backport 'Fix missing translations for SMS confirmation when signing a petition' to v0.26 #11012
  • decidim-initiatives: Backport 'Fix for initiative menu not active on creation' to v0.26 #11020
  • decidim-elections: Backport 'Allow to publish an Election even if it hasn't valid Questions' to v0.26 #11032
  • decidim-core: Backport 'Fix to Proposal cards CSS in Processes' to v0.26 #11022
  • decidim-core: Backport 'Add translation string for URL error message' to v0.26 #11014
  • decidim-blogs: Backport 'Add possibility of reporting blog posts ' to v0.26 #11026
  • decidim-core, decidim-debates, decidim-initiatives, decidim-proposals, decidim-sortitions: Backport 'Fix user and group related migrations calling the actual record classes' to v0.26 #11010
  • decidim-budgets: Backport 'Fix budgets zero single view' to v0.26 #11016
  • decidim-conferences: Backport 'Fix partner type in Conferences' partners edit form' to v0.26 #11018
  • decidim-core: Backport 'Fix do not count blocked users to stats' to v0.26 #11028
  • decidim-elections: Backport 'Fix error message mismatch in election' to v0.26 #11034
  • decidim-admin: Backport 'Don't allow access to admin panel without ToS acceptance' to v0.26 #11047
  • decidim-core: Backport 'Fix webpacker crashes on missing icons' to v0.26 #11045
  • decidim-core: Backport 'Fix error when SVG icon is not available in the file system' to v0.26 #11008
  • decidim-elections: Backport 'Fix Admin dashboard disappear if you are in Trustee Zone' to v0.26 #11113
  • decidim-budgets: Backport 'Show all projects if none is selected when the voting has finished' to v0.26 #11119
  • decidim-proposals: Backport 'Fix flaky collaborative drafts spec' to v0.26 #11128
  • Backport 'Fix webpack version to <5.83.0' to v0.26 #11134
  • decidim-participatory processes: Backport 'Fix the active filter for process groups' to v0.26 #11129
  • decidim-core: Backport 'Fix uninitialized constant errors with custom set of modules' to v0.26 #11168
  • decidim-core: Backport 'Verify modules are installed in StatsParticipantsCount query' to v0.26 #11158
  • decidim-core: Backport 'Fix issues with overriding maps and loading Leaflet' to v0.26 #11132
  • decidim-elections: Backport 'Fix for saving an Election that wasn't blocked' to v0.26 #11188
  • decidim-elections, decidim-initiatives: Backport 'CSV & JSON export function fix' to v0.26 #11186
  • decidim-budgets: Backport 'Fix the unused keyword arguments for the budgets workflows' to v0.26 #11227
  • decidim-budgets, decidim-elections: Backport 'Budgets component fix for Votings module' to v0.26 #11230
  • decidim-admin: Backport 'Fix blocked users not present in global moderation panel' to v0.26 #11235
  • decidim-core, decidim-meetings, decidim-proposals: Backport 'Always allow image upload in WYSWYG editor' to v0.26 #11238
  • decidim-assemblies, decidim-conferences, decidim-participatory processes, decidim-proposals: Backport 'Fix proposals' valuators assignments not deleted when space admin is removed' to v0.26 #11331
  • decidim-admin: Backport 'Fix HTML titles in admin panel' to v0.26 #11334
  • decidim-admin: Backport 'Fix HTML titles in admin panel (part 2)' to v0.26 #11335
  • decidim-admin, decidim-assemblies, decidim-blogs, decidim-conferences, decidim-core, decidim-elections, decidim-initiatives, decidim-participatory processes, decidim-templates: Backport 'Enforce resources being found in the organization scope' to v0.26 #11231

Removed

Nothing.

Internal

  • Backport 'Fix flaky collaborative drafts spec' to v0.26 #11128

Developer improvements

Nothing.

Previous versions

Please check release/0.26-stable for previous changes.

v0.27.3

11 months ago

Security fixes

This release addresses several security issues, including the following:

The details regarding the security vulnerability will be published on July 11th 2023, which is two months after the release date of this version. For more information, please refer to our Security Policy.

We highly recommend updating to this version as soon as possible to ensure the security of your system.

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.27.3"
gem "decidim-dev", "0.27.3"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Changelog

Added

Nothing.

Changed

  • decidim-core: Backport 'Improve the link handling' to v0.27 #10735

Fixed

  • decidim-core: Backport 'Fix sass syntax errors' to v0.27 #10445
  • decidim-participatory processes: Backport 'Fix: Ransack returns results for multiple organizations' to v0.27 #10447
  • decidim-forms: Backport 'Fix survey conditional display' to v0.27 #10448
  • decidim-core: Backport 'Fix pipeline asset router bug regarding for manifests containing the host' to v0.27 #10449
  • decidim-budgets, decidim-core, decidim-elections, decidim-proposals: Backport 'Fix updating budget projects or other records containing attachments' to v0.27 #10451
  • decidim-budgets, decidim-core, decidim-elections, decidim-proposals: Backport 'Fix styling bug with the remove/close buttons for attachments' to v0.27 #10452
  • decidim-admin: Backport 'Fix deleting all content from help section triggers error' to v0.27 #10453
  • decidim-admin: Backport 'Fix deprecation warning in the html5sortable NPM package' to v0.27 #10455
  • decidim-proposals: Backport 'Fix participatory texts sections required field indicators' to v0.27 #10527
  • decidim-initiatives: Backport 'Remove email from initiative's print page' to v0.27 #10535
  • decidim-core, decidim-participatory processes: Backport 'Fix destroying scope types that have been associated with processes' to v0.27 #10530
  • decidim-meetings: Backport 'Fix meeting form for admin to update registrations_enabled field' to v0.27 #10531
  • decidim-admin, decidim-core, decidim-system: Backport 'Remove actions from admin and blocked users' to v0.27 #10536
  • decidim-core: Backport 'Make buttons respect the organizations' primary color' to v0.27 #10546
  • decidim-proposals: Backport 'Export proposal body without HTML tags' to v0.27 #10539
  • decidim-proposals: Backport 'Fix: Set required to proposal limit field in Proposal component' to v0.27 #10549
  • decidim-core: Backport 'Fix promoted admin password change right after registration' to v0.27 #10540
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-elections, decidim-initiatives, decidim-participatory processes, decidim-proposals, decidim-system: Backport 'Fix dynamic upload file field required indicator + make option naming consistent' to v0.27 #10541
  • decidim-debates, decidim-meetings, decidim-proposals: Backport 'Fix iframes stripped from admin entered proposals, meetings and debates' to v0.27 #10558
  • decidim-forms: FIx sorting question choice validations #10227
  • Fix missing documentation link #10621
  • decidim-comments: Backport 'Fix for exporting deleted and hidden comments' to v0.27 #10658
  • decidim-proposals: Backport 'Fix for exporting hidden moderated proposals' to v0.27 #10661
  • decidim-proposals: Backport 'Fix flaky collaborative drafts specs' to v0.27 #10667
  • decidim-admin: Backport 'Change I18n captions on moderation module' to v0.27 #10662
  • decidim-proposals: Backport 'Fix empty proposals component configuration limits' to v0.27 #10666
  • decidim-admin, decidim-core, decidim-elections, decidim-meetings: Backport 'Fix Redundant notifications when a component is (re)published' to v0.27 #10736
  • decidim-core, decidim-debates, decidim-meetings, decidim-proposals: Backport 'User role is defined for digest notifications to scope translations correctly' to v0.27 #10738
  • decidim-initiatives: Backport 'Fix initiatives display when not initialized' to v0.27 #10742
  • decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-conferences, decidim-consultations, decidim-core, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-pages, decidim-proposals, decidim-sortitions: Backport 'Fix editor toolbar' to v0.27 #10743
  • decidim-participatory processes: Backport 'Fix Empty participatory process group is created when importing a PP …' to v0.27 #10732
  • decidim-assemblies, decidim-blogs, decidim-budgets, decidim-consultations, decidim-debates, decidim-elections, decidim-forms, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions: Backport 'Fix Video embeds are not shown in short_description field' to v0.27 #10745
  • decidim-consultations: Backport 'Add missing translations in consultations' to v0.27 #10790
  • decidim-budgets, decidim-proposals: Backport 'Supports no longer visible for linked proposals if supports are disabled' to v0.27 #10777
  • decidim-participatory processes: Backport 'Add metrics, statistics and process type to the participatory process importer' to v0.27 #10770
  • Backport 'Fix menu spec after #9928' to v0.27 #10769
  • decidim-meetings: Backport 'Fix meetings calendar filtering' to v0.27 #10772
  • decidim-initiatives: Backport 'Fix initiative creation missing form fields' to v0.27 #10785
  • decidim-initiatives: Backport 'Fix edge case in initiative creation' to v0.27 #10784
  • decidim-proposals: Backport 'Fix notifications for the proposal answers importer' to v0.27 #10787
  • decidim-initiatives: Backport 'Fix edit form in intitiatives' to v0.27 #10781
  • decidim-comments: Backport 'Fix missing hide and show comments by threads' to v0.27 #10779
  • decidim-core: Backport 'Fix ImageMagick errors when trying to identify image dimensions' to v0.27 #10556
  • decidim-participatory processes: Backport 'Fix issues with unexpected date filter params for the process listing' to v0.27 #10807
  • decidim-initiatives: Backport 'Fix initiative creation without fallback hash attribute' to v0.27 #10817
  • decidim-core: Backport 'Fix: Inconsistent datetime distance_in_words translations' to 0.27 #10793
  • decidim-core: Backport 'Refactor attachment title' to v0.27 #10664
  • decidim-budgets: Backport 'Fix budget summary mail when a scope is defined and enabled' to v0.27 #10838
  • decidim-core, decidim-proposals: Backport 'Fix File attachments in proposals' to v0.27 #10827
  • decidim-initiatives: Backport 'Change the participant initiatives editor toolbars type' to v0.27 #10844

Removed

Nothing.

Developer improvements

Nothing.

Internal

  • Backport 'Switch to the official Codecov action for CI' to v0.27 #10462
  • decidim-proposals: Backport 'Fix flaky collaborative drafts specs' to v0.27 #10667
  • Backport 'Fix menu spec after #9928' to v0.27 #10769
  • Backport 'Remove parallel spec from the core system specs' to v0.27 #10843

Previous versions

Please check release/0.26-stable for previous changes.

v0.26.7

11 months ago

Security fixes

This release addresses several security issues, including the following:

The details regarding the security vulnerability will be published on July 11th 2023, which is two months after the release date of this version. For more information, please refer to our Security Policy.

We highly recommend updating to this version as soon as possible to ensure the security of your system.

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.26.7"
gem "decidim-dev", "0.26.7"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Changelog

Added

Nothing.

Changed

  • decidim-core: Backport 'Improve the link handling' to v0.26 #10734

Fixed

  • decidim-core: Backport 'Fix sass syntax errors' to v0.26 #10446
  • decidim-admin: Backport 'Fix deleting all content from help section triggers error' to v0.26 #10454
  • decidim-admin: Backport 'Fix deprecation warning in the html5sortable NPM package' to v0.26 #10456
  • decidim-proposals: Backport 'Fix participatory texts sections required field indicators' to v0.26 #10528
  • decidim-initiatives: Backport 'Remove email from initiative's print page' to v0.26 #10534
  • decidim-core, decidim-participatory processes: Backport 'Fix destroying scope types that have been associated with processes' to v0.26 #10529
  • decidim-meetings: Backport 'Fix meeting form for admin to update registrations_enabled field' to v0.26 #10533
  • decidim-admin, decidim-core, decidim-system: Backport 'Remove actions from admin and blocked users' to v0.26 #10537
  • decidim-core: Backport 'Make buttons respect the organizations' primary color' to v0.26 #10545
  • decidim-proposals: Backport 'Export proposal body without HTML tags' to v0.26 #10538
  • decidim-proposals: Backport 'Fix: Set required to proposal limit field in Proposal component' to v0.26 #10550
  • Fix missing documentation link #10622
  • decidim-comments: Backport 'Fix for exporting deleted and hidden comments' to v0.26 #10659
  • decidim-proposals: Backport 'Fix for exporting hidden moderated proposals' to v0.26 #10660
  • decidim-proposals: Backport 'Fix flaky collaborative drafts specs' to v0.26 #10668
  • decidim-admin: Backport 'Change I18n captions on moderation module' to v0.26 #10663
  • decidim-proposals: Backport 'Fix empty proposals component configuration limits' to v0.26 #10665
  • decidim-admin, decidim-core, decidim-elections, decidim-meetings: Backport 'Fix Redundant notifications when a component is (re)published' to v0.26 #10737
  • decidim-initiatives: Backport 'Fix initiatives display when not initialized' to v0.26 #10741
  • decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-conferences, decidim-consultations, decidim-core, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-pages, decidim-proposals, decidim-sortitions: Backport 'Fix editor toolbar' to v0.26 #10744
  • decidim-participatory processes: Backport 'Fix Empty participatory process group is created when importing a PP …' to v0.26 #10733
  • Backport 'Fix menu spec after #9928' to v0.26 #10768
  • decidim-consultations: Backport 'Add missing translations in consultations' to v0.26 #10789
  • decidim-budgets, decidim-proposals: Backport 'Supports no longer visible for linked proposals if supports are disabled' to v0.26 #10776
  • decidim-initiatives: Backport 'Fix initiative creation missing form fields' to v0.26 #10786
  • decidim-initiatives: Backport 'Fix edge case in initiative creation' to v0.26 #10783
  • decidim-proposals: Backport 'Fix notifications for the proposal answers importer' to v0.26 #10788
  • decidim-comments: Backport 'Fix missing hide and show comments by threads' to v0.26 #10780
  • decidim-meetings, decidim-proposals: Backport 'Fix invalid rendering of meeting and proposal body texts' to v0.26 #10806
  • decidim-core, decidim-meetings: Backport 'Fix iframe disabling producing invalid HTML' to v0.26 #10764
  • decidim-participatory processes: Backport 'Fix issues with unexpected date filter params for the process listing' to v0.26 #10808
  • decidim-initiatives: Backport 'Fix edit form in intitiatives' to v0.26 #10782
  • decidim-participatory processes: Backport 'Fix usages of sanitize helper methods for editable content provided by admins' to v0.26 #10059
  • decidim-debates, decidim-meetings, decidim-proposals: Backport 'Fix iframes stripped from admin entered proposals, meetings and debates' to v0.26 #10559
  • decidim-core: Backport 'Fix: Inconsistent datetime distance_in_words translations' to 0.26 #10795
  • decidim-assemblies, decidim-blogs, decidim-budgets, decidim-consultations, decidim-debates, decidim-elections, decidim-forms, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions: Backport 'Fix Video embeds are not shown in short_description field' to v0.26 #10746
  • decidim-budgets: Backport 'Fix budget summary mail when a scope is defined and enabled' to v0.26 #10840
  • decidim-initiatives: Backport 'Change the participant initiatives editor toolbars type' to v0.26 #10845

Removed

Nothing.

Internal

  • Backport 'Switch to the official Codecov action for CI' to v0.26 #10463
  • Backport 'Fix flaky collaborative drafts specs' to v0.26 #10668
  • Backport 'Fix menu spec after #9928' to v0.26 #10768

Developer improvements

Nothing.

Previous versions

Please check release/0.26-stable for previous changes.

v0.26.5

1 year ago

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.26.5"
gem "decidim-dev", "0.26.5"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Changelog

Added

Nothing.

Changed

Nothing.

Fixed

  • decidim-core: Backport 'Fix: The i18n locales selector is showing a dropdown with 3 languages' to v0.26 #10086
  • Backport 'Lock GitHub actions to Ubuntu 20.04 due to OpenSSL 3.0 issues' to v0.26 #10226
  • decidim-api, decidim-core: Backport 'Fix machine translations at the API' to v0.26 #10292
  • decidim-budgets: Backport 'Correct the "voted for this" string in the budgets component' to v0.26 #10301
  • decidim-conferences, decidim-core: Backport 'Fix translations missing on admin log' to v0.26 #10293
  • decidim-conferences: Backport 'Add correct call for conference speaker' to v0.26 #10294
  • decidim-meetings: Backport 'Fix missing fields on duplicate meetings functionality' to v0.26 #10295
  • decidim-core: Backport 'Fix resource_icon with component or manifest nil' to v0.26 #10296
  • decidim-core: Backport 'Add missing logs for UserGroup block and unblock actions' to v0.26 #10313
  • decidim-admin, decidim-core: Backport 'Don't show the 'unreport' action when user is blocked' to v0.26 #10300
  • decidim-core: Backport 'Add order by in linked_participatory_space_resources' to v0.26 #10303
  • decidim-blogs: Backport 'Move i18n attribute key of Post's body' to v0.26 #10298
  • decidim-core: Improve link handling of the redirect engine (#10306) #10306
  • decidim-proposals: Backport 'Removed "disabled" status from proposals' main categories' to v0.26 #10305
  • decidim-initiatives: Backport 'Respect "rich text editor" setting in Initiatives' to v0.26 #10304
  • decidim-proposals: Backport 'Prevent sending proposal create event until is commited' to v0.26 #10309
  • decidim-initiatives: Backport 'Fix initiatives count in initiatives index page' to v0.26 #10310
  • decidim-blogs: Backport 'Remove unused permissions on Blogs' to v0.26 #10299
  • decidim-admin, decidim-assemblies, decidim-elections, decidim-initiatives, decidim-pages, decidim-participatory processes: Backport 'Fix wrong capitalization in i18n values and add missing keys' to v0.26 #10302
  • decidim-accountability, decidim-initiatives, decidim-participatory processes: Backport 'Added missing localizations' to v0.26 #10308
  • decidim-core: Backport 'Allow blocking a UserGroup' to v0.26 #10315
  • decidim-budgets, decidim-core, decidim-debates, decidim-meetings, decidim-proposals, decidim-sortitions: Backport 'Fix filter URL not updated with the text search input' to v0.26 #10297
  • decidim-admin, decidim-core: Backport 'Fix bug when blocking two UserGroups' to v0.26 #10312
  • decidim-core: Backport 'Fix bug regarding user group moderation action logs' to v0.26 #10314
  • decidim-core: Backport 'User's group endorsement no longer disappears after personal endorsement removed' to v0.26 #10311
  • decidim-assemblies, decidim-conferences, decidim-participatory processes: Backport 'Do not display unpublished spaces in linked spaces' to v0.26 #10345
  • decidim-assemblies, decidim-meetings: Backport 'Display Published meetings in Assembly cell' to v0.26 #10341
  • decidim-admin, decidim-core: Backport 'Fix newsletters unwanted CSS and 404 page on preview' to v0.26 #10355
  • decidim-admin: Backport 'A Valuator should not be able to access Global Moderation' to v0.26 #10349
  • decidim-initiatives: Backport 'Fixing some typos in the english translations' to v0.26 #10362

Removed

Nothing.

Internal

  • Backport 'Lock GitHub actions to Ubuntu 20.04 due to OpenSSL 3.0 issues' to v0.26 #10226

Developer improvements

Nothing.

Unsorted

Nothing.

v0.27.2

1 year ago

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.27.2"
gem "decidim-dev", "0.27.2"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Changelog

Added

Nothing.

Changed

Nothing.

Fixed

  • decidim-core: Backport 'Fix: The i18n locales selector is showing a dropdown with 3 languages' to v0.27 #10087
  • decidim-core: Backport 'Remove unecessary line in push notifications spec' to v0.27 #10088
  • Backport 'Lock GitHub actions to Ubuntu 20.04 due to OpenSSL 3.0 issues' to v0.27 #10225
  • decidim-core: Add date format to Conversation #10224
  • decidim-core: Backport 'Allow blocking a UserGroup' to v0.27 #10255
  • decidim-admin, decidim-assemblies, decidim-elections, decidim-initiatives, decidim-pages, decidim-participatory processes: Backport 'Fix wrong capitalization in i18n values and add missing keys' to v0.27 #10256
  • decidim-api, decidim-core: Backport 'Fix machine translations at the API' to v0.27 #10257
  • decidim-budgets: Backport 'Correct the "voted for this" string in the budgets component' to v0.27 #10258
  • decidim-conferences, decidim-core: Backport 'Fix translations missing on admin log' to v0.27 #10259
  • decidim-core: Backport 'Fix push notifications URL method' to v0.27 #10262
  • decidim-conferences: Backport 'Add correct call for conference speaker' to v0.27 #10260
  • decidim-meetings: Backport 'Fix missing fields on duplicate meetings functionality' to v0.27 #10261
  • decidim-core: Backport 'Fix resource_icon with component or manifest nil' to v0.27 #10263
  • decidim-budgets, decidim-core, decidim-debates, decidim-meetings, decidim-proposals, decidim-sortitions: Backport 'Fix filter URL not updated with the text search input' to v0.27 #10264
  • decidim-core: Backport 'Add missing logs for UserGroup block and unblock actions' to v0.27 #10266
  • decidim-admin, decidim-core: Backport 'Don't show the 'unreport' action when user is blocked' to v0.27 #10267
  • decidim-admin, decidim-core: Backport 'Fix bug when blocking two UserGroups' to v0.27 #10269
  • decidim-core: Backport 'Add order by in linked_participatory_space_resources' to v0.27 #10270
  • decidim-blogs: Backport 'Move i18n attribute key of Post's body' to v0.27 #10265
  • decidim-core: Backport 'Fix dependency resolver trying to fetch gem paths from lazy specifications' to v0.27 #10272
  • decidim-core: Backport 'Fix double parentheses in the titled upload modal with existing attachment' to v0.27 #10273
  • decidim-proposals: Backport 'Removed "disabled" status from proposals' main categories' to v0.27 #10274
  • decidim-core: Backport 'Improve link handling of the redirect engine' to v0.27 #10276
  • decidim-core: Backport 'Fix pipeline asset absolute URLs' to v0.27 #10275
  • decidim-accountability, decidim-initiatives, decidim-participatory processes: Backport 'Added missing localizations' to v0.27 #10278
  • decidim-blogs: Backport 'Remove unused permissions on Blogs' to v0.27 #10268
  • decidim-initiatives: Backport 'Respect "rich text editor" setting in Initiatives' to v0.27 #10271
  • decidim-proposals: Backport 'Prevent sending proposal create event until is commited' to v0.27 #10279
  • decidim-initiatives: Backport 'Fix initiatives count in initiatives index page' to v0.27 #10280
  • decidim-core: Backport 'User's group endorsement no longer disappears after personal endorsement removed' to v0.27 #10281
  • decidim-core: Backport 'Fix bug regarding user group moderation action logs' to v0.27 #10254
  • decidim-assemblies, decidim-conferences, decidim-participatory processes: Backport 'Do not display unpublished spaces in linked spaces' to v0.27 #10346
  • decidim-assemblies, decidim-meetings: Backport 'Display Published meetings in Assembly cell' to v0.27 #10340
  • decidim-core: Backport 'Uploading files - Explanation %{attribute} not translate' to v0.27 #10348
  • decidim-admin, decidim-core: Backport 'Fix newsletters unwanted CSS and 404 page on preview' to v0.27 #10354
  • decidim-admin: Backport 'A Valuator should not be able to access Global Moderation' to v0.27 #10350
  • decidim-core: Backport 'Fix an edge case with the attribute object forms with arrays/enums' (#10218) to v0.27 #10358
  • decidim-initiatives: Backport 'Fixing some typos in the english translations' to v0.27 #10361

Removed

Nothing.

Developer improvements

  • Backport 'Remove unecessary line in push notifications spec' to v0.27 #10088

Internal

  • Backport 'Lock GitHub actions to Ubuntu 20.04 due to OpenSSL 3.0 issues' to v0.27 #10225

Previous versions

Please check release/0.27-stable for previous changes.

v0.27.1

1 year ago

Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

  1. Update your Gemfile:
gem "decidim", "0.27.1"
gem "decidim-dev", "0.27.1"
  1. Run these commands to upgrade and make sure you get all the latest migrations:
bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

And then follow the steps and commands detailed in these notes.

Changelog

Added

Nothing.

Changed

Nothing.

Fixed

  • decidim-participatory processes: Backport 'Fix unpublished processes shown in the group process count' to v0.27 #9935
  • decidim-admin: Backport 'Fix global moderation types not translated' to v0.27 #9936
  • decidim-admin: Backport 'Fix updating organization settings in case there were errors' to v0.27 #9939
  • decidim-budgets, decidim-core, decidim-elections, decidim-proposals: Backport 'Do not import resources multiple times' to v0.27 #9943
  • decidim-forms, decidim-surveys: Backport 'Fix form answer attachments breaking the answer view' to v0.27 #9944
  • decidim-comments, decidim-core, decidim-verifications: Backport 'Fix user related absolute URLs' to v0.27 #9946
  • decidim-comments: Backport 'Fix "disappearing" underscores with comments' to v0.27 #9948
  • decidim-admin, decidim-core: Backport 'Fix editor content saving when the content has only one video' to v0.27 #9950
  • decidim-core: Backport 'Fix date/time formats at component forms' to v0.27 #9952
  • decidim-proposals: Backport 'Fix collaborative drafts page when there are errors on the form' to v0.27 #9954
  • decidim-debates: Backport 'Fix the finite value on the debate form when editing an existing debate' to v0.27 #9956
  • decidim-pages: Backport 'Fix exporting and importing a page component' to v0.27 #9958
  • decidim-core: Backport 'Fix webpacker crashes on missing icons' to v0.27 #9960
  • decidim-participatory processes: Backport 'Fix importing participatory process from legacy format' to v0.27 #9963
  • decidim-assemblies, decidim-core, decidim-participatory processes: Backport 'Fix duplicate stats on home page and participatory space main page' to v0.27 #9965
  • decidim-budgets, decidim-core, decidim-proposals, decidim-templates: Backport 'Address Crowdin feedback' to v0.27 #9969
  • decidim-core, decidim-proposals: Backport 'Fix cryptic file validation errors' to v0.27 #9971
  • decidim-core: Backport 'Limit invitation redirects only to paths within the application' to v0.27 #9972
  • decidim-admin, decidim-assemblies, decidim-participatory processes: Backport 'Add malformed file errors when CSV reading fails' to v0.27 #9974
  • decidim-elections: Backport 'Define the component import routes, permissions and controller at votings' to v0.27 #9976
  • decidim-core: Backport 'Fix duplicate user activity records when public spaces have private users' to v0.27 #9978
  • decidim-initiatives: Backport 'Fix initiative sign if the authorization metadata is set to nil' to v0.27 #9980
  • decidim-initiatives: Backport 'Add missing i18n key in Initiatives' to v0.27 #9982
  • decidim-comments: Backport 'Fix commenting field disabled when polling new comments' to v0.27 #9986
  • decidim-core: Backport 'Fix correct resource linking for amendments' to v0.27 #9987
  • decidim-core: Backport 'Fix last activity page showing recently updated records' to v0.27 #9989
  • decidim-core: Backport 'Fix user sign up with invalid name' to v0.27 #9990
  • decidim-core: Backport 'Fix user sign up with invalid name' to v0.27 #9990
  • decidim-admin, decidim-assemblies, decidim-initiatives, decidim-participatory processes, decidim-verifications: Backport 'Add missing active actions on admin navigation menu' to v0.27 #9992
  • decidim-admin, decidim-assemblies, decidim-initiatives, decidim-participatory processes, decidim-verifications: Backport 'Add missing active actions on admin navigation menu' to v0.27 #9992
  • decidim-admin, decidim-assemblies, decidim-initiatives, decidim-participatory processes, decidim-verifications: Backport 'Add missing active actions on admin navigation menu' to v0.27 #9992
  • decidim-initiatives: Backport 'Make initiatives order translatable' to v0.27 #9994
  • decidim-core: Backport 'Make ToS agreement translatable' to v0.27 #9996
  • decidim-debates: Backport 'Make Scopes field in debates translatable' to v0.27 #9998
  • decidim-core: Backport 'Remove invitations badge' to v0.27 #10000
  • decidim-conferences: Backport 'Fix conference invitations' to v0.27 #10003
  • decidim-admin, decidim-core: Backport 'Fix preserving bold text in the rich text editor when pasting content' to v0.27 #9961
  • decidim-core, decidim-proposals: Backport 'Fix proposal etiquette and length validator with base64 images' to v0.27 #10009
  • decidim-core: Backport 'Fix disappearing sub-lists in rich text editors' to v0.27 #9967
  • decidim-meetings, decidim-proposals: Backport 'Fix invalid rendering of meeting and proposal body texts' to v0.27 #10002
  • decidim-core, decidim-debates, decidim-meetings, decidim-proposals: Backport 'Refactor cell titles' to v0.27 #10040
  • decidim-admin, decidim-comments: Backport 'Fix moderations for comments that are mapped to deleted resources' to v0.27 #9940
  • decidim-meetings: Backport 'Refactor the meeting list item title display' to v0.27 #10046
  • decidim-system: Backport 'Fix organization SMTP password not saved (became blank) in system panel' to v0.27 #10052
  • decidim-accountability, decidim-admin, decidim-proposals: Backport 'Reformat CSV help for import files on Accountability and Proposals' to v0.27 #10054
  • decidim-budgets, decidim-elections, decidim-proposals, decidim-sortitions: Backport 'Fix usages of reorder and paginate' to v0.27 #10050
  • decidim-admin: Backport 'Show only ToS acceptance when admin hasn't accepted it' to v0.27 #10056
  • decidim-participatory processes: Backport 'Fix usages of sanitize helper methods for editable content provided by admins' to v0.27 #10058
  • decidim-debates, decidim-meetings, decidim-proposals: Backport 'Refactor admin listing titles' to v0.27 #10048

Removed

Nothing.

Developer improvements

Nothing.

Internal

  • decidim-dev: Backport 'Ignore the problematics HTML validation checks with hidden inputs' to v0.27 #10025
  • Backport 'Bump versions on install docs' to v0.27 #10008
  • decidim-assemblies: Backport 'Fix importing a page component without a body' to v0.27 #10029

Previous versions

Please check release/0.27-stable for previous changes.