Releases: blogify-dev/blogify
v0.3.0
Announcing the release of blogify v0.3.0
Additions
- New feature - Push server
- Allows for sending of (currently basic) notifications and live-update messages
- Currently implemented for getting new comments instantly without refreshing and for basic notifications
EventEmitter
,EventSource
,EventTarget
- New feature - Listings
- Allows paginating through resources with (currently basic) filters and page support
- New feature - Pinned articles
- Always appear on top of article listings
- New feature - Comment likes
- New feature - User biographies
- New feature - Ability to make users administrators from the webapp
Changes
- Comments now record a
createdAt
property - Update to Angular 9
- Update to Ktor 1.3.2
- Update to Kotlin 1.3.72
- BREAKING -
getMatching()
has been removed ; please usequeryListing()
orgetOneMatching()
- BREAKING - every pipeline handler / function MUST use
RequestContext
; every default pipeline has been moved to use it - BREAKING -
service()
has been removed ; please userepository()
with aRequestContext
orApplicationContext
instead
Improvements
- All reflection utilities now work on
Mapped
instead of onlyResource
- Code cleanups
- Major UI improvements
- Reworked light theme
- Redesign of
new-article
andupdate-article
- Redesign of
single-comment
- Improvements to
show-article
andsingle-article-box
- UI theme preference now sticks across visits
- Major build performance improvements
- More unit tests
Fixes
update()
now works properly- "Keep me logged in" is now respected
v0.2.0
Announcing the release of blogify v0.2.0
Additions
- New feature - HTTPS support
- New feature - Article likes
- New feature - Follow users
- New feature - User cover picture
- New feature - Computed properties on
Resource
models - New feature - Automatic update of
Resource
objects usingpropMap
- New feature - Configuration files
Changes
-
User profile - Display
@<username>
next to name -
Article box display - Redesign
-
BREAKING - uploadable files are now uploaded via
/api/<resource class...>/upload/{uuid}?target={property}
-
BREAKING - /api/article/{uuid}/commentCount has been deprecated in favor of the
commentCount
computed property inArticle
-
BREAKING - database handlers like
fetchWithIdFromTable
have been removed in favor of a direct implementation inService
-
Search index documents are now automatically generated form Resource model classes, and can be delegated to properties of their return type if the latter isn't compatible
-
Bumped the version of several dependencies, resulting in significant performance improvements
Improvements
- Major UI Improvements
- Optimizations have been made to the core fetch/update engine and support for batch computing of immediately-computed properties has been added, resulting in 2x-3x performance improvements
- The core fetch/update engine is however to be completely rewritten in a future version
- Code improvements
- Pipelines: added pipeline utility functions, like
optionalParam
,fetchResource
andfetchResources
which allows building pipelines to be easier - Built-in pipelines: refactored to use utility functions, cleaned up and removed need to specify many functions at call site
- Pipelines: added pipeline utility functions, like
v0.1.1
v0.1.0
Additions
- Search
- Article Search
- User Search - Only on backend
- Form validation
- Comment count
- Markdown in comments
Improvements
- Auth on frontend
- UI improvements
- Backend fixes for static content
- Better frontend routes
- Article update actually works
- Fix security vulnerabilities
Experimental pre-release PRX4
This pre-release of blogify-core includes:
Additions
- Static content
- Users can now have profile picture
- Markdown formatting
- Article content can now be formatted
- Persistence of user login
- Endpoint for getting articles for user by username
/api/articles/forUser/{username}
returns articles created byusername
- Endpoint for getting user by username
/api/users/byUsername/{username}
returns user with username:username
- Logout is now a thing
Improvements
- Major UI Improvements
- Code improvements
- User authentication works properly
Removals
- Endpoint for create user (POST
/api/users
) is removed. Use register (POST/api/auth/register
) instead
Experimental pre-release PRX3
This experimental pre-release of blogify-core includes the following changes :
Additions
- Profile page now displays articles created by the user
- Comments are now shown and can be created on article page
- Resource slicer introduced : allows calls to resource endpoints to choose which fields they need using
?fields=<...>
- This in turn reduces the number of subobjects necessary :
Articles.Content
andUser.PersonalInformation
are no longer needed
- This in turn reduces the number of subobjects necessary :
/api/articles/forUser/<uuid>
: get all articles created by a certain user/api/comments/tree/<uuid>?depth=n
: get a tree of comments from the root comment provided via UUID. Depth can be configured with the relevant query parameter.
Improvements
- Major UI improvements
- Major improvements to caching and query optimization : improves backend performance significantly
- Call caching: resources fetched during a call are cached for the duration of the call, to avoid re-fetching them later in the same call
- This means that almost every Service method can now take a
callContext: ApplicationCall
object on which it can do a cache lookup. If it is impossible to pass in acallContext
, omitting the parameter uses theFakeApplicationCall
object which disables caching.
- This means that almost every Service method can now take a
- Call caching: resources fetched during a call are cached for the duration of the call, to avoid re-fetching them later in the same call
- Improved documentation for various methods and classes/objects
Breaking changes
/api/articles/content
and/api/users/info
are no longer supported. They should be replaced by a call to the root endpoint with a?fields=<...>
query parameter instead, as the properties they held are now held on the main object.
Internal
- Call handlers/wrappers now take an optional
authPredicate
parameter : this now has to be used instead of wrapping the whole call insideauthenticatedBy { ... }
- Some of those predicate parameters can now take functions that can also take a resource of the appropriate type as a parameter: this allows the predicate to verify data inside of the resource to do it's authentication
Experimental pre-release PRX2
This experimental pre-release of blogify-core includes the following changes :
Additions
- Major work on front end
- Front end SPA is now integrated and served by the Ktor server
- Authentication predicates
- Article categories
- User personal information in a separate class
- Many more ...
Fixes
- Various fixes
Experimental pre-release PRX1
This experimental pre-release of blogify-core includes the following changes :
- Basic authentication working