Chamilo 2.0 alpha 1 - Babaorum, 2024-07-20
Release notes - summary
Chamilo 2.0 will be a major release, a new branch for the Chamilo software.
It is based on Chamilo 1.11.10 and includes tons of backend changes that will make
developing Chamilo more "mainstream" and (hopefully) faster in the future,
by adopting more widely-known libraries, with the notable inclusions of Symfony
as a main controller and framework (except for some legacy tools not yet converted),
VueJS as our main frontend framework and TailwindCSS as our CSS framework.
For the first time in almost 15 years (since its launch in 2010),
Chamilo considerably changes appearance, with a new, foldable, left menu (meant
to improve space usage on mobile devices) and a streamlined (and open source) set of
icons, and a design that will allow more flexibility and speed across devices.
This is an ALPHA release, meaning it is not finished and is meant for testing and development
only. It should *NOT* be used in production unless you have a full-time dedicated IT team behind it.
An alpha version, to us, means that (except for unforeseen issues) the database structure is fixed
and the files structure is fixed (although some files could still be added/removed before the beta
release).
Release name
Babaorum (ficticious village name, see French art)
Security fixes
Added
.
- Web services: Added API Platform endpoint "/api". See wiki.
- Messages: Messaging can now be made to several people at once from the messages interface (and replies can be made to the same users).
- Messages: Added tag-based filtering your inbox/outbox.
- Admin: Extra fields now have a description field, which allows you to show what you expect from users filling those.
- CMS: Added CMS-type management of additional pages, including contact forms. A default install will add empty Home, FAQ, Demo and Contact pages)(16429423 - BT#20918).
- Course homepage: Added possibility to re-order tools on course homepage.
- Install: Added installation logs for better debug capabilities on install/migrations. Migrations can now be executed step by step if needed (f986f77d)
- Admin: Added the roots of a role-based permissions system. Not functional yet but should be done by stable. Load through /permissions (not the definitive path) to get a sneak peak.
- Calendar: Added collective events management in calendar (invite other users as participants to the event) [2021-07-14] (026d1163 - BT#18894)
- Admin: Added pre-deletion of users as safeguard against user mistakes (7e917caf - GH#5097).
- Admin: Privacy: Add auto-remove option to delete extra fields when anonymizing users (ff4ef19f - GH#5211).
- Messages: Added search feature in message tool (2cf10c51 - BT#21705)
- Announcement: Add event reminders to event created from announcement (b5e86d12 - BT#21582).
- Admin: Added "News from Chamilo" and "Support" blocks (can be disabled) in the admin section. This will allow us to communicate with admins about updates, security updates and global events, between others, in a non-intrusive way.
Changed
- Display: Completely changed the design (left menu, reduced top header) and icon set (harder to change but vectorial, color-editable and using one single open library: Material Design Icons).
- Display: "My courses" and "My sessions" are now split into 2 different pages. If you only use one, only one appears, highly reducing confusion and increasing speed for portals with many courses/sessions.
- Admin: All settings previously found in app/config/configuration.php have been moved to the platform settings interface or (for only a few ones) to .env in your Chamilo's root folder. There are now 720+ settings available to you through the admin interface. Not all settings are implemented yet. Most optional database changes related to those settings have been added to the database by default.
- Install: Installation in sub-folders is not possible anymore. Using virtual hosts has become pain-free and cost-free compared to how it was 15 years ago. You will have to use vhosts or another LMS.
- Install: When installing, you now need to point your DocumentRoot to the public/ directory, otherwise Chamilo will not work. However, .htaccess file support is now optional.
- WYSIWYG: We have moved to TinyMCE (from CKEditor) due to CKEditor removing the possibility to edit HTML source (which we consider necessary) (53207cf9.
- Language: Translations now use Gettext. New translation platform at translation.chamilo.org.
- Internal: cidReq/sessionId/gidReq have been replaced by more sensible cid/sid/gid in URLs.
- Internal: Documents are now referenced by id instead of path, which provides for more reliability.
- Sessions: Sessions can now have multiple general coaches (including the possibility to have none).
- Internal: Files management is now done through a wrapper and in a single writeable directory "var/" (will enable usage with cloud storage services in the future)
- Database: All "name" fields have been renamed "title" for consistency across the system.
- Install: Updated minimum PHP version required to PHP 8.2
- Calendar: Merged all calendar tools (global, course and personal events) for mainstream management.
- Messages: Message attachment are no longer replicated the number of times they are received (for example through an announcement). This saves considerable space on large portals.
- Admin: Remove courses/sessions icons from users list (very seldom used). Cut e-mail address shorter and add icon for full e-mail info on hover.
- Database: As much as possible, tables containing records of objects that had been previously deleted in Chamilo 1.* are migrated without such records. This means less "ghost" content, but also that the content deleted that way in Chamilo 1.* now has become completely unrecoverable.
- Internal: Resources (documents, tests, forums, etc) are now global and fully shareable between course contexts, which will allow us (in future versions) to have a central repository of resources to search and share reusable items.
- Quiz: Add new generated audio file link in exercise notifications (dcc44158 - BT#21575).
- Plugins: xAPI: xAPI plugin and LRS tables integrated into core entities (37aede9d - GH#2001).
- Global: Added 'duration' field to many item types (course, learning paths, tests, attendances, assignments, ...). This will enable better reporting when activities must be based on "estimated time of completion" rather than tracked time.
- Admin: The Multi-URL feature is now enabled by default on the admin page.
Fixed
Known issues
- Customizations of in-course tools (titles, icons, etc) at the course level are lost in migration.
- Multi-URL does not work (fully) yet in this alpha release.
- Wiki: The wiki tool is not available *yet*. It will be included again in future versions, but there were too many changes required to include it in v2.0.
- Course chat: The course chat tool is not available *yet*. It will be included again in future versions, but there were too many changes required to include it in v2.0.
- Plugins: Many plugins that seemed either unused or were not maintained by their maintainers were removed. They could be included again later on, and their tables have not been removed in the database if they had been installed in your 1.11.*, but they are not available in the list of plugins.
- Plugins: Installing plugins is disabled in this alpha release. This should be fixed before beta 1.
- Display: The Bootstrap (CSS) library has been removed. Some code might still use it. Should be fixed before stable.
- Blogs: The blogs tool is not available. It might be included again in future versions, but there were too many changes required to include it in v2.0. The management of roles and permissions inside the blog were removed definitively to simplify it and allow for reasonable long-term maintenance. Tables like c_role* and c_permission* have been removed.
- Dropbox: The dropbox tool is not available. It might be included again in future versions, but there were too many changes required to include it in v2.0.
- Display: Upon migration, the stylesheets are reset to the default Chamilo stylesheet. You will have to redesign your stylesheets using the stylesheets tool in the admin UI.
- Courses list: Removed the ability to sort your own courses in a special list (too complex to support in combination with sessions).
- Course catalogue: Not working properly. Will be fixed before stable.
- Admin: Document templates have been removed. Previous templates were non-responsive. In this version, there will be no document templates by default, but you can add them easily in Admin > System templates.
- Shared surveys: The data related to this feature in v1.* was removed. We don't know of anyone using it, and Chamilo 2.0 comes with the structure to make a survey span several courses. Although this is not implemented in the interface yet, it will allow, in practice, to share surveys between courses. Tables shared_survey* have been removed.
- Userinfo: This feature allowed teachers to define kind of profile fields for users in the specific context of their courses. We believe this feature was non-accessible through the interface for at least 6 years. This has been removed in Chamilo 2.0 for maintainability. Tables c_userinfo_def and c_userinfo_content have been removed.
- Browser tracking: The track_e_open table has been removed. To our knowledge, it served at one point to support a kind of analytics tool inside Chamilo (aware of browser details), but hasn't been used for at least 10 years. This has been removed in Chamilo 2.0 for maintainability.
Syntax and terminology
To ensure this changelog is the most useful, we are using a specific syntax and terms for this changelog, provided below.
>
Also, this changelog, to the exception of security fixes, only contains elements that have an impact on users. Sysadmins and developers are invited to use git log to find any specific change.
Versions
Each version is shortly described, with:
- a version number using Semantic Versioning
- a version name, which is the name of a town or village visited at least once by one of our development team members, preferably with a link to the place in OpenStreetmap or on Wikipedia
- a release date
- an optional, short history explaining the relationship between the version and the place
Sections
Inside each version block, different sections are laid out to ease the reading of the changelog:
- Security fixes: any known vulnerability was fixed in this version.
- Added: New features. Big & small.
- Changed: Processes that have changed or improved. Might require power users to be trained on these changes. Includes breaking changes requiring special attention from admins. Includes removals.
- Fixed: Any known issue that has been fixed. These are not considered improvements because they should have worked in the first place.
Within those sections, you will find different markers helping you filtering out specific topics like theming, web services, database, etc.
Syntax
Every change comes with a link to the change in our versions tracking system, a link to the reported issue or task (if any) and a short description of the change's purpose or effect.
A commit message will typically show as follows:
[Minor: ][Tool: ][Subtool: ][Description][ - refs #1234]
where:
- [Minor :] can be added or not. If added, this will *not* appear in the changelog because... it's a minor, non-process-affecting change.
- [Tool: ] is one of the tools/features below.
- [Subtool: ] is usually used only when the tool is "Plugin: ", to indicate which plugin we're talking about.
- [Description] is a short sentence (verbs like 'add', 'remove', 'change' are not conjugated, so they appear as these infinitive versions without the English 'to') describing the change.
- [ - refs #1234] indicates the ID of the issue on Github (or something like 'BT#1234' if from another, private, ticketing system)
Tools/features terminology
We use a short terminology to group all changes applying to the same tool. We use a term in singular even when talking about multiples. The names we use for these tools/features are:
- Admin
- Announcement
- Attendance
- Blog
- Calendar
- Career
- Chat
- CI (for Continuous Integration, automated tests, etc)
- Course description
- Course Progress
- Cron
- Dashboard
- Display
- Document
- Dropbox
- Quiz (not exercise)
- Extra Fields
- Forum
- Glossary
- Gradebook
- Group
- Help
- Install (includes upgrade stuff)
- Language
- Link
- Learnpath (for LP or Learning Paths)
- Maintenance
- Message
- Notebook
- Optimization
- Portfolio
- Privacy
- Search (for fulltext search)
- Security
- Session
- Skill
- Social (for social network)
- SSO (for Single Sign On methods)
- Survey
- System: stuff that have mostly to do with hosting and finetuning at server level
- Template
- Ticket
- Tracking
- User
- Webservice
- Wiki
- Work
Hashtags
Commit messages must include (at the end) an indication of the *type* of change:
- #security
- #add
- #change
- #fix
Other tags might include:
- #legal: indicates that this feature helps Chamilo provide information to comply with some law (can be in any country)
- #scorm: indicates that this feature relates to the SCORM standard
- #fresh-users: indicates that this feature helps prevent drama with fresh users lacking experience and prone to error
- #breaking: indicates that this feature might potentially break some previous feature or make previous data inaccessible