]> BookStack Code Mirror - website/blob - content/blog/bookstack-release-v23-02.md
Update filesystem-permissions.md
[website] / content / blog / bookstack-release-v23-02.md
1 +++
2 categories = ["Releases"]
3 tags = ["Releases"]
4 title = "BookStack Release v23.02"
5 date = 2023-02-26T11:00:00Z
6 author = "Dan Brown"
7 image = "/images/blog-cover-images/cow-aj-wallace.jpg"
8 slug = "bookstack-release-v23-02"
9 draft = false
10 +++
11
12 BookStack v23.02 is here, acting primarily as a maintenance release to
13 upgrade the underlying framework while optimizing things and making
14 a few other additions.
15
16 * [Update instructions](https://www.bookstackapp.com/docs/admin/updates)
17 * [GitHub release page](https://github.com/BookStackApp/BookStack/releases/tag/v23.02)
18
19 **Upgrade Notices**
20
21 - **PHP Version Requirement Change** - The minimum supported PHP version has changed from PHP 7.4 to PHP 8.0.2 in this release. Please see the [v23.02 version-specific update instructions](/docs/admin/updates/#updating-to-v2302-or-higher) for guidance on updating PHP. 
22 - **Logical Theme System Event Change** - The `commonmark_environment_configure` event argument and return types have changed. Please [see the event definition](https://github.com/BookStackApp/BookStack/blob/b88b1bef2c0cf74627c5122b656dfabc2d5f23ee/app/Theming/ThemeEvents.php#L63-L71) to understand the new types if using this logical theme system event.
23
24 {{<yt pn9GnHWyQ_g>}}
25
26 ### Framework Update
27
28 The main task of this release was to upgrade the core framework of BookStack
29 from Laravel 8 to Laravel 9, allowing us to keep on supported libraries.
30 While not providing any user-visible features, this provides some benefits
31 on the development side of things while bumping the minimum PHP version
32 supported to PHP 8.0.2, providing us new language features to play with.
33
34 ### Roles API Endpoints
35
36 This release extends the REST API with some new endpoints for roles.
37 This adds list, create, read, update & delete endpoints allowing 
38 integration and automation of role management where desired, working
39 in support with the existing user API endpoints.
40
41 ![List of REST api endpoints from the BookStack REST API docs](/images/2023/02/rest-api-endpoints.png)
42
43
44 ### Shelf Book Sort Enhancements
45
46 The shelf edit view has received more attention to generally improve
47 the user experience of managing books on the shelf, with the primary
48 aim of making the interface usable via keyboard & screen-reader, 
49 much like the book sort additions in the last release.
50
51 ![Shelf edit view showing book sorting actions](/images/2023/02/shelves-edit-form-books-sort.png)
52
53 Also added to the view is a new dropdown menu containing quick
54 sort actions so you can quickly sort by common categories such
55 as name, created date or updated date, without needing to drag 
56 & reorder each item manually.
57
58 ### Sendmail Command Configuration
59
60 We've always supported the sending of email via `sendmail` where
61 preferred, but the exact command used has been hardcoded
62 to `/usr/sbin/sendmail -bs`. In some environments a different command
63 could be desired, so this can now be configured like so:
64
65 ```bash
66 MAIL_SENDMAIL_COMMAND="/my/path/to/sendmail -bs"
67 ```
68
69 [Sendmail configuration documentation](/docs/admin/email-webhooks/#sendmail).
70
71 ### System Performance Improvements
72
73 Attention has been put on performance in a few key areas 
74 where things were reported to be slow or inefficient in certain scenarios:
75
76 - Saving page content, especially on first save with a lot of content, 
77   can now be much faster as some inefficiencies in how some parsing operations
78   have been addressed.
79 - Significantly increasing WYSIWYG page editor lag, when page length increases,
80   has been significantly reduced.
81 - App setting loading is now done in batch to reduce latency caused 
82   previously by per-setting-cache usage.
83 - An extra index has been added to the `pages` table to improve loading of
84   recently updated pages.
85
86 Overall, these changes should help to keep the system feeling fast and responsive.
87
88 ### Improved Favicon Handling
89
90 In the last feature release we introduced the ability to set an app icon
91 and, while this was used in the vast majority of scenarios, there
92 could be certain edge-cases you'd still see the default BookStack favicon.
93
94 To help with this, BookStack will now also generate a `favicon.ico` file
95 (if file permissions allow) using your custom supplied icon file.
96
97 ![Preview of a cat image used as a custom tab icon image](/images/2023/02/favicon-preview.png)
98
99 ### Translations
100
101 Once again a big thanks to our brilliant translators that help keep
102 the language text of BookStack up-to-date. All those listed
103 below have contributed translations since the last feature release:
104
105 - Ole Aldric (Swoy) - *Norwegian Bokmal*
106 - VIET NAM VPS (vietnamvps) - *Vietnamese*
107 - Eduardo Castanho (EduardoCastanho) - *Portuguese*
108 - toras9000 - *Japanese*
109 - scureza - *Italian*
110 - Statium - *Russian*
111 - 10935336 - *Chinese Simplified*
112 - sdhadi - *Persian*
113 - Indrek Haav (IndrekHaav) - *Estonian*
114 - Jan Mitrof (jan.kachlik) - *Czech*
115 - pathab - *German*
116 - m0uch0 - *Spanish*
117 - Éric Gaspar (erga) - *French*
118 - Gábor Marton (dodver) - *Hungarian*
119 - MichelSchoon85 - *Dutch*
120 - Andrii Bodnar (andrii-bodnar) - *Ukrainian*
121
122
123 ### Customization Hacks
124
125 Although not part of this release, during the last month I deployed the new [/hacks](/hacks) part of the site
126 where you can find different kinds of unsupported customizations that can be applied to BookStack.
127
128 You can [find more information in this blogpost](/blog/hacks-on-the-site/).
129
130 ### LinuxServer Docker Guide & YouTube Monetization
131
132 Another thing I've worked on in the past month is a video guide to common management operations
133 when running BookStack in a docker based setup using a [linuxserver.io docker container](https://docs.linuxserver.io/images/docker-bookstack) setup. This covers updating, backing-up, restoring, running comments and other bits.
134 I've been wanting to make this for a while since I'm often supporting users that have this setup so now I'll 
135 be able to point to the video to save time in writing out detailed guidance.
136
137 {{<yt 6A8hLuQTkKQ>}}
138
139 Also on the YouTube side of things, I've now met the threshold to become a "YouTube Partner" so I can now
140 earn from my videos, which I've enabled to act as an additional (yet minimal) passive income avenue
141 to support work on BookStack. This looks like it'd maybe provide about £20 per month right now, but every little helps
142 and this should slowly increase as the channel gets more subscribers.
143 I have only enabled skippable ads though to keep interruption minimal.
144
145 ### Next Steps
146
147 The roles API addition in this release was a bit of a prerequisite for
148 adding permission API endpoints, so I'll likely look to spend some
149 time further fleshing out the API.
150
151 I'd also like to spend some time making the install & update process
152 streamlined with some scripts, which I've wanted to do for a while 
153 but have been split between approaches, but I think it's time to
154 just proceed with a pragmatic approach.
155
156 At a higher level, I need to start thinking about what the next
157 major feature will be on our roadmap, so may begin some 
158 implementation proposal discussions.
159
160
161 ### Full List of Changes
162
163 **Released in v23.02**
164
165 * Added user roles API endpoints. ([#4051](https://github.com/BookStackApp/BookStack/pull/4051), [#4034](https://github.com/BookStackApp/BookStack/issues/4034))
166 * Added configuration option for the sendmail command. ([#4001](https://github.com/BookStackApp/BookStack/issues/4001))
167 * Added sort actions and accessible controls to the shelf book management interface. ([#4049](https://github.com/BookStackApp/BookStack/pull/4049), [#4031](https://github.com/BookStackApp/BookStack/issues/4031), [#2050](https://github.com/BookStackApp/BookStack/issues/2050))
168 * Updated framework to Laravel 9. ([#4021](https://github.com/BookStackApp/BookStack/pull/4021), [#3123](https://github.com/BookStackApp/BookStack/issues/3123))
169 * Updated project minimum supported PHP version from 7.4 to 8.0.2. ([#4029](https://github.com/BookStackApp/BookStack/issues/4029))
170 * Updated the URL length limit for link attachments to 2k characters. ([#4044](https://github.com/BookStackApp/BookStack/issues/4044))
171 * Updated app icon handling to generate favicon.ico file where possible. ([#4032](https://github.com/BookStackApp/BookStack/pull/4032))
172 * Updated setting loading to be more efficient. ([#4062](https://github.com/BookStackApp/BookStack/pull/4062))
173 * Updated test handling with cleaner centralized filed/image handling. ([#3995](https://github.com/BookStackApp/BookStack/issues/3995))
174 * Updated translations with latest Crowdin changes. ([#4025](https://github.com/BookStackApp/BookStack/pull/4025))
175 * Fixed issue where uploaded images would not show in the gallery for draft pages. ([#4028](https://github.com/BookStackApp/BookStack/issues/4028))
176 * Fixed issue with increasing WYSIWYG editor lag as pages grow. ([#3981](https://github.com/BookStackApp/BookStack/issues/3981))
177 * Fixed potential pluralization issues in some languages. ([#4040](https://github.com/BookStackApp/BookStack/issues/4040))
178 * Fixed slow response time when saving page due to URL parsing and handling. ([#3932](https://github.com/BookStackApp/BookStack/issues/3932))
179
180 **Released in v23.01.1**
181
182 * Updated pdf library to address vulnerability. ([#4010](https://github.com/BookStackApp/BookStack/pull/4010))
183 * Updated translations with latest Crowdin changes. ([#4008](https://github.com/BookStackApp/BookStack/pull/4008))
184 * Fixed missing default 180px icon. ([#4006](https://github.com/BookStackApp/BookStack/issues/4006))
185
186 ----
187
188 <span style="font-size: 0.8em;opacity:0.9;">Header Image Credits: <span>Photo by <a href="https://unsplash.com/@alejandrowallace?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">AJ Wallace</a> on <a href="https://unsplash.com/photos/1H64_-WVjWs?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a></span></span>