Changelog History
Page 1
-
v5.0.0-pre Changes
December 07, 2020๐ ffcbc5923d1ffc908cf3bafe05c4bb3c ../ampache-5.0.0-pre-release1_all.zip
๐ This pre-release is for the brave of heart as well as so i can add a docker image preview release.
โก๏ธ The preview will be updated while we work on documenting and socializing the changes with users.โฌ๏ธ DO NOT UPGRADE YOUR MAIN AMPACHE INSTANCE
โฌ๏ธ Seriously, make a copy of your conf and put this in a new folder (or try the docker) before upgrading your main Ampache
๐ณ There are now Docker Images available for testing!
๐ฆ This package requires php >=7.4 || >=8.0
This is a major rewrite and will break if you aren't aware of the changes .
- โก๏ธ You will need to update the web server to point to the new base folder. (/public)
- You will need to make sure you've run composer install again. (composer install)
- โก๏ธ You will need to update scripts and commands (the /bin folder has combined each script into a single application)
- if you used php-cs-fixer it's still there in the vender folder (/vendor/bin/php-cs-fixer)
The Ampache website now resides in the public folder
The bin folder has combined all the separate application files into a single cli application
-
v4.2.5 Changes
December 04, 2020(MD5SUM 57564e04433a98b12cc641205ab13cad) ../ampache-4.2.5_all.zip
๐ Ampache 4.2.5-release
๐ A few important bug fixes that make playlists and stream URLs faster to create as well as some fixes to Democratic playback.
โ Added
- โ Use _add_urls when building a stream playlist
๐ Changed
- โ Removed the forced random from search
- ๐ Put the browse header at the top above plugins
- ๐ Make the webplayer class a bit faster at deciding what to transcode
๐ Fixed
- Ampache Debug, cron.lib.php missing from init
- Slow playlist creation when inserting a large amount of items
- Stream_URL properties were inconsistently applied
- ๐ Fix streaming when play_type is Democratic
- ๐พ Save your limit and random settings when creating a smartlist
API 4.2.5
NO CHANGE
-
v4.2.4 Changes
November 03, 2020(MD5SUM 3d86288f9b7d2854fa7c36065d307d65) ../ampache-4.2.4_all.zip
๐ Ampache 4.2.4-release
๐ Another minor release fixing some issues found over the last month.
โ Added
- "Random" tickbox added to search pages
๐ Changed
- Fall back to year when using original year in search
๐ Fixed
- ๐ User was being created but you were told it isn't
- The search pages remember your limit correctly
- ๐ป PHP exception when < 7.1
- โก๏ธ Correct "Recently Added", "Recently Updated" searches
- Check that song can be inserted before inserting the remaining rows
- Logic in stat recording when skips occur
- Don't query for null tag ids
API 4.2.4
NO CHANGE
-
v4.2.3 Changes
October 06, 2020(MD5SUM 6423cd2254b88a88aa19991a0dd7b2e4) ../ampache-4.2.3_all.zip
๐ Ampache 4.2.3-release
๐ Minor release fixing some issues found over the last month.
โ Added
- Subsonic: Generate errors for objects missing art
๐ Changed
- Don't mark short songs as skipped
- Subsonic: Stop converting strings to ints in JSON responses
๐ Fixed
- ๐ User registrations
- โช Workaround null values for new columns in search table
- ๐ Check release_type length before inserting into the database
- Ensure Album Artist is set correctly on songs
- Subsonic: Fix callbacks for similarSongs2 and artistInfo2
- ๐ Subsonic: getCoverArt fixes
API 4.2.3
NO CHANGE
-
v4.2.2 Changes
September 02, 2020(MD5SUM d5c37a0889f8e4a79d11458a89a8bc19) ../ampache-4.2.2_all.zip
๐ Ampache 4.2.2-release
DATABASE CHANGES You can now force a default collation and charset on your database.
If you choose to use utf8mb4; Ampache will convert your table engine to InnoDB to handle the extra bytes.โ Added
- Numeric 'Played/Skipped ratio' added to search. (Set using (stream/skip)*100.)
> 0 & < 100
: Skipped more than played100
: Equal plays and skips> 100
: Played more than skipped
- โ Add 'Original Year', 'Release Type' to Album searches
- ๐ Allow setting custom database collation and charset without overwriting your changes
- Video search added to random.php
- 'samesite=strict' on JS cookies
- โก๏ธ Translation updates (August 2020)
- Put 'Labels' into search, browse headers and sidebar when enabled
- ๐ NEW config options (config_version 45)
- database_charset: Set a default charset for your database
- database_collation: Set a default collation for your database
- simple_user_mode: Don't allow users to edit their account values (used for demo sites that allow login)
- ๐ NEW files
- bin/update_file.inc: Update your catalog when individual files are changed using inotifywait.sh
- bin/update_db.inc: Update your database collation, charset and table engine from the cli
- docs/examples/inotifywait.sh: script to use inotifywait and update_file.inc to update as file changes happen
- docs/examples/inotifywait.service: systemd example service for inotifywait.sh
๐ Changed
- stats.php: Show total 'Item Count' on Statistics page instead of trying to shoehorn songs/videos/etc into different columns
- โก๏ธ ampache.sql updated after about 4 years... no more updates on install!
- Searching by "Rating (average)" now ignores private/public and always returns the average.
- Hide searches for '# Skipped' and 'Played/Skipped ratio' when 'Show # skipped' is Off
- Search items rearranged to try to match each other
- Sort 'Playlist' and 'Smart Playlist' browse pages by name
- Display the blankuser avatar in now playing if missing
- Swap 'Random' and 'Playlists' in the sidebar (CSS order numbers)
- Don't hide artist art when you disable lastfm_api_key in the config
- Hide 'Metadata' search when 'enable_custom_metadata' is disabled
๐ Deprecated
- ๐ Drop version number from the release string in develop. ('4.3.0-develop' => 'develop')
- This should stop a bit of confusion when removing / adding requirements
- ๐ The '-release' suffix in version number will be dropped for Ampache 5.0.0
โ Removed
- โ Remove stat recording from channels
- โก๏ธ Don't reset the database charset and collation after each db update
๐ Fixed
- ๐ Fixed a few issues on the Statistics page
- Report 'Catalog Size' correctly for podcasts
- Report 'Item Count' correctly for podcasts and video catalogs
- Searching albums for artist name
- Mashup 'Newest' would incorrectly apply an offset missing the newest items
- ๐ Search by 'Smart Playlist' rules fixed when added with other rules
- ๐ Use LEFT JOIN instead of HAVING for search rules to allow more complicated lists
- ๐ Logic searching 'My Rating' includes unrated (0 Stars) in a better way
- Captcha was not generated for registration
- Enforce lowercase codec for live streams
- ๐ Parsing integer search rules was overwriting index values
- ๐ Handle empty XML on similar artist requests to last.fm
๐ Security
๐ Fix CVE-2020-15153 - Unauthenticated SQL injection in Ampache
API 4.2.2
๐ Minor bugfixes
โ Added
- Api::advanced_search added parameter 'random' (0|1) to shuffle your searches
๐ Changed
- โ Remove spaces from advanced_search rule names. (Backwards compatible with old names)
- 'has image' => 'has_image'
- 'image height' => 'image_height'
- 'image width' => 'image_width'
- 'filename' => 'file' (Video search)
๐ Deprecated
- ๐ Search rules 'has image','image height', 'image width', 'filename'. (Removed in Ampache 5.0.0)
๐ Fixed
- Api::stream, Api::download Api::playlist_generate 'format' parameter was overwritten with 'xml' or 'json'
- Produce valid XML for playlist_generate using the 'id' format in XML
- Numeric 'Played/Skipped ratio' added to search. (Set using (stream/skip)*100.)
-
v4.2.1 Changes
August 14, 2020(MD5SUM cda91b97a97a1c91e95f23b64b72d3a2) ../ampache-4.2.1_all.zip
๐ Bugfixes and updates to fix issues found in the wild.
๐ 4.2.1-release
๐ NOTICE Ampache 4.3.0 will require php-intl module/dll to be enabled.
โ Added
- Ajax refresh localplay "Now Playing" same as the index "Now Playing" section
- Put strings ('1 Star', '2 Stars', etc) back into numeric searches for ratings
- Numeric ('1 Star'-'5 Stars') searches now include '0 Stars' to show unrated objects
- โ Add 'has not rated' to "Another User" searches
- โ Add higher bitrates (640, 1280) to search to allow for lossless files
- ๐ NEW files
- Include API docs from the wiki. (API.md, API-JSON-methods.md, API-XML-methods.md, API-advanced-search.md)
- 'Filters' added to each sidebar tab if enabled (previously only 'Home' and 'Admin')
๐ Changed
- ๐ Use binary (.mo) translation files to speed up translation processing
- Don't show 'Generate new API key' if you don't have access
- ๐ QR Code in account page is now just the API Key (redundant link removed too)
- โฌ๏ธ Require minimum version of Ampache 3.8.2 to upgrade database
- โ Added an icon to webplayer to go to album. Clicking on song title now directs to song
๐ Fixed
- Waveform config option 'get_tmp_dir' was ignored if set
- Rightbar: 'Add to New Playlist' not adding on new playlists
- Translate preference subcategories and status
- ๐ 'podcast_new_download' logic fix
- Filters box would show up in the Admin tab if you disabled 'browse_filter'
- ๐ Update album when 'release_type' changes
- ๐ Parse 'Release Type' from tags in a less terrible way
API 4.2.1
No functional changes compared to 4.2.0.
๐ Fixed
- ๐ Filter in "playlist" and "playlist_songs" fixed
-
v4.2.0 Changes
August 06, 2020(MD5SUM 8cff487d8cb7de72f221a044213df48f) ../ampache-4.2.0_all.zip
This is a big one; you ready for a JSON API!?
๐ 4.2.0-release
0๏ธโฃ A big visual change in the interface is that Ampache now defaults to US time for dates. ('Month/Day/Year')
For everyone who isn't American you have control over date formats using custom_datetime.
Admin => Server Config => Interface => Custom datetimee.g. "Y/m/d H:i" will convert to "2020/04/14 10:42"
Check the php manual for help making your desired string. ([https://www.php.net/manual/en/function.date.php])The API changelog for this version has been separated into a new sub-heading below to make it easier to follow.
โ Added
- โ Added Spotify art searches for both album and artist images.
- โก๏ธ Updated component installer and php-cs-fixer package.
- โก๏ธ Translation updates (April 2020, May 2020, July 2020)
- Added declare(strict_types=0); to lib/* and lib/class/* (requires more work before it can be enabled)
- โ Add 250 for search form limits in the web UI. (Jump from 100 to 500 is pretty big)
- โ Add Recently updated/added to search rules
- โ Add regex searching to text fields. ([https://mariadb.com/kb/en/regexp/])
- Refer to the wiki for information about search rules. (https://github.com/ampache/ampache/wiki/advanced-search)
- When labels are enabled, automatically generate and associate artists with their publisher/label tag values.
- Enforced stat recording for videos. (podcasts and episodes to be added later)
- โ Add tags (Genres) to "Anywhere" text searches.
- 0๏ธโฃ 10 second redirect on "Access Denied" to the default web_path
- ๐ Allow "Update from tags" for multi-disk album and artist pages
- ๐ show and hide the rightbar (playlist) using the minimize button in the header
- ๐ท Tag->f_name (New property on tag that was being set hackily)
- โ Add "Album" to Find Duplicates in admin/duplicates.php.
- "Local Image" added to Artist & Album search. Find out whether you have art stored in Ampache
- PHP_CodeSniffer checks and settings added to Scrutinizer. (phpcs --standard=.phpcs.xml lib/class)
- ๐ NEW database options
- cron_cache: Speed up the interface by allowing background caching of data
- show_skipped_times: Add "# skipped" to the UI. (disabled by default)
- custom_datetime: Allow you to format your date strings your way.
- unique_playlist: Force unique playlists by ignoring existing songs
- ๐ NEW config options
- skip_timer: Add Skip Timer Threshold to the config
- artist_art_folder: Specify a local folder to search for artist images using name/title
- rating_file_tag_user: Set ratings to this user ID when importing ratings from file tags
- spotify_client_id: Allows Spotify art search
- spotify_client_secret: Allows Spotify art search
- ๐ NEW files
- server/json.server.php & lib\class\json_data.class.php: JSON API!
- bin/compute_cache.inc: Cache object_count data to speed up access
- bin/cron.inc: Perform garbage_collection functions outside of main functions (includes compute_cache.inc)
- ๐ NEW examples
- docs/examples/ampache_cron.service
- docs/examples/ampache_cron.timer
๐ Changed
- ๐ Change license string from AGPLv3 to AGPL-3.0-or-later
- โก๏ธ Update Composer requirements
- ๐ Allow searching play times without requiring UI option
- ๐ Stop showing the average rating in the web interface as stars. (show an average when available as text separately)
- When you don't have a config file redirect to installer
- ๐ Change to numeric searches: Renamed 'is' => 'equals' and 'is not' => 'does not equal'
- ๐ Allow negative track numbers; reducing the maximum track number to 32767.
- ๐ Localplay volume control moved to the playlist (rightbar)
- Podcast_Episode::check_play_history Podcast_Episode::set_played (match song.class versions for stat recording)
- Video::check_play_history Video::set_played (match song.class versions for stat recording)
- php_cs rules for line endings
- Simplify play history checks and code a bit more
- ๐ท Tag (Genre) searches compare each item (e.g Pop) rather than the whole string (Pop,Rock,etc)
- Replace "Browse Library" buttons with a search header allowing faster browsing of other types
- Share secrets are generated by generate_password instead of a separate function
- inet_ntop may not convert some binary IP addresses (like ::1) these now show up as "Invalid" in the ip history.
- Searches using numeric rules must use an integer. ('1 Star' => 1, '2 Stars' => 2, etc)
- bin/delete_disabled.inc require -x to execute. (previously you needed to edit the file)
๐ Deprecated
- ๐ป Horde_Browser::getIPAddress(). Use Core::get_user_ip() instead.
โ Removed
- bin/migrate_config.inc (This was used to migrate the config file from php4 to php5)
- EchoNest api/song previews
- ๐ User::update_user_stats (used in play index only and useless)
- Share::generate_secret; use generate_password instead
- Song::get_cache_count (unused)
- Ampache Debug check for 'safe_mode'
๐ Fixed
- ๐ Fixed a lot of incorrectly typed function calls and code documentation
- ๐ง Gravatar Plugin: Make sure https is used when force_ssl is configured
- Truncate strings to match database limits when strings go over
- โ Add User php warnings
- Channel authentication
- IP checks when sending null proxy values
- Gather art page layout
- Read vorbis rating correctly
- ๐ Search rules in UI failing to load with custom_metadata
- Warn correctly when inserting art fails
- Insert missing user preferences on login
- ๐ When you had beautiful_urls enabled tracks would not parse in localplay making them all Unknown
- Podcast durations aren't always correct format, prep the time before trying to insert it
- ๐ Subsonic playlist add/remove removing incorrect songs
- Search/Smartlists need to have results to be used in lists
- Auth issues with stats for recording and localplay
- Stream_urls were generated with a typo when downloading
- ๐ Respect album grouping using of the moment plugin
- Filter album title with grouping enabled. (seriously deadmau5, stop with the <> everywhere)
- Share playback without a UID would fail to start
- 0๏ธโฃ Set a default popular_threshold if unauthenticated or unset
- play/index would record democratic streams as a download
- 0๏ธโฃ Make sure the default preferences table has all the preferences in them
- Beets catalog bug; date_diff expecting a datetime but given a string
- Searches using user data like ratings has been split in the SQL correctly
- Flagged playlists never had their flag deleted
- offset and limit were incorrectly used for top/recent searches
๐ Security
- ๐ Fix: CVE-2020-13625 in phpmailer
API 4.2.0
๐ API versions will follow release version and no longer use builds in the integer versions (e.g. 420000)
๐ API 5.0.0-release will be the first Ampache release to match the release string.โ Added
- JSON API now available!
- Call xml as normal:
- [http://music.com.au/server/xml.server.php?action=handshake&auth=APIKEY&version=420000]
- Call the JSON server:
- [http://music.com.au/server/json.server.php?action=handshake&auth=APIKEY&version=420000]
- Example XML and JSON responses available here
- ๐ NEW API functions
- get_similar: send artist or song id to get related objects from last.fm
- shares: get a list of shares you can access
- share: get a share by id
- share_create: create a share
- share_edit: edit an existing share
- share_delete: delete an existing share
- podcasts: get a list of podcasts you can access
- podcast: get a podcast by id
- podcast_episodes: get a list of podcast_episodes you can access
- podcast_episode: get a podcast_episode by id
- podcast_episode_delete: delete an existing podcast_episode
- podcast_create: create a podcast
- podcast_edit: edit an existing podcast
- podcast_delete: delete an existing podcast
- update_podcast: sync and download new episodes
- licenses: get a list of licenses you can access
- license: get a license by id
- catalogs: get all the catalogs
- catalog: get a catalog by id
- catalog_file: clean, add, verify using the file path (good for scripting)
๐ Changed
- โฌ๏ธ Bump API version to 420000 (4.2.0)
- All calls that return songs now include
<playlisttrack>
which can be used to identify track order. <playcount>
added to objects with a playcount.<license>
added to song objects.- Don't gather art when adding songs
- Added actions to catalog_action. 'verify_catalog' 'gather_art'
- API function "playlist_edit": added ability to edit playlist items
- items = (string) comma-separated song_id's (replace existing items with a new object_id) //optional
- tracks = (string) comma-separated playlisttrack numbers matched to items in order //optional
- Random albums will get songs for all disks if album_group enabled
๐ Deprecated
- ๐ API Build number is depreciated (the last 3 digits of the api version)
- API 5.0.0 will be released with a string version ("5.0.0-release")
- All future 4.x.x API versions will follow the main Ampache version. (420000, 421000, 422000)
- ๐ total_count in the XML API is depreciated and will be removed in API 5.0.0.
- XML can count objects the same was as a JSON array [https://www.php.net/manual/en/simplexmlelement.count.php]
- ๐ Genre in songs is depreciated and will be removed in API 5.0.0.
- Use tag instead of genre, tag provides a genre ID as well as the name.
๐ Fixed
- Extra text in catalog API calls
- โก๏ธ Don't fail the API calls when the database needs updating
-
v4.1.1 Changes
February 11, 2020ampache-4.1.1_all.zip (MD5SUM eb958442fcc0c6377f9070baa7db13b4)
๐ Ampache 4.1.1 is a minor release that contains a new API build as well as some bugfixes caught along the way.
- โฌ๏ธ Bump API version to 400004 (4.0.0 build 004)
- Api - Fix parameters using 0
- Api - Get the correct total_count in xml when you set a limit
- Api - Fix many XML formatting issues
- Api - Add Api::check_access to warn when you can't access a function
- โ Remove non-free lib/composer.* files.
- You can enable c-pchart with (composer require 'szymach/c-pchart')
- ๐ Hide localplay in the sidebar when you disable all the plugins
- Extend Shouts to 2000 characters; Labels to 250
- โ Remove shoutcast table and preferences. (Dead code)
- โ Add a status icon to the channel list pointing to the channel/ID/status.xsl
- ๐ Fix Musicbrainz Art search
- ๐ Fix tmp_playlist bug removing items
- ๐ Fix Dropbox catalog errors when using a small library
- ๐ Fix some bugs getting invalid time/date when reading tags
-
v4.1.0 Changes
January 08, 2020ampache-4.1.0_all.zip (MD5SUM 963d35b329d0829f10b391a5913bc926)
๐ Api 400003 is stable and ready for all developers. API work will now move on to JSON support.
A lot of work has gone into search, preparing for static typing and a lot of tiny bugs.- โฌ๏ธ Bump API version to 400003 (4.0.0 build 003)
- Api::playlist - filter mandatory
- Api::playlist_edit - filter mandatory. name and type now optional
- Api::user - Extend return values to include more user fields
- Playlist::create - Return duplicate playlist ID instead of creating a new one
- ๐ Artist::check - Remove MBID from Various Artist objects
- ๐ Fix Song::update_song for label
- Api - Do not limit smartlists based on item count (return everything you can access)
- Api/Database - Add last_count for search table to speed up access in API
- ๐ Fix Api issues relating to playlist access
- ๐ Fix comparison bugs found during static type testing
- ๐ Fix enable/disable song ajax
- โก๏ธ December translation update from Transifex
- โ Add playlist into main search page. (Songs, Albums, Artists, Playlists, Videos)
- Typo in login page HTTP_REFERER
- โช Roll back mysql8 workarounds. (Orace MySQL supported on php7.4+ only)
- ๐ Fix bin*.inc text issues with newline
- โ Add docs/examples/channel_run.service for sunning background processes as a service
- ๐ New search option "Another User" allows searching other user ratings and favorites
- ๐ user_numeric searches also available in the API. ([https://github.com/ampache/ampache/wiki/XML-methods]))
- โก๏ธ Updates to support php7.4 (Ampache supports 7.1-7.4)
- ๐ Fix bug in UI when enabling/disabling songs
- Checks in Subsonic/WebUI for recording repeated plays
- โก๏ธ Update channel status pages (/channel/$CHANNELID/status.xsl)
- ๐ Fix smartlists when searching sub-lists (Ampache was trying to create one giant query that didn't scale well)
- โก๏ธ composer & php-cs-fixer updates
- ๐ Fix "Add New..." in album edit
- โช Revert changes in 4.0.0 and allow manual choices for artist/album on upload again.
- Subsonic return json errors when requesting json format (previously errors were always xml)
- โ Add github package guide for docker to RELEASE-PROCESS.md
- โก๏ธ Update ListenBrainz plugin for empty additional info. (API says remove this section from json)
-
v4.0.4 Changes
December 02, 2019ampache-4.0.4_all.zip (MD5SUM 08990849409c6c23a9f8f2eb99755365)
๐ Thanks for working with me to smooth this release out.
๐ I think we're finally at a point where I can move on to new development and let this release free!- ๐ Finalize release procedure to make these updates a bit smoother
- โฌ๏ธ Reduce the time for repeated track playback (Song length - 5 sec)
- ๐ Filter playlists in API, Web and Subsonic correctly for regular users vs admins
- ๐ Fix album count for Artists when the album is missing data
- ๐ Fix searches / searchbox for MYSQL8
- ๐ Fix some invalid returns in lib/*
- Send the correct function in ajax.server when deleting from playlist
- Hide some lines from the mashup to make it a bit nicer
- โ Remove the old logo from the main install page