Commit d807ab97 authored by semantic-release-bot's avatar semantic-release-bot
Browse files

chore(release): 1.0.0-beta.1 [skip ci]

# 1.0.0-beta.1 (2022-01-23)

### Bug Fixes

* **a11y:** replace active tab color to contrast with background on podcast and episode pages ([f3785e14](
* **activity-pub:** cache issues when navigating to activity stream urls ([7bcbfb32](
* **activity-pub:** get database records using new model instances ([92536ddb](
* **activitypub:** set created_by to null for reblog if no user + update episode oembed data ([209dfbd1](
* add admin-audio-player to vite config to have admin player show up ([93cb9b24](
* add application/octet-stream mimetype to mp3 and m4a extensions to prevent ext_in error ([339bef87](, closes [#145](
* add category_label component to include parent category in about podcast page ([74e7d68a](
* add head request to analytics_hit route ([f0a2f0be](
* add missing explicit badge for podcasts and episodes ([cdf9f9d5](
* add open graph size for podcast images to replace the inadequate large format ([33aae1f7](
* add public/media folder to castopod bundle ([8053d352](, closes [#52](
* add translation key for audio-clipper trim labels ([db191ac3](
* add where condition to get episode count without deleted episodes ([7661734e](, closes [#67](
* **admin:** save block and lock switches ([b66c0afc](
* **analytics:** redirect to mp3 file even when referer was not set ([9fc388d1](
* **analytics:** remove charts empty values + remove useless language cache ([16787941](
* **analytics:** set duration field to precise decimal as episode's audio file duration ([d7726854](
* **analytics:** update migrations to set decimal precision for latitude and longitude ([714d6b5d](
* **analytics:** update service management so that it works with new OPAWG slug values ([7fe9d425](
* **audio-clipper:** add mouse position offset when stretching clip to prevent content from jumping ([602654b9](
* **audio-clipper:** show audio playing progress + put waveform behind audio clipper ([01a09dc4](
* **avatar:** use default avatar when no avatar url has been set ([9d23c7e7](, closes [#111](
* **bundle:** include modules and themes when copying files with rsync ([cd5bb883](
* **bundle:** update vite input files path + add `set -e` in bash scripts to fail if command fails ([0ee53c71](
* **cache:** add locale for podcast and episode pages + clear some persisting cache in models ([9cec8a81](, closes [#42]( [#61](
* **cache:** return a non cached view when connected ([e2e73581](
* **cache:** suffix cache names with authenticated for credits, map and pages ([418a70b2](
* cast actor_id to pass as int to set_interact_as_actor() function ([56a8e5d7](
* **category:** remove uncategorized option to enforce users in choosing a category ([8c64f25a](
* check for database connection and podcasts table existence before redirecting to install ([eb74e81c](
* check that additional files are valid when creating episode ([eac5bc87](
* check that note has a preview_card_id before displaying it ([acb8b3a4](, closes [#114](
* clear cache when deleting podcast banner ([99bb40b8](
* comment all cache clean after page update to prevent analytics cache deletion ([e6197a49](
* **comments:** add comment view partials for public pages ([fcecbe1c](
* correct chart data ([4d3e9c8c](
* correct percona compatibility issue ([e53f8192](
* correct php-fpm issues ([1ef55d73](
* correct referrer bug ([ed69b2f5](
* correction for servers with low int precision ([31b7828e](
* **cors:** add preflight option routes for episode, podcast and status objects ([a281abfd](
* declare typed properties in PHPDoc for php<7.4 ([14dd44d0](, closes [#23](
* define podcast_id and platform_slug as foreign keys in podcasts_plaforms table ([6e9451a1](
* define podcastNamespaceLink value ([0d744d21](
* **embeddable-player:** enable any ancestor when X-Frame-Options is set on server ([44a4962e](
* **embed:** open embedded player's links in new tab ([4aa73d71](
* **episode-form:** show warning to set `memory_limit`, `upload_max_filesize` & `post_max_size` ([3b3c218b](, closes [#5]( [#86](
* **episodeCount:** add missing brackets to French language file ([c1b41126](
* **episode:** replace guid's empty string value to null ([441052af](
* **episodes-page:** handle defaultQuery being null when no podcast episodes ([15183b7e](, closes [#100](
* **episodes-table:** set descriptions to be not null ([6774ec10](
* **episodes:** add publication status + set publication date to null when none has been set ([d882981b](, closes [#70](
* escape generated feed tag values and remove new lines from public pages meta description ([6238a438](, closes [#57]( [#46](
* expire default query cache upon scheduled episode publication ([b72e7c86](, closes [#81](
* fix layout bugs in admin and update translation files ([a8341718](, closes [#40](
* **follow:** add missing helpers to Actor controller ([ee53a732](
* handle HEAD requests on podcast_feed route ([74b2640f](, closes [#79](
* **images:** set default mimetype if none is specified when getting size info ([6e4acc64](
* **import-with-escaped-characters:** remove \CodeIgniter\HTTP\URI in download_file, closes [#103]( ([35b5be09](
* **import:** add extension when downloading file without + truncate slug if too long ([c5f18bb6](
* **import:** add validation for handle field to prevent Router.invalidParameterType error ([5bf7200f](, closes [#119](
* **import:** cast description's SimpleXMLElement to string ([02d17be4](
* **import:** remove query string from files url ([109c4aa1](
* **import:** save media files during podcast import + set missing media fields ([a9989d84](
* **import:** set episode and season numbers to null when not present in item tag ([3211398c](
* **import:** use <image><url> tag when no <itunes:image> is present ([20e607af](
* include missing variables on public ui's episode page and remote_actions ([193b373b](
* **install:** redirect manually to install wizard on first visit ([2ceaaca4](
* **install:** redirect to host_url install route on instanceConfig validation error ([99250b18](
* **install:** redirect to input baseUrl after instance config ([2426af7d](, closes [#53](
* **interact-as:** set actor_id instead of podcast id upon login event ([5dfade7c](, closes [#104](
* **json-ld:** add missing properties to PodcastSeries object ([e97266c5](
* keep subtitle line breaks when parsing srt file to json ([cfb3da65](
* **layouts:** replace holy-grail layout with tailwind config + widen public podcast layout ([be5a2878](
* **map:** update episode markers query to discard unpublished episodes ([b3caac45](
* **md-editor:** build new markdown editor with lit + github/markdown-toolbar-element ([9ec1cb93](, closes [#93]( [#94]( [#120](
* minor corrections ([13be3868](
* move analytics to helper ([d3119173](
* **multiselect:** add missing class names in choices options for purge to work properly ([719538d0](
* **open-graph:** replace non existant episode description to podcast description in podcast page ([b02584ee](
* **package.json:** update destination of postcss generation scripts ([21413f8a](
* **pages:** add locale to page cache ([8f999ce2](
* **partner:** set correct image URL ([61554be1](
* pass timezone to relative time component to show the localized time in the UI ([b9db9364](
* **persons:** prevent overflow of persons list by adding horizontal scroll ([9e8995dc](
* **persons:** set person picture as optional for better ux ([7fdea63d](, closes [#125](
* **platforms:** display platform link only when visible is toggled on ([6e503c8d](, closes [#39](
* **podcast-import:** move guid attribute declaration for Episode entity to include slug data ([5d02ae39](
* **pwa:** add scope to webmanifests to allow installing an app per podcast ([74c683eb](
* **pwa:** set app display as standalone in the webmanifests ([7aa37d24](
* re-order graph values ([35f633b4](
* redirect to non cached views when authenticated in public views ([482b47ba](
* **release:** add missing version number to castopod-host package ([8f3e9d90](
* remove defer from js script declaration as it is a module ([18ae557e](
* remove fixed size from podcast sidebar + rearrange account info + space out import radio inputs ([776eec6f](
* remove required for other_categories field and add podcast_id to latest podcasts query ([5417be00](
* remove required property to persons picture ([c546be38](, closes [#125](
* rename field status to task_status to get scheduled activities ([4ff82a5f](
* rename issue_templates labels ([9f003058](
* rename MyAccount controller file ([e109df30](, closes [#60](
* rename podcast name to podcast handle to clarify field usage ([9dd4c774](, closes [#126](
* reorder fields as composite primary keys for analytics tables ([9660aa97](
* replace getWebEnclosureUrl with getEnclosureWebUrl ([8122ceaf](
* replace hardcoded style links with vite service + set default value for remote transcript url ([3f2e0560](, closes [#149]( [#150](
* replace website key for webpages in breadcrumb translate file ([50e32ff7](
* rewrite regenerate image function to use saveSizes method from Image entity ([38899124](
* **rss-import:** add Castopod user-agent, handle redirects for downloaded files, add Content namespace ([214243b3](
* **rss:** cast number type values to string in rss_helper ([7180ae9e](, closes [#148](
* **rss:** do not escape podcast and episode titles in the xml ([0dd3b7e0](, closes [#138]( [#71](
* **rss:** set ❬itunes:author❭ tag to owner_name if publisher not specified ([2271c144](, closes [#96](
* **rss:** use originalPath instead of originalMediaPath in Image library ([b4012b7d](
* save transcript and chapters files to podcasts folder ([63f49c71](
* set cache expiration to next note publish to show note on publication date ([0a66de3e](
* set episode description footer to null when empty value ([3a7d97d6](
* set episode duration translation to hardcoded english ([c39efc94](, closes [#64](
* set episode guid upon episode creation ([ad8b153f](, closes [#48](
* set episode numbers during import + remove all custom form_helpers + minor ui issues ([99a3b8d3](
* set localized slug_field key as string in french language ([17fb29b2](
* set location to null when getting empty string ([71b1b5f7](
* **settings:** add .jpg extension to site-icon file input to display all jpeg images ([f611a16c](
* sort episodic podcasts by season ([d7b6794f](
* **themes:** update themes stylesheet route and remove css extension ([e4e7e000](
* **types:** update fake seeders types + fix bugs ([76a4bf34](
* unpublish episode before deleting it + add validation step before deletion ([f75bd764](, closes [#112]( [#55](
* update .htaccess for shared hosting config ([23798263](
* update broken contributor dropdown fields ([e5b75150](
* update condition in AnalyticsTrait ([fbc0967c](
* update condition in home controller to redirect to install page ([33f1b91d](
* update conditions when checking for empty max_episodes and season_number ([fbad0b59](
* update iso-369 language table seeder ([0c90db44](
* update MarkdownEditor component + restyle Button and other components ([b05d177f](
* update purgecss content path for php helper files ([eb70bb4f](, closes [#59](
* update translations for settings' tasks to include what they should be used for ([06b1a8b2](
* use slash instead of backslash to call layout ([a80adb22](
* **ux:** allow for empty message upon episode publication and warn user on submit ([33d01b8d](, closes [#129](
* **ux:** redirect user to install page on database error in home page ([9017e30b](
* **video-clips:** check if created video exists before recreating it and failing ([dff12087](
* **video-clips:** clear video clip cache after process has finished ([3ae62325](
* **video-clips:** create unique temporary files for resources to be deleted after generation ([7f7c878c](
* **video-clips:** tweak portrait parameters to have subtitles display without overflowing ([2385b1a2](
* **xml-editor:** escape xml editor's content + restyle form sections to prevent overflowing ([588590bd](

### Features

* **activitypub:** add Podcast actor and PodcastEpisode object with comments ([9e1e5d2e](
* add alternate rss feed link tag to podcast page head ([a973c097](, closes [#35](
* add analytics and unknown useragents ([ec92e65a](
* add audio-clipper toolbar + add video-clip-previewer ([02557539](
* add audio-clipper webcomponent (wip) ([21d4251b](
* add basic stats on podcast about page ([16705584](
* add breadcrumb in admin area ([7fb1de2c](, closes [#17](
* add cache to ActivityPub sql queries + cache activity and note pages ([2d297f45](
* add CDN url ([972bcbf6](, closes [#37](
* add codemirror to display xml editor for custom rss field ([f15f2624](
* add cumulative listening time charts ([588b4d28](
* add DropdownMenu component + remove global audio player in admin ([abb7fbac](
* add episode_numbering() component helper to display episode and season numbers ([3f4a6bd0](
* add french translation ([196920d6](
* add heading component + update ecs rules to fix views ([23bdc6f8](
* add housekeeping task to run after migrations ([89dee41d](
* add install wizard form to bootstrap database and create the first superadmin user ([cba871c5](, closes [#2](
* add ISO 3166 country codes ([97cd94b4](
* add js audio player on podcast, admin and embeddable player pages + fix admon episodes ux ([0e14eb4d](, closes [#131](
* add lock podcast according to the Podcastindex podcast-namespace to prevent unauthozized import ([72b30127](
* add map analytics, add episodes analytics, clean analytics page layout, translate countries ([07eae83a](
* add media entity and link documents, images and audio files to it ([6ecf2866](
* add Noto Sans Mono font to use for durations + button to access new video clip form in list ([7609bb60](
* add npm for js dependencies + move src/ files to root folder ([cbb83a6f](
* add Open Graph and Twitter meta tags ([af970b8b](, closes [#41](
* add pages table to store custom instance pages (eg. legal-notice, cookie policy, etc.) ([9c224a8a](, closes [#24](
* add platform models ([a333d291](
* add platforms form in podcast settings ([043f49c7](
* add platforms tables ([ce593441](
* add podcast banner field for each podcast + refactor images configuration ([4a8147bf](
* add remote_url alternative for transcript and chapters files ([3143c9ad](
* add replied to post or comment to reply element ([d0f9c601](
* add json-ld objects to podcasts, episodes, posts and comments pages ([902f959b](
* add task to housekeeping setting for resetting all instance counts ([9303e51b](
* add unique listeners analytics ([3a492581](
* add user permissions and basic groups to handle authorizations ([d58e5187](, closes [#3]( [#18](
* **admin:** make header stick on scroll and show title + action buttons using css only ([d60498c1](
* **admin:** update admin layout for better ux + update brand pine colors ([d86142eb](
* allow cross origin requests on episode comments ([e12f95ac](
* **analytics:** add 'other' group to pie charts in order to display more accurate data ([73acef93](
* **analytics:** add charts and data export ([78625c47](
* **analytics:** add service name from rss user-agent ([7202b986](
* **analytics:** add weekday and hour bar charts ([8ab31329](
* build hashed static files to renew browser cache ([37c54d24](, closes [#107](
* **cache:** add podcast and episode pages to cache + clear them after insert or update ([da0f0472](
* **categories:** create model, entity, migrations and seeds ([f73b042c](
* **clips:** setup clip entities and model + save video clip to have it generated in the background ([2f6fdf90](
* **comments:** add comments to episodes + update naming of status to post ([bb4752c3](
* **comments:** add like / undo like to comment + add comment page ([0c187ef7](
* **components:** add custom view renderer with ComponentRenderer adapted from bonfire2 ([a95de8ba](
* create optimized & resized images upon upload ([02e4441f](, closes [#6](
* **custom-rss:** add custom xml tag injection in rss feed for ❬channel❭ and ❬item❭ ([6ecdaad9](
* **devcontainer:** add devcontainer settings for dev environment ([69e72667](
* display castopod version in admin footer ([9f2574e6](, closes [#68](
* display legal disclaimer and warning on podcast import page ([2f07992e](, closes [#34](
* edit + delete podcast and episode ([ac5f0c73](
* **embeddable-player:**  add embeddable player widget ([141788fa](
* enhance admin ui with responsive design and ux improvements ([2d44b457](, closes [#31]( [#9](
* enhance ui using javascript in admin area ([c0e66d5f](
* **episodes:** add create form and view pages for episode ([f3b2c8b8](, closes [#1](
* **episodes:** add migrations, model and entity for episodes table ([04448217](
* **episodes:** replace all audio file URL parameters with base64 encoded data ([e1f65cd3](
* **episodes:** schedule episode with future publication_date by using cache expiration time ([4f1e773c](, closes [#47](
* **fediverse:** implement activitypub protocols + update user interface ([2f525c0f](, closes [#69]( [#65]( [#85]( [#51]( [#91]( [#92]( [#88](
* **fonts:** replace Montserrat with Inter for better readablity ([bfa11d00](
* import podcast from an rss feed url ([9a5d5a15](, closes [#21](
* integrate stylized form components and update podcast edit page ([65367295](
* make displayed publication time as relative time using @github/time-elements ([230e139e](
* **map:** display geolocated episodes on a map page ([4357cc25](
* **media:** clean media api + create an entity per media type ([fafaa7e6](
* **media:** save audio, images, transcripts and chapters to media for episode and persons ([58e2a00a](
* **meta-tags:** add activitypub alternate links to podcast, episode, comment and post pages ([bd61752b](
* minor corrections to some tables ([3bf9420b](
* **monetization:** add Web Monetization support ([96a6026f](
* **nodeinfo2:** add .well-known route for nodeinfo2 containing metadata about the castopod instance ([88fddc81](
* **partner:** add link and image in episode description ([ad07bb93](
* **person:** add namespace person tag ([8acd011f](
* **platforms:** add AntennaPod ([53e9cfd6](
* **platforms:** add Fediverse and some funding platforms, add link on logo ([afc3d502](
* **platforms:** add helloasso ([16cb993e](
* **platforms:** add missing's platforms ([92dd370e](
* **platforms:** add ([3d7a2320](
* **platforms:** add Podcast Index ([ad52b1cc](
* **platforms:** add podfriend ([9fdc8d32](
* **podcast-form:** update routes and redirect to podcast page ([12ce9057](
* **podcast:** create a podcast using form ([1202ba35](
* prefill season and episode numbers + set episode number as mandatory for serial podcasts ([07d740b7](, closes [#134]( [#136](
* **public-ui:** adapt public podcast and episode pages to wireframes ([40a0535f](, closes [#30]( [#13](
* **pwa:** add service-worker + webmanifest for each podcasts to have them install on devices ([fee2c1c0](
* redesign public podcast and episode pages + remove any information clutter for better ux ([93214007](
* replace form helper functions with components in admin template ([e64548b9](
* replace slug field with interactive permalink component ([578022b8](
* restyle episode and person cards + add focus style to interactive elements for a11y ([a505a1de](
* **rss:** add ˂podcast:guid˃ tag for channel ([1fab10eb](
* **rss:** add podcast-namespace tags for platforms + previousUrl tag ([dbba8dc5](, closes [#73]( [#75]( [#76]( [#80](
* **rss:** add podcast:comments tag to link to episode comments ([32e8c7c1](
* **rss:** add podcast:location tag ([c0a22829](
* **rss:** add soundbites according to the podcastindex specs ([6b34617d](, closes [#83](
* **rss:** add transcript and chapters support ([e769d83a](, closes [#72]( [#82](
* **rss:** generate rss feed from podcast entity ([c815ecd6](
* **rss:** update monetization tag so that it meets PodcastIndex requirements ([4c7ecbee](
* **select:** enhance select input with choices.js ([910d457c](
* set app parameter forceGlobalSecureRequests = true forcing requests to go through https ([d9dff1b8](
* set podcast / episode description in the pages description meta tag ([1c4a5044](, closes [#44](
* **settings:** add general config for instance (site name, description and icon) ([5c56f3e6](
* **settings:** add theme settings to set an accent color for all public pages ([5c529a83](
* simplify podcast page's layout for better ux ([2c0efc65](
* **soundbites:** add soundbite list and creation forms with audio-clipper component ([de193171](
* style file inputs using tailwind's file class ([8208ab67](
* **themes:** add ViewThemes library to set views in root themes folder ([7a276764](
* **themes:** set different default banner per theme ([11c916fe](
* **themes:** set generic css variables for colors to enable instance themes ([a746a781](
* toggle podcast sidebar on smaller screens ([f0205ec2](
* **transcript:** parse srt subtitles into json file + add max file size info below audio file input ([00987610](
* **ui:** create ViewComponents library to enable building class and view files components ([94872f23](
* update analytics so to meet IABv2 requirements ([03e23a28](, closes [#10](
* update pine colors + create charts components ([a50abc13](
* **users:** add myth-auth to handle users crud + add admin gateway only accessible by login ([c63a0776](, closes [#11](
* **ux:** remove admin dashboard and redirect directly to podcast list ([27c48b8f](
* **video-clip:** add video-clip page with video preview + logs ([42538dd7](
* **video-clip:** generate video clips in the bg using a cron job + add video clip page + tidy up UI ([db0e4272](
* **video-clips:** add dimensions for portrait and squared formats ([3af404da](
* **video-clips:** add new themes + add castopod logo as a watermark ([1d1490b0](
* **video-clips:** add route for scheduled video clips + list video clips with status ([2065ebbe](
* **video-clips:** allow episodeNumbering text to stand in the indent of episodeTitle paragraph ([71a063da](
* **video-clips:** generate a 16:9 video using ffmpeg ([35aa7ea5](
* **video-clips:** generate subtitles clip using transcript json to have subtitles accross video ([3ce07e45](
* **video-clips:** replace hardcoded colors with config's theme colors ([e462abf6](
* **vite:** add vite config to decouple it from CI_ENVIRONMENT ([8721719c](
* write id3v2 tags to episode's audio file ([4651d01a](

### Performance Improvements

* **cache:** update CI4 to use cache's deleteMatching method ([54b84f96](
* **cache:** use deleteMatching method to prevent forgetting cached elements in models ([76afc0cf](
* defer javascript + lazy load images for faster page loads ([f0685e44](
* **docker:** add redis caching service for development ([05ace8cf](

### Reverts

* set deprecated config options back in App config ([433745f1](
* **soundbites:** remove soundbite table from episode's public page ([5dc0f196](
* use basic input file for episodes audio files instead of button for better UX ([d5f22fbb](


* **analytics:** analytics_podcasts_by_player table and analytics_podcasts procedure were updated
parent 74e7d68a
Pipeline #1246 skipped
This diff is collapsed.
...@@ -11,7 +11,7 @@ declare(strict_types=1); ...@@ -11,7 +11,7 @@ declare(strict_types=1);
| |
| NOTE: this constant is updated upon release with Continuous Integration. | NOTE: this constant is updated upon release with Continuous Integration.
*/ */
defined('CP_VERSION') || define('CP_VERSION', '1.0.0-alpha.80'); defined('CP_VERSION') || define('CP_VERSION', '1.0.0-beta.1');
/* /*
| -------------------------------------------------------------------- | --------------------------------------------------------------------
{ {
"name": "podlibre/castopod-host", "name": "podlibre/castopod-host",
"version": "1.0.0-alpha80", "version": "1.0.0-beta1",
"type": "project", "type": "project",
"description": "Castopod Host is an open-source hosting platform made for podcasters who want engage and interact with their audience.", "description": "Castopod Host is an open-source hosting platform made for podcasters who want engage and interact with their audience.",
"homepage": "", "homepage": "",
{ {
"name": "castopod-host", "name": "castopod-host",
"version": "1.0.0-alpha.80", "version": "1.0.0-beta.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "castopod-host", "name": "castopod-host",
"version": "1.0.0-alpha.80", "version": "1.0.0-beta.1",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@amcharts/amcharts4": "^4.10.23", "@amcharts/amcharts4": "^4.10.23",
{ {
"name": "castopod-host", "name": "castopod-host",
"version": "1.0.0-alpha.80", "version": "1.0.0-beta.1",
"description": "Castopod Host is an open-source hosting platform made for podcasters who want engage and interact with their audience.", "description": "Castopod Host is an open-source hosting platform made for podcasters who want engage and interact with their audience.",
"private": true, "private": true,
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment