Releases: gchq/Bailo
Releases · gchq/Bailo
v2.2.2
What's Changed
- Users can now be manually added to models without needing to be selected from the dropdown list.
- Authorisation checks have been added to all new users on the backend.
- We have added a migration script that will iterate over every model and run an authorisation check on all existing users, any users that fail this check will be removed from the model. You can find a list of these users in the
migrations
database by looking at the newmetadata
property.
Full Changelog: v2.2.1...v2.2.2
v2.2.1
What's Changed
- Implement the create card from template endpoint on the on the python client by @IR96334 in #1471
- ClamAV Helm config @GB27247 in #1511
- Improved styling on model export to improve handling of wide content by @ARADDCC002 in #1508
- Model cards can now be stored in S3 by @JR40159 in #1476
- Autobuild python docs by @GB27247 in #1477
- Add additional docker tag and push by @ARADDCC013 in #1515
- Add ability to hide schemas by @JR40159 in #1516
- Fix README installation code snippets by @a3957273 in #1524
- Fixed all pylance warnings in python client by @IR96334 in #1470
- Added a popover for av results on files by @ARADDCC002 in #1507
- Prevent access requests and model cards being created using hidden schemas by @JR40159 in #1523
- Added another authorisation check after updating model to make sure t… by @ARADDCC002 in #1531
- Added av scanning config to config map by @ARADDCC002 in #1532
- fix pvc and user by @ARADDCC013 in #1553
- Added a new endpoint for getting user permissions and added better UI handling of user permissions @ARADDCC012 in #1529
- Added a check for date widgets to stop it displaying todays date inco… by @ARADDCC002 in #1550
- Record who exports a model by @JR40159 in #1566
- Changed clickable area on model overview page ACTIONS button dropdown menu in #1567
- Added templating and access requests buttons to the new model create screen in #1563
- Fix python docs building on pages by @GB27247 in #1513
- Bump tsx from 4.16.5 to 4.19.1 in /backend by @dependabot in #1540
- Fix landing page by @JR40159 in #1572
- Fix overflow wrap on model card summary in #1571
- Python docs by @JR40159 in #1583
- Remove old information from README by @JR40159 in #1586
- Fix the AWS packages to a working version by @JR40159 in #1588
*Removal of legacyBehaviour from next.js links in #1573 - Fixed an issue where python docs were no longer working locally by @JR40159 in #1585
- Improve developer logging of requests by @a3957273 in #1394
- Fixed an issue whereby frontend node server was starting up on the wrong address by @ARADDCC002 in #1587
- File scanning connector to handle multiple AV tools by @ARADDCC002 in #1514
- Deleted access request no loger appear on the "your reviews" page by @PE39806 in #1591
- Implement permissions context by @ARADDCC002 in #1594
- Update build system to flit_core by @takluyver in #1592
- Split out the enabling of mirrored models into enabling import and export by @JR40159 in #1614
- ModelScan REST API by @PE39806 in #1612
- Replacec GitHub artifact v3 with v4 by @PE39806 in #1615
- Dockerise our ModelScan application by @PE39806 in #1621
- Updated backend test config by @ARADDCC012 in #1625
- Refactor release export to export releases artefacts as separate S3 uploads by @ARADDCC012 in #1617
- Correct typo in default config by @PE39806 in #1627
- Allow for auditing of new model cards during import by @ARADDCC012 in #1630
- Feature/bai 1459 create a new file scan connector for modelscan by @PE39806 in #1628
New Contributors
- @PE39806 made their first contribution in #1591
- @takluyver made their first contribution in #1592
Full Changelog: v2.2.0...v2.2.1
v2.2.0
Features
- When deleting a schema resources that are effected will be listed
- Node versions have been bumped up to
22.6.0
What's Changed
- Fix unstable swr array hooks by @GB27247 in #1462
- Bai 1157/list models delete schema by @GB27247 in #1463
- Add commentEditedAt prop to responses by @GB27247 in #1465
- resolved an issue with model updating# by @ARADDCC002 in #1464
- Updated review wording for new access requests and releases by @ARADDCC002 in #1467
- Fix node version in Docker images by @JR40159 in #1473
- Reverted change to model merging during update by @ARADDCC012 in #1474
- Reversed the list, equivalent to sorting by date ASC by @IR96334 in #1472
- added more zod validation for various end points by @ARADDCC002 in #1475
- added backend implementation for model templating by @ARADDCC002 in #1419
- Fix config by @JR40159 in #1479
- Fix config by @JR40159 in #1481
- Shallow copy of tokens array used by @IR96334 in #1480
- Change roles to include contributor by @GB27247 in #1469
- Add model card actions by @GB27247 in #1468
- Bump @types/node from 22.0.2 to 22.5.1 in /backend by @dependabot in #1491
- Bump husky from 9.1.4 to 9.1.5 by @dependabot in #1499
- Bump semver from 7.6.2 to 7.6.3 in /backend by @dependabot in #1495
- Bump axios from 1.7.2 to 1.7.7 in /frontend by @dependabot in #1503
- Bump @aws-sdk/client-cognito-identity-provider from 3.623.0 to 3.637.0 in /backend by @dependabot in #1493
- Bump @aws-sdk/client-s3 from 3.623.0 to 3.637.0 in /backend by @dependabot in #1494
- Bump @aws-sdk/lib-storage from 3.623.0 to 3.637.0 in /backend by @dependabot in #1490
- Bump @opentelemetry/sdk-metrics from 1.25.1 to 1.26.0 in /backend by @dependabot in #1497
- Bump @swc/core from 1.6.13 to 1.7.22 in /backend by @dependabot in #1498
- Bump lint-staged from 15.2.5 to 15.2.10 by @dependabot in #1505
- Bump @opentelemetry/auto-instrumentations-node from 0.49.1 to 0.50.0 in /backend by @dependabot in #1506
- Bump @opentelemetry/exporter-logs-otlp-proto from 0.52.1 to 0.53.0 in /backend by @dependabot in #1486
- Bump @opentelemetry/exporter-metrics-otlp-proto from 0.52.1 to 0.53.0 in /backend by @dependabot in #1485
Full Changelog: v2.1.1...v2.2.0
v2.1.1
Features
- Added a
getAdminToken
script to get an admin token to the registry - Tokens are now sourced through an endpoint
What's Changed
- Added a reaction selector for comments by @ARADDCC002 in #1340
- Added a select from template page by @ARADDCC002 in #1414
- Updated all of our actions to properly use the built in SWR isLoading property by @ARADDCC002 in #1421
- Updated email headers by @ARADDCC002 in #1420
- Added a checkbox widget for forms by @ARADDCC002 in #1422
- Added export to pdf functionality by @ARADDCC002 in #1416
- Added slide up transitions to all the current dialog modals. by @IR96334 in #1412
- Add initial HTML export capability by @a3957273 in #1334
- Bai 721 bailo GitHub pages docs no longer have a working logo by @IR96334 in #1417
- Aligned validation for creating and updating releases by @ARADDCC002 in #1451
- Added a subheading and copy button to the PageWithTabs component by @ARADDCC002 in #1450
- Added a review icon and count to release and access request displays by @ARADDCC002 in #1452
- Fix token generation bug by @GB27247 in #1456
- Improved response quoting by adding original commenter name and date by @ARADDCC002 in #1445
- Added getAdminToken script by @GB27247 in #1458
- Added announcement banner by @ARADDCC002 in #1424
- Display entry collaborators outside of the settings tab by @IR96334 in #1455
- Add metrics widget to form by @ARADDCC002 in #1454
- Replaced all of the buttons on the model overview read only screen with an "Actions" drop down button to help declutter the view by @IR96334 in #1457
- Map tokens to ui config by @GB27247 in #1332
Full Changelog: v2.1.0...v2.1.1
v2.1.0
Features
- Upgraded from Node 18 to Node 22.
- Added a standalone version of Bailo that runs all of Bailo in a single Docker container.
- Added utility to import Models from MLFlow via the Python Client.
- Added the ability to use attach IAM roles to containers when deploying to AWS.
- Update OpenTelemetry integration to include CPU and memory usage.
- Ensure that Bailo is compatible with registry version
3.0.0-alpha.1
, enabling the use of IAM roles when deploying the registry on AWS. - Comment and review responses have been restructured in the backend so that they can be more easily interacted with via the API; this has allowed for a much smoother integration with features such as reactions and editing responses.
- Added support for data cards.
- Added Advanced options during data card/model creation, allowing user roles to be assigned immediately.
- Fixed large file uploads failing to complete.
- Added ability to create and view data card schemas via the UI.
- Fixed Cypress tests intermittently failing due to backend not being ready.
- Fixed a bug where opening a review from the reviews page would incorrectly set the user's role.
- Conditionally disabled functionality in places to restrict users from performing actions they are not authorised to do. Tooltips have been used to provide guidance to users in these cases.
- Improved schema selection UI, allowing active/inactive schemas to be shown/hidden in bulk.
- Added ability to edit comments.
What's Changed
- Add inferencing config to helm chart by @GB27247 in #1283
- BAI-1299 Python semantic versioning bugfix by @bw27492 in #1305
- Update registry and use jwks by @JR40159 in #1317
- Upgrade registry deployment by @JR40159 in #1322
- added a new common component for dialog components on button press. a… by @ARADDCC002 in #1304
- Add access and secret key back to deployment config by @JR40159 in #1324
- Fix secret config by @GB27247 in #1328
- added optional advanced section on entry creation for adding users to… by @ARADDCC002 in #1323
- Bump ws from 7.5.9 to 7.5.10 in /frontend by @dependabot in #1329
- Bump braces from 3.0.2 to 3.0.3 in /lib/landing by @dependabot in #1319
- Bump braces from 3.0.2 to 3.0.3 in /backend by @dependabot in #1321
- Bump braces from 3.0.2 to 3.0.3 in /frontend by @dependabot in #1320
- Bump @grpc/grpc-js from 1.10.8 to 1.10.9 in /backend by @dependabot in #1331
- Bump @grpc/grpc-js from 1.10.1 to 1.10.9 in /frontend by @dependabot in #1330
- Disable nginx request buffering by @a3957273 in #1336
- added new property in necessary files to enable templating and implem… by @TT38665 in #1326
- Implemented template tab in model settings. May need to looka at han… by @TT38665 in #1327
- completely resstructed responses by having them in their own collection by @ARADDCC002 in #1280
- Add kms config by @JR40159 in #1333
- Update config by @JR40159 in #1342
- Feature/add data card type to schema creation by @ARADDCC012 in #1343
- Increase header timeout to 24H by @JR40159 in #1344
- Bugfix/bai 1297 fix issue with file uploads by @ARADDCC002 in #1338
- Enable local replica set + enable basic authentication by @GCHQDeveloper36 in #1236
- Add helper function to list schema ids by @gc153671 in #1349
- Bump codeql actions to v3 by @GCHQDeveloper36 in #1353
- Remove duplicate user type by @GCHQDeveloper36 in #1350
- Added user to request received logging by @ARADDCC012 in #1346
- Prevent a token creating another token by @a3957273 in #1335
- Bump frontend vitest by @GCHQDeveloper36 in #1352
- Revert "Merge pull request #1236 from GCHQDeveloper36/dev/use-rs-loca… by @GB27247 in #1375
- BAI-1255 MLFlow Model Imports by @bw27492 in #1341
- Refactor component names due to confusing use of page terminology part 1 by @ARADDCC012 in #1371
- Renamed component from using confusing page terminology by @ARADDCC012 in #1378
- Disable next telemetry by @GCHQDeveloper36 in #1351
- Add model export settings page by @GB27247 in #1347
- Feature/view data card schemas by @ARADDCC012 in #1345
- Updated release file submission logic by @ARADDCC012 in #1379
- Fix cert script by using tsx by @GCHQDeveloper36 in #1386
- Bai 1318/improve error styling by @GB27247 in #1339
- Feature/refactor review responses by @JR40159 in #1381
- BAI-1141 Experiment Ordering by @bw27492 in #1376
- Wait for backend to be ready before starting cypress by @GCHQDeveloper36 in #1385
- Add query parameters to roles by @GB27247 in #1382
- Add array object to swr by @GB27247 in #1396
- Feature/conditionally hide UI based on roles by @ARADDCC012 in #1377
- Fix image upload authorisation by @GB27247 in #1395
- Fixed input widths in create entry form by @ARADDCC012 in #1398
- Python Improvements by @bw27492 in #1380
- Use accordions for schema selection, hiding inactive schemas by default by @GCHQDeveloper36 in #1383
- Made collaborators array required on entry creation in frontend by @ARADDCC012 in #1399
- Add token forwarding to inference service login by @GB27247 in #1337
- Bai 1348/mirrored model creation by @GB27247 in #1348
- Feature/standalone by @ARADDCC013 in #1325
- added the ability to edt comments via the UI by @ARADDCC002 in #1402
- Reset error message when pressing cancel button in edit release by @IR96334 in #1405
- Updated python notebooks and documentation for 2.5.0 by @bw27492 in #1404
- update ci by @ARADDCC013 in #1401
- Add host metrics by @JR40159 in #1406
- Add colon by @GB27247 in #1409
- Add fullWidth by @GB27247 in #1410
New Contributors
Full Changelog: v2.0.0...v2.1.0
Bailo v2.0.0
We're restarting releases, which will occur on a three-weekly basis. This is a catch-all release for the work that has been done over the past year.
What's Changed
- Bump @emotion/react from 11.10.8 to 11.11.0 in /frontend by @dependabot in #481
- Bump @eslint/eslintrc from 2.0.2 to 2.0.3 in /frontend by @dependabot in #479
- Bump @typescript-eslint/eslint-plugin from 5.59.2 to 5.59.5 in /backend by @dependabot in #478
- Fix favicon by @a3957273 in #490
- Add documentation for useful commands by @a3957273 in #489
- Bump @vitest/coverage-c8 from 0.30.1 to 0.31.1 in /frontend by @dependabot in #496
- Bump @mui/material from 5.12.3 to 5.13.1 in /frontend by @dependabot in #493
- Bump prettier from 2.8.7 to 2.8.8 by @dependabot in #483
- Bump @vitejs/plugin-react from 3.1.0 to 4.0.0 in /frontend by @dependabot in #498
- Bump @types/node from 18.16.2 to 20.2.1 in /backend by @dependabot in #497
- Bump vitest from 0.30.1 to 0.31.1 in /backend by @dependabot in #504
- Bump axios from 1.3.5 to 1.4.0 in /backend by @dependabot in #503
- Bump jsdom from 21.1.1 to 22.0.0 in /frontend by @dependabot in #505
- Bump @emotion/server from 11.10.0 to 11.11.0 in /frontend by @dependabot in #506
- Bump axios from 1.3.6 to 1.4.0 in /frontend by @dependabot in #508
- Updated eslint rules and fixed any issues by @ARADDCC012 in #513
- Bump esmock from 2.2.1 to 2.2.3 in /backend by @dependabot in #509
- Bump @types/react-dom from 18.0.11 to 18.2.4 in /frontend by @dependabot in #511
- Bump eslint from 8.39.0 to 8.41.0 in /backend by @dependabot in #510
- Bump @mui/material from 5.13.1 to 5.13.2 in /frontend by @dependabot in #514
- Bump @swc/core from 1.3.56 to 1.3.60 in /backend by @dependabot in #518
- Bump unzipper from 0.10.11 to 0.10.14 in /backend by @dependabot in #519
- Bump swagger-ui-react from 4.18.3 to 4.19.0 in /frontend by @dependabot in #517
- Bump @rjsf/mui from 5.6.2 to 5.7.0 in /frontend by @dependabot in #520
- Create a test script to build and upload large tar files by @a3957273 in #502
- Fix model page memory leak by @a3957273 in #500
- Update workflow actions to Node v16 by @a3957273 in #501
- Bump @rjsf/validator-ajv8 from 5.6.2 to 5.7.3 in /frontend by @dependabot in #521
- Bump @types/react from 18.2.0 to 18.2.7 in /frontend by @dependabot in #522
- Bump tar and @types/tar in /backend by @dependabot in #523
- Bump prettier from 2.8.7 to 2.8.8 in /backend by @dependabot in #524
- added question mark to fields by @TT38665 in #512
- Bump form-data-encoder from 2.1.4 to 3.0.0 in /backend by @dependabot in #525
- Bump @rjsf/core from 5.6.0 to 5.7.3 in /frontend by @dependabot in #526
- Bump eslint from 8.39.0 to 8.41.0 in /frontend by @dependabot in #528
- Fix CI and update RJSF by @a3957273 in #530
- Bump @typescript-eslint/eslint-plugin from 5.59.7 to 5.59.8 in /frontend by @dependabot in #533
- Bump formdata-node from 5.0.0 to 5.0.1 in /backend by @dependabot in #532
- Bump @mui/lab from 5.0.0-alpha.129 to 5.0.0-alpha.132 in /frontend by @dependabot in #531
- Add documentation for common workflows by @a3957273 in #535
- Bump @vitest/coverage-c8 from 0.31.1 to 0.31.4 in /frontend by @dependabot in #540
- Bump @typescript-eslint/parser from 5.59.2 to 5.59.8 in /frontend by @dependabot in #539
- Bump @types/node from 20.2.1 to 20.2.5 in /backend by @dependabot in #538
- Bump mongodb from 5.5.0 to 5.6.0 in /backend by @dependabot in #537
- Bump vite from 4.3.8 to 4.3.9 in /backend by @dependabot in #542
- Bump vite from 4.3.4 to 4.3.9 in /frontend by @dependabot in #541
- Decrease usage of any's by @a3957273 in #536
- Bump typescript from 5.0.4 to 5.1.3 in /backend by @dependabot in #546
- Bump @types/unzipper from 0.10.5 to 0.10.6 in /backend by @dependabot in #545
- Bump @next/mdx from 13.4.0 to 13.4.4 in /frontend by @dependabot in #544
- Bump cypress from 12.11.0 to 12.13.0 in /frontend by @dependabot in #543
- Add export functionality to Bailo by @a3957273 in #515
- remove mongo secret from production.js by @ARADDCC013 in #548
- Add OAuth Authentication Strategy by @a3957273 in #516
- Bump nodemailer and @types/nodemailer in /backend by @dependabot in #549
- Bump next from 13.4.0 to 13.4.5 in /frontend by @dependabot in #554
- Bump fast-xml-parser and @aws-sdk/credential-providers in /backend by @dependabot in #547
- Bump @types/lodash from 4.14.194 to 4.14.195 in /backend by @dependabot in #561
- Bump @uiw/react-textarea-code-editor from 2.1.1 to 2.1.6 in /frontend by @dependabot in #559
- Action K8s by @ARADDCC013 in #552
- Bump mongodb-memory-server from 8.12.2 to 8.13.0 in /backend by @dependabot in #560
- Bump mongoose from 7.1.0 to 7.3.0 in /frontend by @dependabot in #557
- Out of Disk Space Error by @a3957273 in #574
- Bump fast-xml-parser and @aws-sdk/credential-providers in /backend by @dependabot in #578
- Bump cross-fetch from 3.1.5 to 3.1.8 in /backend by @dependabot in #577
- Bump eslint from 8.42.0 to 8.44.0 in /backend by @dependabot in #576
- Bump eslint from 8.41.0 to 8.44.0 in /frontend by @dependabot in #575
- BAI-600 Refactored MetadataDisplay to use 'useGetSchema' by @m19671 in #572
- Bump @vitejs/plugin-react from 4.0.0 to 4.0.1 in /frontend by @dependabot in #568
- Mock audit calls by @JR40159 in #586
- Bump @uiw/react-textarea-code-editor from 2.1.6 to 2.1.7 in /frontend by @dependabot in #579
- Bump @mui/lab from 5.0.0-alpha.132 to 5.0.0-alpha.135 in /frontend by @dependabot in #580
- Bump @typescript-eslint/parser from 5.59.2 to 5.61.0 in /backend by @dependabot in #582
- Bump @swc/core from 1.3.62 to 1.3.68 in /backend by @dependabot in #587
- Add minimal mocked config for route tests by @JR40159 in #585
- corrected position of error notification by @TT38665 in #583
- BAI-713 Updated useful commands file to include older versions of doc… by @m19671 in #584
- added condition to stop approving from API by @TT38665 in #556
- updated dependabot config so that it runs monthly by @ARADDCC002 in #595
- added link to explain error by @TT38665 in #487
- Feature/add tag filter component and reorganise marketplace by @ARADDCC002 in #558
- Bai 708 refactor api hook to allow for custom requests by @m19671 in #616
- BAI-534 documentation links to dead pages by @m19671 in #620
- Feature/bai 691 add beta wrapper component by @ARADDCC002 in #613
- Feature/bai 669 add reusable tab page component by @ARADDCC002 in #617
- Feature/bai create overview page for model by @ARADDCC002 in #618
- Bai 551 approve reject directly from model by @P20179 in #588
- BAI-599 model description now extends further right. less dead space … by @k25831 in #625
- Bump semver from 5.7.1 to 5.7.2 in /backend by @dependabot in #623
- Bump semver from 5.7.1 to 5.7.2 in /frontend by @dependabot in #622
- Bump semver from 6.3.0 to 6.3.1 in /lib/landing by @dependabot in #621
- Update smtp auth t...
Bailo v0.6.1
Fixes
- Unit tests were not passing for 'MetadataCard'
Bailo v0.6.0
NOTE: This is a significant change to the Bailo repository. Specifically guidelines have been written for upgrading here:
https://gchq.github.io/Bailo/docs/administration/migrations/bailo-0.4
Breaking Changes
- Changed how schemas are initially added to Bailo. Now set in
config.defaultSchemas
instead ofschema.script
. Now is a list of schema objects, instead of a bash script. - Model card sidebar now uses role names from schema, instead of hard coded.
- Removes usage of 'turbopack' to build dependencies, speeding up builds by 7x.
- Python library client instantiation has been simplified, with less facades in place. See library README for more details.
- The application now produces two Docker images, a 'frontend' and 'backend' image. See v0.4 migration for more details.
- Migrated from CJS to ESM for NodeJS dependency management.
Features
- Python documentation can now be built into a webpage using
cd docs && make html
- Python client can now bundle a variety of frameworks automatically, with no code required.
- Python tests are not automatically run on GitHub Actions.
- The latest version of a model is now tagged on the version selector dropdown for easier viewing.
- Entities (groups, users, etc) can now be relabelled using the generic 'EntityDisplay' component.
- Editing a model now automatically requests re-approval.
- We now support all JSON Schema Beta 7 proposals in model card schemas.
- Helm charts natively support AWS.
- Added sharp to optimise images prior to display to users.
- Tests are now run using 'vitest' instead of 'jest'.
- The compliance graph now has a key.
Fixes
- Banner could never be displayed due to 'enable' vs 'enabled' differences.
- Logging had to be disabled on OpenShift clusters due to '$' in key, now filtered out.
- Local configuration can no longer be committed to GitHub.
- Authorisation unit tests now pass regardless of 'AuthorisationBase' configuration.
- Python library now supports PKI.
- Fix UI not able to serve images.
- The wrong person was responsible for approving models, changed it from the deployment owner to the model manager.
- Added a useful error message for when a new version is uploaded to a non-existent model.
- The deployment name is now displayed on the model review page when approving a deployment.
- Application now successfully responds to 'SIGINT' and 'SIGTERM' signals.
- Swagger can now upload docker images to the upload endpoint.
- The deployment and upload form can now be submitted multiple times, and does not break on the first error.
- The documentation now uses a static file directory listing. The page no longer requires any external network requests.
- The base path was incorrectly set for the Bailo landing page.
- Increase maximum file size Bailo can cope with, by streaming data instead of keeping it in memory.
v0.0.5
Features
- Deployments are no longer coupled to versions. Whenever a deployment is requested, it will be made available for all current approved versions, and whenever a new version of a model is requested, all existing deployments will be updated to be available for the new version.
- Ungoverned deployments are now available. This is where you can request a deployment of a model without needing to go through the request form and approval process. Ungoverned deployments are appropriately labelled as such
- Failed builds can now be retried
- Model files can now be viewed in the UI
- Admins can now upload new schemas via the UI using the new "schemas" page. Please note: the "designer" table is currently under development and is not supported.
- When selecting a deployment's download commands window, it will now default to the latest version, and also add a tag to it stating that it's the latest
Fixes
- Fixed an issue where the model's latest version data wasn't been updated
- Notifications are now sent to model owner, not the person approving the request. Also fixed an issue where email reports were not displaying the username correctly
- Previously approved deployments than are subsequently declined will now be unavailable from the registry
- Admin logs should now appear correctly
- General improvement to logging
- Upped various dependency versions
- Deployment page updates correctly when resetting approvals
- Removed some out of date configuration values
- Deployments can now only be requested for approved versions
- Various fixes to the Python client
v0.0.4
Features
- Versions can now be deleted. Deployments and models will also be deleted if they are only associated with the version that was deleted.
- Requests on the review page now display the model version so that it is clearer when reviewing multiple versions of the same model.
- Selenium has been replaced with Cypress for end-to-end tests.