#  15th - 25th May - 2025 — Various changes
## [build 152](https://github.com/nbarrett/ngx-ramblers/actions/runs/15009344257)
### 2025-05-15 
- Fixed image source on send notification
### 2025-05-17
 - Provide better real-time feedback during walks upload:   
- This change was inspired by response to Serenity JS conversation [Alternative implementation of the ConsoleReporter #2797](https://github.com/orgs/serenity-js/discussions/2797#discussioncomment-13148635)  
-  StageCrewMember DomainEventPublisher created to publish a DomainEventDataWithFinished via websocket when a InteractionFinished, TaskFinished, TestSuiteFinished, SceneParametersDetected event is notified   
- Bumped tsconfig script compiler target to be es2021 or later as serenity-js code now brought into compile scope as part of this change
- Refinements to the upload audits and timing - Fixed a few imports to be ESM
### 2025-06-14 
  - Migration of Walk and SocialEvent to ExtendedGroupEvent   
  - Simplifies event management where local and Ramblers data need to be managed in conjunction with each other. The internal NGX-Ramblers data model for walks and social events is now standardised to follow the schema for Ramblers Walks and Events API, with any additional fields stored in ExtendedFields schema.   
  - Due to increased validation in times and date input, timepickers have now been added to walk and social event edits. End time rounded to nearest 15 mins   
- Distance can now be entered in miles or km   
- Ascent can now be entered in feet or metres
### 2025-06-19 to 21
- Fixes to social event notification send and event creation and Fix to ramblers event matching to ensure links updated
### 2025-06-24 
###### Completed [#10 SEO-friendly walk links](https://github.com/nbarrett/ngx-ramblers/issues/10) and [#9 Update page title for walk view](https://github.com/nbarrett/ngx-ramblers/pull/9) 
- SEO-friendly slug (e.g. kebab-case conversion of event title) is now used as primary mechanism for querying and rendering single events. 
- Walk and social event routing changed initially perform page content lookup for the slug and then fallback to event lookup using url. 
- All website and email links now use seo-friendly links 
- Legacy ids (Ramblers or Mongo) still work for backward compatibility purposes. 
- If an event cannot be found for a slug, an event not found alert is displayed as per dynamic content lookup failure. 
- For sites that have Walk Population/Social Event Population as Walks Manager, query performance is temporarily reduced as there is no Ramblers provided API available for querying by slug (as per their own website). As a workaround, the NGX-Ramblers server has to do a full historic lookup of all events and match by slug. Performance will be resolved once https://github.com/nbarrett/ngx-ramblers/issues/34 has been implemented 
- For sites that have Walk Population/Social Event Population as Local, the url will be the date up until publishing to Ramblers occurs, then the ramblers url is used.
- Fix server-side lodash imports 
- Turned off EventDispatchService logging
- Set contact subject by optional query parameter
###### Completed [#36 Enhance deployment workflows](https://github.com/nbarrett/ngx-ramblers/issues/36) 
- allow each environment to be a different stage 
- permit retry from a failed stage 
- only push latest docker tag to the registry if the branch is main 
- Log in to Docker Hub using docker/login-action@v3docker login 
- Support a run-time parameter for the build number but default to latest
#### Screenshot is below with [link to actual deployment](https://github.com/nbarrett/ngx-ramblers/actions/runs/18925582625):

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/a5d9cfba-3acd-4ffb-96cf-21f1068aa3dc.jpeg)


### 2025-06-25 
  - further changes to read configs from configs.json when all is selected 
  - added readme documentation for deploy-to-environments.yml