All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
project_name_editable
attribute to web component (#1009)
- Remove unused
/embedded/projects/:identifier
route (#1013)
- Remove unused
REACT_APP_LOGIN_ENABLED
env var (#1006) - Fix infinite remix loop when
BYPASS_AUTH
set ineditor-api
(#1007) - Fixes for docker-compose.yml (#1008)
- Fix deprecation warnings in GitHub Actions (#1011)
0.23.0 - 2024-05-09
- Support to enable embedding iframes in HTML projects from in-house domains (#985)
- Dispatch event when project identifier changes, e.g. after project is remixed (#2830)
- Add
load_remix_disabled
attribute to web component (#992)
- Invalidate cached project when project is remixed (#1003)
- Unit tests for
pyodide
runner (#976) - Remove broken
format
script (#991)
0.22.2 - 2024-03-18
- Ability to use
page
query parameter in the embedded viewer when not a browser preview (#958) - ASSETS_URL env var to allow assets to be served from R2 bucket
webpackDevServer
allowed headers for Astro Pi (#967)- Tests for the
PyodideWorker
(#981)
- Make the save prompt in web component optional, defaulting to not showing (#965)
- Page crashing when toggling between projects (#946)
- Get
pyodide
working in the web component (#945) - Allow
pygal
chart.add
function to take single values as well as an array (#954) - Editor losing focus when project changes (#959)
- Fix preview link (#912)
- Web component code attribute (#963)
- Web component dark mode (#964)
- Fix substring match on CSS images (#910)
- Error message wrapping (#968)
- Fix scrollbars not showing (#816)
- Width of empty
p5
canvas (#969) - Scrolling
pygal
output inpyodide
(#969) - Light/dark mode theming updates (#972)
0.22.1 - 2024-02-23
- HTMLRunner images - add crossorigin attribute to iframe imgs (#927)
- Fix HTML indentation (#928)
- Pyodide input function (#935)
- Loading imports from multiple files with
pyodide
(#941)
0.22.0 - 2024-02-22
- Add a Pyodide runner (#893)
- Made
p5
canvas responsive to the available space (#887) - Specify the 'roles' scope in OAuth requests
- Local docker setup with yarn v3 (#905)
- Part of Stylelint issues: duplicates, logical properties (#916)
- Text output wrapping on Firefox (#922)
0.21.2 - 2024-01-23
- Minor copy changes to HTML add file modal
- Toggle errors sent via apiCallHandler off (#890)
- Upgrade webpack-dev-server to 4.0.0 to support conditional headers
- Upgrade yarn to 3.4.1 to workaround a string-width issue
- Improved file structure as part of the linter update (#926)
- Add a ?pyodide=true flag for python project pages
- Editor input not focussing on iPad (#898)
- Sidebar selected option styling (#886)
0.21.1 - 2024-01-11
- Download panel save button (#872)
- Stack editor input and output panels based on container width (#869)
- Blob/URL replacement in HTMLRunner (#877)
- Boolean web component attributes (#881)
- Wrap the project bar when sidebar is wide (#869)
- Web component project bar state update delay (#869)
- Left border of the project bar (#869)
- Indentation of code block first line (#883)
- Code block 3-digit line numbers (#883)
0.21.0 - 2024-01-05
- Load remix functionality (#804)
- ProjectBar functionality in the web component (#799)
- WebComponent can receive style strings from host app (#811)
- Quiz rendering in InstructionsPanel (#777)
- Styling for the task section of the instructions (#781)
- Styling for the instructions callouts (#788)
- Output styles for Instructions (#790, #807)
- Styling for the instructions code snippets (#795)
- Styling for the instructions code blocks (#794, #808)
- quizReady custom event (#812)
- Code snippet and code block syntax highlighting for HTML and CSS in the instructions (#824)
- Toast save reminder to web component (#822)
- ProgressBar and completion-handling on quizzes (#834)
- Support for multiple host styles in the web component (#863)
- Untangle HTML runner (#876)
- Project sidebar mobile structure and default to instructions behaviour (#823)
- Auth web component from user in local storage (#852)
- Save and download panel copy (#784)
- Application of styles in the web component to remove
sass-to-string
(#788) - Info panel links open in a new tab (#803)
- Copy updates (#803)
- Restyling the instructions progress bar (#808)
- Standalone editor height (#864)
- Web component height on Firefox (#838)
- Web component resizable handle errors & sidebar width (#806)
- HTML projects loading in web component (#789)
- Enabled modals in the web component (#802)
- Context menu styling in the web component (#819)
- Collect web component login data (#818)
- Syntax highlighting contrast in dark mode (#824)
- Secondary button theming (#827)
- Instructions step buttons hit area (#827)
- Instructions code block line highlighting (#827)
- Instructions image widths (#827)
- Save status spacing (#827)
- Disappearing borders on tablet (#827)
- Dark mode button theming (#850)
<strong>
styling on Firefox (#854)- Progress bar width on Firefox (#855)
- Instructions blocks spacing (#856)
- Font family stacking (#857)
- Save/download panel spacing (#859)
- Instructions output wrapping in Firefox (#862)
- Instructions code blocks with no line numbers (#863)
- New file button width (#865)
0.20.0 - 2023-11-24
- Logical properties linter rule (#770)
- Added download panel for sidebar (#744)
- Javascript support for HTML projects (#748)
- DownloadPanel for sidebar (#744)
- Custom events for Log In and Sign Up from DownloadPanel (#744)
- SVGO config file (#720)
- Added ability to enable sidebar in web component (#738)
- Added ability to customise sidebar options (#738)
- Instructions Panel for the sidebar (#751, #768)
- Added ability to fix the theme in the web component (#757)
- Added ability to increase font size in the web component (#757)
- Instructions table styling (#858)
- Web component theming (#766)
- Replace physical properties with logical values - padding (#774)
- Sidebar - Refactored styles to be closer to designs (#720)
- Sidebar - Refactored theming to fix inconsistencies between themes (#720)
- Sidebar - Added hover styles to collapse and close buttons (#720)
- Sidebar - Option/Tab style (#720)
- Stopped SVGO from removing icon (svg) viewBoxes (#720)
- Move local development port to avoid projects-ui clash (#736)
- Update design-system-react dependency to publicly available version
- Storybook SVG loader added and store configured (#749)
- Switched
FontSizeSelector
andThemeToggle
over to using the newSelectButtons
(#757) - Download panel removes log-in prompts for logged-in users (#744)
- Correct download.svg replaces DownloadIcon component (#793)
- Container rather than media query breakpoints for the web component (#776)
FileMenu
alignment (#720)- Edit icon not showing in ContextMenu (#720)
- Updated sidebar and file icons to correct size (#720)
- Local docker setup for development (#739)
- Editor height overflow (#771, #779)
0.19.4 - 2023-11-08
- Added p5 library that can access WebComponent shadowRoot (#731)
- Allow external rpf.io links (#729)
0.19.3 - 2023-10-25
stepChanged
custom event for the web component (#709)- Web component tests (#709, #710)
instructions
attribute for the web component (#712)- Instructions slice to store data passed from the Projects site (#712)
- Adding auth to the web component (#728)
- Allow web component to load, save and remix projects (#728)
- Replace physical properties with logical values - margin (#717)
- Replace physical properties with logical values - position (#699)
- Moved web component custom events from the
editor-wc
element to thedocument
(#710) - Renamed web component custom events to be prefixed with
editor-
(#710) - Switch props of
WebComponentLoader
fromsnake_case
tocamelCase
(#712)
- Clipped icon in "Save your work" toast (#707)
- Hydra logout flow to delete session (#714)
0.19.2 - 2023-10-12
- TIDY UP: Improve component structure (#692)
- TIDY UP: Naming convention (#688)
- Style scaling to support integration into products with difffernt... (#687)
- Boosting Performance: React.js Code Optimizations (#686)
- Fix useEffect web component warnings (#674)
0.19.1 - 2023-10-04
- Performance enhancements on app routes & sense hat transitions (#686)
- Web component styling (#687)
- Convert React components to JSX files (#688)
- Moved
svg
s to/src/assets/icons
(#692) - Moved
scss
files to/src/stylesheets
(#692) - Moved slices and reducers to
/src/redux
(#692) - Moved loaders to
/src/containers
(#692)
- Min-height on Sense HAT model to fix tablet-view (#658)
- Tidied up stylesheets (#684)
0.19.0 - 2023-09-25
- Mobile project details component (#616)
- Mobile navigation between code and output (#615)
- Position of run button on mobile (#615)
- Save button styles (#633)
- Tweak tab colors (#634)
- Dyanmic viewport height (#627)
- Split and tabbed view button styles (#645)
- Restyled tabs (#650)
- Mobile sidebar fixes (#644)
- Sidebar scroll behaviour (#631, #662)
- Fix docker build (#643)
- Fix mobile projects page scrolling (#662)
- Fix "Your projects" button on review apps (#666)
- Code continues to run when mobile sidebar opened (#667)
0.18.2 - 2023-08-29
- Error capturing for python project fires to editor-api rather than Sentry (#625)
0.18.1 - 2023-08-03
- Fix list of the projects (#614)
- Plausible goals for starting, downloading and interacting with a project (#606)
0.18.0 - 2023-08-02
- Sidebar settings (#585)
- Sidebar info (#566)
- Add Projects Panel to sidebar (#564)
- Minor fixes to the sidebar layout (#602)
- Fixed text wrap in the files section of the Sidebar (#596)
- LandingPage and ProjectBar's Save buttons use design-system-react (#579)
- Update colors for buttons (#579)
0.17.1 - 2023-07-25
- Safari minor style fixes
0.17.0 - 2023-07-24
- New landing page (#531)
- Ability to specify project name and type on creation (#519)
- Ability to view HTML preview output in separate window (#536)
hex
attribute forp5
Color
class (#574)hex_color
function forpy5
, including imported mode (#574)- New landing page (#531)
- Ability to specify project name and type on creation (#519)
- Ability to view HTML preview output in separate window (#536)
- Refactored
Header
into newProjectBar
component and moved to same level as sidebar (#532) Sidebar
restyling and refactor to better support multiple panels (#501)- Refactored and restyled project files panel and removed project images (#501)
- Moved project images into own sidebar panel (#567)
- Fix to close
Add File
modal whenEnter
is pressed and file is valid (#509) - Move eslint config to
.eslintrc.json
with prettier support (#502) - Add
.editorconfig
(#502) - Default HTML project improvement (#543)
- Update Beta Banner copy and add a link (#550)
- Refactored
Header
into newProjectBar
component and moved to same level as sidebar (#532) Sidebar
restyling and refactor to better support multiple panels (#501)- Refactored and restyled project files panel and removed project images (#501)
- Moved project images into own sidebar panel (#567)
- Fix to close
Add File
modal whenEnter
is pressed and file is valid (#509) - Move eslint config to
.eslintrc.json
with prettier support (#502) - Add
.editorconfig
(#502) - Default HTML project improvement (#543)
- Update Beta Banner copy and add a link (#550)
- HTML/CSS minor fixes (#594)
- Color class attributes in
p5
(#574) - Make
py5
imported mode sketches run whenrun_sketch
is commented out (#574) - Allow output text to be scrollable if overflow-y (#575)
- No longer renders a blank page on 401, 403 & 404 for embedded viewer (#534)
- Input modal help text styling in light mode (#519)
- Propagation of key press events in modals (#519)
- Keyboard accessibility of project file opening (#501)
- Quick fix for Editor header on mobile # (#551)
- Landing page design review comments (#560)
- Update Beta Banner copy and add a link (#550)
- Move eslint config to
.eslintrc.json
with prettier support (#502) - Add
.editorconfig
(#502) - Default HTML project improvement (#543)
0.16.1 - 2023-05-19
- Sentry CORS errors (#523)
0.16.0 - 2023-05-18
- New colors (#474)
- New typography (#475, #513)
- Ability to create
HTML
andCSS
files in aHTML
project (#478) - Help text in the new file modal (#478)
- Add dev-container support (#489)
- Add input/output responsiveness (#473)
- Ability to drag and drop input panel tabs (#438)
- Distinguish icon type (#470)
- Custom callback when Enter pressed in modals (#491)
GeneralModal
andInputModal
to encapsulate the common modal behaviour (#491, #517)
- Updated spacing variables to match the new design system (#460)
- Position run button in separate bar (#471)
- Color usage (#474)
- Handling of internal/external links for HTML/CSS projects (#483)
- Existing modals to use
GeneralModal
orInputModal
(#491) - Refactored login logic to make this available outside of the login button (#491)
- Turned off HTML autorun (#515)
- Modal button alignment support (#460)
- Storybook setup and dev deployment (#461)
- HTML auto-run functionality (#481)
- Updating Sentry to fix compile-time error (#487)
- Fix local package build process (#488)
- Color naming convention (#474)
- Fix Web App Manifest logos, colors, and titles (#446)
- Ability to run HTML projects by clicking run button (#481)
- Internal/external HTML project links (#521)
0.15.0 - 2023-04-27
- Initial storybook setup (#440)
NewFileModal
component (#450)- Autofocus input when modal opened (#450)
- Submit form in modals when 'Enter' pressed (#450)
- Projects tab layout (#447)
- Refactored
NewComponentButton
(#450) - Modal styling (#450)
- Fix storybook build error (#484)
- CookieBot consent request in iframes (#437)
- Resetting name error if file creation/renaming is cancelled (#450)
- Mission Zero performance gains (#457)
0.15.0 - 2023-04-13
- Container queries (#445)
- Resize handle #453
- File type icons (#449)
0.14.0 - 2023-03-28
- Load project based on locale (#410, #425)
- Ability to recognise py5 magic comment (#412)
- Allow py5 imported mode not to need
run_sketch
(#417) - Python blob and skulpt module for py5 imported mode (#414)
- Cypress tests for
py5
imported mode (#412, #414, #417, #426)
- Updated privacy policy link to use the child friendly privacy policy (#397)
- Update URL structure to include locale (#407)
- Update Sentry configuration to allow distributed tracing (#411)
- Only persist project to
localStorage
if changed rather than on load (#410) - Allow u13s accounts with additional parameters in userManager (#436)
- Fix language loading - i18n initialisation setup (#430)
- Fix keyboard navigation (#375)
- Reverted footer links back to underlined (#398)
- Dependency on Sauce Design System (#418)
0.13.0 - 2023-03-02
- Added release notes to
README.md
(#354) - Pagination on 'Your projects' page (#338)
- Switched
processing
implementation fromp5.py
topy5.py
(#364) - Font size only scales code, text output and error messages rather than the whole UI (#365)
- Refactored font size settings to use React
ContextProvider
(#366) - Clicking 'login to save' triggers save/remix after successful login (#368)
- Renaming project, adding new file or renaming file triggers autosave immediately (#368)
- Bump http-cache-semantics from 4.1.0 to 4.1.1 (#361)
- Removed redundant file indices (#377)
- Use GraphQL API to fetch project index page (#376)
- Make sure accessDeniedData login button redirects to /projects (#356)
- Allowed HTML projects to load (#362)
- Scrollbar flash on first load (#358)
- Scrollbar appearing in visual output (#358)
- Sense hat visual output height (#358)
- Web component font size (#358)
- Web component icon visibility (#358)
- Renaming project, adding new file or renaming file always triggers autosave (#368)
- Use
HtmlRunner
forhtml
projects (#378) - Accessibility Fixes (#373, #382, #383)
- Hide the codemirror
cm-widgetBuffer
(#384, #395) - Height discrepancy of the tab containers (#385)
0.12.0 - 2023-01-27
- Simplified the URL structure to replace project type (#347)
- Upgrade
react-router
tov6
- Bump json5 from 1.0.1 to 1.0.2 (#321)
- Show
p5
error messages in the user interface (#346) - Get review apps working (#351)
0.11.0 - 2023-01-17
- Styling of the projects list (#317)
- Ability to collapse and expand the left hand file pane (#316)
- Plausible event tracking for left hand file pane (#325)
- Last updated field added to the projects table (#319)
- Message for empty state on projects (#327)
- Rename project action on project index page (#324)
- Context menu for project index page actions on mobile (#324)
- Danger button styling (#330)
- Change port number to fix 'no consent token' error (#326)
- Long file names truncated rather than scrolling in left hand file pane (#316, #337)
- Tab scrollbars only appear when necessary (#331)
- Added merge=union gitattribute for this file (#339)
- Make sure button text is always centered (#328)
- Make theme and font size persist across all pages of the app (#329)
- Make dismissing the Beta banner persist across all pages of the app (#329)
- Touch area of icon-only buttons (#330, #336)
- Delete project action on project index page (#330)
- Refactored project list loading to allow loading states to be shown (#330)
- Removed unneeded scrollbars on the editor and output panels (#331)
- Make Your projects page background extend below the fold (#334)
0.10.0 - 2023-01-06
- Plausbile event tracking for login, remix, save and code run (#250)
- Message prompting users to login or save if they make non-autosaved changes (#291)
- Unit tests for the autosave trigger (#291)
- Project not found and access denied modals shown on project loading error (#298)
- Styling for small buttons (#303)
- Project page header and styling (#314)
- Ability to open and focus files from the left hand file pane (#301)
- Ability to close file tabs (#301)
- Validation to prevent file names containing spaces (#301)
- Bump terser from 4.8.0 to 4.8.1 (#143)
- Updated buttons and tabs styling (#296)
- Updated icons (#296)
- Bump engine.io from 6.2.0 to 6.2.1 (#272)
- Increased clickable area for tabs (#299)
- Bump decode-uri-component from 0.2.0 to 0.2.2 (#295)
- File tab bar scrolls rather than wraps (#301)
- Long file names no longer wrap in tab bar (#301)
- Moved
FileMenu
click handler toMenuItem
for better keyboard support (#300) - Touch target size on button to open file context menu (#301)
- Beta banner and modal (#266)
- Autosave icons and status (#268)
- Autosave project to database if user logged in and owns project (#270)
- Autosave project changes to local storage if user not logged in or does not own project (#270)
- Modal to prompt login or download if save button clicked when not logged in (#276)
- Ability to rename any project (#284)
- Refactor API thunks and save logic (#268)
- Removed file menu for
main.py
(#269) - Refactored project saving (#270), loading (#270) and remixing (#276) into redux asynchronous thunks
- Creates remix if save button clicked when logged-in user does not own project (#276)
- Send user access token with requests to load a project from the API (#280)
- Redirect users to the home page when they log out (#280)
- Trigger project reloading when the user changes (#280)
- Removed remix functionality from project name (#284)
- Flow for renaming the project (#284)
- Updated icons (#285, #294)
- Updated colours to match new palette (#294)
- Contrast on file menu hover in dark mode (#269)
- Stylelint errors (#269)
- Copy changes (#269)
- Copyright and contributing documentation (#207)
- Errors when running code now include the name of the file in which the error occurred (#239)
- Sentry integration (#252)
- Ability to download a project (#255)
- FileMenu dropdown (#139)
- Confimatory message when a project has been saved (#262)
- Switch wrapping in the editor to horizontal scrolling for long lines (#242)
- Replaced hard-coded text with translatable strings (#253)
- Launch rename modal via redux (#139)
- Allow users to save their code as anew project from the root page when logged in (#259)
- Stop users renaming
main.py
(#203) - Style fixes on the 'My Projects' page (#265)
- Remove project name, download and save buttons from the header on the 'My Projects' page and when project is still loading (#265)
- Set indentation to 4 spaces to match PEP8 standard (#246)
- Update Github workflow not to strip dots from the git ref, and remove test dependency for main and ref deploys (#244, #248)
- Github action for checking if changelog updated (#189)
- The web component
runCompleted
event now returnsduration: null
if the host page's tab loses focus during the code run (#192) - Global nav on editor site with link to
raspberrypi.org
and account menu (#195) - Footer on editor site with links to Privacy, Cookies, Accessibility and Safeguarding policies (#200)
- Cookie banner on the editor site (#206) but not in the embedded viewer (#231)
- Unit tests for login button and 'useProject' hook (#211)
- Script for Google Tag Manager to be used on the standalone editor site (#225)
- Ability to switch between split and tabbed output views on the editor site and in the web component (#234)
- Indentation markers in the editor (#237)
- Upgraded to Jest 29 (#211)
- Updated Editor site title and logo (#220)
- Updated Codemirror and related dependencies to their latest versions (#221)
- Update build process to strip non-alphanumeric characters from the branch name (#222)
- Styling of Astro Pi orientation reset button on editor site (#202)
- Updated text output font to display emojis correctly (#221)
- Functionality for renaming a file (#193)
- Styling for a secondary button (#193)
- Layout and spacing in the Mission Zero Control Panel so web component fits in a narrower container (#191)
- Updated modal styling (#193)
- Option to specify that the visual output tab should be present on page load via a query string, otherwise only the text output is present (#182)
- Automatically add and switch focus to the visual output tab when a visual library is imported during the code run (#182)
- Update styling of embedded player to stack the visual and text output (#182, #187)
- Update styling on the
sense_hat
visual output (#174) - Update build workflow with a reusable job to update preview, staging, and prod (#176)
- Change deployment to use specific AWS endpoint, and deploy releases to
/releases/...
and branches to/branches/..
(#177)
- Stop button contrast in dark mode (#182)
- Surfacing errors promptly when stopping
p5
code runs (#182) ESLint
(#175) andstylelint
(#178) errors
- Give the web component the option to enable the senseHAT on page load (#173)
- Add logo, and sidebar with menus (#167)
- Add a readColour param to the runComplete event. (#153)
- Add CORS headers to Webpack Dev Server (#152)
- Save a user's code when they log in (#142)
- Versioned deployments of the UI (#140)
- Fix up eslint linting errors (#175)
- Use nginx buildpack on heroku instead of nodejs (#156, #166)
- Use the
PUBLIC_URL
env var to set URLs for the various bundles, shims, replacingREACT_APP_S3_BUCKET
to allow assets to be served from sub directories in our S3 bucket. (#154) - Style of the editor pane #145
- Made "stopping" button only appear after 100ms timeout to stop it flashing (#172)
- Fix input span disabling in webcomponent (#172)
- Fix syntax highlight colours in codemirror 6 (#134)
- Mission Zero handover docs (#128)
- S3 deployment GH action
- Upgrade to CodeMirror 6 (#131, #133)
- Whitespace handling in Firefox (#132)
- Stopwatch hook so PythonRunner doesn't get stuck resetting timer (e7b747053)
- Events in Web Component indicating whether Mission Zero criteria have been met (#113)