Releases: sillsdev/TheCombine
Releases · sillsdev/TheCombine
v2.8.0
What's Changed
New Features
- [MergeDups] Add "Revert set" button to discard changes and reset to initial state by @Copilot in #3959
- [ReviewEntries] Track deleted entries and enable undo by @imnasnainaec in #3956
- Add statistics to administrator permissions by @imnasnainaec in #4040
- [UserStatistics] Add recent semantic domain column by @Copilot in #4022
- [SIteSettings] Take project roles, edits into account when deleting a user by @Copilot in #3971
- Lazy load language picker by @imnasnainaec in #3999
Defect Fixes
- [MergeDups] Fix protection-override data-loss warning by @Copilot in #3948
- [UploadImage] Disable "Save" button when no image selected by @Copilot in #3949
- Disable vernacular field when word or sense is protected by @Copilot in #3972
- Don't request email verification if email disabled by @imnasnainaec in #3989
- [NewEntry] Avoid focus while submission is underway by @imnasnainaec in #4016
- [ReviewEntriesCompleted] Fix key error by @imnasnainaec in #4042
Documentation
- [User Guide] Add info/help links by @imnasnainaec in #4033
- Prefer FieldWorks to FLEx by @imnasnainaec in #4034
- Update translations by @imnasnainaec in #4043
Deployment
- Move from
create-react-apptoparcelby @imnasnainaec in #3041 - Make sure public/script/ files exist by @imnasnainaec in #3960
- Add comment to keep kubectl version synced by @imnasnainaec in #3981
- Remove vesitigial showCertExpiration by @imnasnainaec in #3982
- Pin all Docker dependencies with SHA256 digests; Pin pip versions by @Copilot in #3968
- [GHA] Add installer workflow to test installer generation by @Copilot in #4020
- [GHA] Upload installer README to S3 when modified by @Copilot in #4028
- [GHA] Upload net-installer to S3 when make-combine-installer.sh changes by @Copilot in #4031
- [GHA] Add workflow to upload versioned installers on release by @Copilot in #4032
Other Changes
- Lock npm dependencies to patch-level updates; Upgrade axios and validator by @Copilot in #3966
- Clean up use of js/ts in scripts by @imnasnainaec in #4001
- Bump frontend deps by @imnasnainaec in #4002
- Add OTEL activity tracing to all Controllers, Services, and Repositories by @Copilot in #3958
- Tidy redux tests by @imnasnainaec in #3962
- Consolidate images by @imnasnainaec in #3963
- Tidy for ESLint 8 -> 9 upgrade by @imnasnainaec in #3964
- Fix docker_build condition to only run on prs by @imnasnainaec in #3985
- Bump GHA deps by @imnasnainaec in #4000
- Bump Backend.Tests dependencies by @dependabot[bot] in #3997
- Update dependabot ignores by @imnasnainaec in #4005
- Bump the gha-deps group with 3 updates by @dependabot[bot] in #4010
- Bump js-yaml by @dependabot[bot] in #4030
- Bump glob from 10.4.5 to 10.5.0 by @dependabot[bot] in #4029
- [GHA] Don't run front/back-end job on purely back/front-end pr by @imnasnainaec in #4035
New Contributors
- @Copilot made their first contribution in #3958
Full Changelog: v2.7.1...v2.8.0
v2.7.1
v2.7.0 broke vernacular and gloss suggestion in Data Entry. This is just reverting the part of #3941 that caused the issue.
What's Changed
Defect Fixes
- Revert TextFieldWithFont changes incompatible with legacy Autocomplete by @imnasnainaec in #3957
Full Changelog: v2.7.0...v2.7.1
v2.7.0
What's Changed
New Features
- Add setting to ignore merge sets with only protected words by @imnasnainaec in #3919
- Allow a second import that overwrites the frontier by @imnasnainaec in #3917
- Add email verification by @imnasnainaec in #3877
- [MergeDups] Make detailed bad-set err message by @imnasnainaec in #3928
Defect Fixes
- [ReviewEntries] Store edits from Pronunciations column by @imnasnainaec in #3926
- [CharInv] Have find-replace auto-save would-be-lost changes by @imnasnainaec in #3937
- Improve email message readability by @imnasnainaec in #3950
- [EmailVerify] Logout on success to avoid cross-tab state confusion by @imnasnainaec in #3953
Documentation
- Update User Guide and translations by @imnasnainaec in #3889
- Update Spanish translations; Fix a few typos by @imnasnainaec in #3945
- [User Guide] Update navigation translations by @imnasnainaec in #3946
Deployment
- Upgrade Node from 20 to 22 LTS by @imnasnainaec in #3903
- Bump the gha-deps group with 11 updates by @dependabot[bot] in #3891
- Update GHA endpoints, formatting by @imnasnainaec in #3918
- Add GHA workflow with pr labeler by @imnasnainaec in #3923
- Do minor labeler, deploy cleanup by @imnasnainaec in #3927
- Remove each subdir once tar'd for backup by @imnasnainaec in #3947
Backend Maintenance
- Bump the backend-deps group with 13 updates by @dependabot[bot] in #3897
- Dispose MongoDb, SLDR in singletons by @imnasnainaec in #3924
- [Backend] Nix unnecessary contexts by @imnasnainaec in #3931
- Make all the test classes internal sealed/static by @imnasnainaec in #3932
- Clean up login/token/user-related things by @imnasnainaec in #3938
- Update token handling for password reset & project invite by @imnasnainaec in #3920
Frontend Maintenance
- [DataEntry] Migrate from deprecated react-test-renderer by @imnasnainaec in #3939
- [CharInv] Migrate from deprecations by @imnasnainaec in #3885
- [Login, Signup, PasswordReset] Migrate from deprecated Grid by @imnasnainaec in #3862
- [Statistics] Migrate from deprecated Grid and use a Table by @imnasnainaec in #3855
- [frontend] Migrate 5 components from deprecations by @imnasnainaec in #3854
- [ProjectSettings, SiteSettings] Migrate from deprecated Grid by @imnasnainaec in #3863
- [DataEntry] Migrate from deprecated Grid by @imnasnainaec in #3880
- [ReviewEntries] Migrate from deprecations by @imnasnainaec in #3883
- [WordCard, *Completed] Migrate from deprecated Grid by @imnasnainaec in #3925
- [MergeDups] Migrate from deprecated Grid by @imnasnainaec in #3930
- Migrate ProjectSettings components to testing-library by @imnasnainaec in #3936
- Migrate ProjectUsers components to testing-library by @imnasnainaec in #3935
- Implement getLocalizedDateTimeString; Add onlyId to DomainChip by @imnasnainaec in #3933
- Stop using loadable with Buttons, Dialogs by @imnasnainaec in #3940
- Replace InputLabelProps, InputProps, inputProps with slotProps by @imnasnainaec in #3941
Full Changelog: v2.6.0...v2.7.0
v2.6.0
What's Changed
New Features
- [Data Cleanup] Redesign goal options/history page by @imnasnainaec in #3836
Defect Fixes
- [UserMenu, SiteSettings] Fix errors when coming from Project Settings by @imnasnainaec in #3870
- [UserController] Update security, attributes, tests by @imnasnainaec in #3870
- [PasswordReset] Manage reset link in the backend by @imnasnainaec in #3882
- [PermissionService] Update authenticated user handling by @imnasnainaec in #3876
Code Maintenance
- Move site-admin check from API call to Redux state by @imnasnainaec in #3857
- [LiftController] Add ProducesResponseType attributes by @imnasnainaec in #3849
- [ProjectController] Update return types, Remove DeleteAllProjects by @imnasnainaec in #3848
- [Controllers] Remove ProjRepo from UserEdit, UserRole, Word controllers by @imnasnainaec in #3851
- [Statistics] Remove unused param from GetSemanticDomainUserCounts by @imnasnainaec in #3853
- [StatisticsController] Drop unneeded project checks by @imnasnainaec in #3852
- [SpeakerController] Update response types and tests by @imnasnainaec in #3845
- [CharInv] Clean up Completed component without deprecated Grid by @imnasnainaec in #3878
- [docker/python] Dependency updates for Spring 2025 by @imnasnainaec in #3708
- [MergeDups] Migrate drag-n-drop to using hello-pangea/dnd by @imnasnainaec in #3873
- Remove component from Redux testing by @imnasnainaec in #3881
Full Changelog: v2.5.0...v2.6.0
v2.5.0
What's Changed
New Features
- [TreeView] Redesign UX for narrow windows by @imnasnainaec in #3816
- Enable cancellation for Lift exports by @andracc in #3664
- [ChooseProject] Add horizontal lines between project names by @imnasnainaec in #3807
Defect Fixes
- Allow apostrophe in file names by @imnasnainaec in #3804
- [ReviewEntries] Prevent empty dialog after Enter-selecting domain by @imnasnainaec in #3805
- [Statistics] Fix line-graph color loading error by @imnasnainaec in #3810
- [MergeDups] Fix audio-loss bugs by @imnasnainaec in #3814
- [UserRepositoryMock] Fix Update error when no user found by @imnasnainaec in #3840
- [MergeDups] Fix bug saving merge after use of extra column by @imnasnainaec in #3869
- Tighten security on user info by @imnasnainaec in #3868
Code Maintenance
- GHA dependency upgrades for May 2025 by @imnasnainaec in #3786
- Update dependabot.yml by @imnasnainaec in #3748
- Migrate more frontend tests to testing-library by @imnasnainaec in #3749
- For non-empty project check, just query database for 1 word by @imnasnainaec in #3756
- Fix find-circular-deps; Fix 3 circular deps by @imnasnainaec in #3796
- [Backend.Tests] Change sealed internal to internal sealed by @imnasnainaec in #3833
- [Backend] Move PasswordReset*Data classes to Models by @imnasnainaec in #3835
- [Backend.Tests] Clean up LevenshteinDistance, LiftService by @imnasnainaec in #3834
- [SemanticDomainController] Fix GetAllSemanticDomainTreeNodes return type by @imnasnainaec in #3837
- [BannerController] Add missing ProducesResponseType for Status403Forbidden by @imnasnainaec in #3842
- [AvatarController] Restrict UploadAvatar to current user by @imnasnainaec in #3839
- [PermissionService] Remove IsCurrentUserAuthorized redundancies by @imnasnainaec in #3838
- [InviteController] Add ProducesResponseType attributes, one test by @imnasnainaec in #3843
- [AudioController] Clean up methods and add tests by @imnasnainaec in #3841
- [MergeController] Add ProducesResponseType attributes, six tests by @imnasnainaec in #3844
- [maintenance/scripts] In rm_project.py, update collections by @imnasnainaec in #3861
- [Data Cleanup] Speed up check for deferred duplicates by @imnasnainaec in #3793
- Migrate AppBar, Buttons, GoalTimeline, MergeDups, Pronunciations to testing-library by @imnasnainaec in #3802
- [frontend] Upgrade react-router from v6 to v7 by @imnasnainaec in #3797
- Backend dependency bump for May 2025 by @imnasnainaec in #3789
- Remove act from around testing-library async clicks by @imnasnainaec in #3856
Deployment
- Fix and pin OTEL collector chart and image by @andracc in #3788
- Change dictionary pieces from ts to text by @imnasnainaec in #3806
- [README] Update deployments/pods lists with otel by @andracc in #3790
Other Changes
- [Statistics] Have "Daily Totals" first and always black by @imnasnainaec in #3811
- [MergeDups] Make gloss and definition merging more uniform by @imnasnainaec in #3743
Full Changelog: v2.4.0...v2.5.0
v2.4.0
What's Changed
New Features
- [SiteSettings] Redesign project management by @imnasnainaec in #3565
- [MergeDups] Toast when actions fail by @imnasnainaec in #3607
- [NewEntry] Combine Select-Entry/-Sense dialogs by @imnasnainaec in #3619
- [NewEntry>VernDialog] If only one entry, auto-expand senses by @imnasnainaec in #3625
- [MergeDups] Enable word/sense protection bypass by @imnasnainaec in #3445
- [DataEntry] Fix exit button icon margins in rtl by @imnasnainaec in #3675
- [Login] Allow login with email address by @imnasnainaec in #3673
- [ReviewEntries] Use whitespace filter for non-empty text by @imnasnainaec in #3715
- [LIFT] Support export/import of entry flags by @imnasnainaec in #3677
Defect Fixes
- [SiteSettings] Fix project roles dialog title by @imnasnainaec in #3600
- [ProjectExport] Fix download file name and errors by @imnasnainaec in #3622
- [MergeDups] Fix bug preventing sidebar re-reordering by @imnasnainaec in #3620
- [import/export] Update handling of Vernacular by @imnasnainaec in #3626
- [DataEntry] Set domain description, questions to be bidi by @imnasnainaec in #3674
- [DataEntry] In 'Select an entry', fix sem-dom contrast by @imnasnainaec in #3676
- [frontend] Fix left/right to work with rtl by @imnasnainaec in #3671
- [prod] Fix update-fonts CronJob by @imnasnainaec in #3678
- [import] Avoid empty lang-tags by @imnasnainaec in #3712
- [import] Trim whitespace off text by @imnasnainaec in #3727
- [MergeDups] Allow header height to grow as needed by @imnasnainaec in #3730
- NFC-normalize entries loaded into spell-checker by @imnasnainaec in #3740
- [MergeDups] Implement SignalRHub for duplicate finder by @imnasnainaec in #3725
Documentation
- Update copyright to 2025 by @imnasnainaec in #3597
- [User Guide] Remove obsolete image by @imnasnainaec in #3624
- Update setup/deploy READMEs by @imnasnainaec in #3706
- Update install & deploy READMEs & logging by @imnasnainaec in #3710
- Update backend license report; Fix typos by @imnasnainaec in #3732
- Update UI & User Guide translations from Crowdin by @imnasnainaec in #3736
Code Maintenance
- Use testing-library on AppBar, IconButtonWithTooltip, WordCard by @imnasnainaec in #3328
- Remove extraneous semicolons by @imnasnainaec in #3623
- GitHub repo maintenance by @imnasnainaec in #3665
- Don't override Equals, GetHashCode by @imnasnainaec in #3660
Deployment
- Update installer Ubuntu 24.04, GHA workflows to ubuntu-latest by @imnasnainaec in #3613
Other Changes
- Implement all LIFT import fields for better protection by @imnasnainaec in #3531
- GHA dependency updates for February 2025 by @imnasnainaec in #3598
- [MergeDragDrop] Refactor to use payloads, mergeTreeRefs by @imnasnainaec in #3562
- [DuplicateFinderTests] Add broad testing by @imnasnainaec in #3612
- [ProjectSettings] Don't show email address of project users by @imnasnainaec in #3614
- Backend dependency updates for February 2025 by @imnasnainaec in #3594
- [Login, Signup] Move tests to testing-library by @imnasnainaec in #3616
- Bump MongoDB.Driver to v3; Add BsonGuidRepresentation by @imnasnainaec in #3603
- Increase font size of hover text by @imnasnainaec in #3605
- Pause user analytics during login/signup by @andracc in #3621
- Cancel GHA workflows when another commit is pushed to a pr by @imnasnainaec in #3658
- Convert many easy tests to testing-library by @imnasnainaec in #3617
- Frontend dependency updates for Feb-Mar 2025 by @imnasnainaec in #3596
- Backend dependency updates for March 2025 by @imnasnainaec in #3659
- Move TreeView to testing-library by @imnasnainaec in #3668
- [GHA] Dependency update for April 2025 by @imnasnainaec in #3707
- [Backend] Dependency updates for April 2025 by @imnasnainaec in #3711
- Disable analytics prompts when offline by @andracc in #3716
- Normalize project data text (NFC) by @imnasnainaec in #3718
- [ReviewEntries] Use localeCompare for all text column sorts by @imnasnainaec in #3724
- Update spell-check dictionaries by @imnasnainaec in #3717
- [MergeDups] Decrease max similarity score to speed up dup finder by @imnasnainaec in #3731
- [MergeDups] Improve duplicate-finder efficiency by @imnasnainaec in #3746
Full Changelog: v2.3.1...v2.4.0
v2.3.1
What's Changed
New Features
- [MergeDups] For similar-vern words, compare glosses & definitions by @imnasnainaec in #3550
- [MergeDups>DropWord] Always show protected word warning by @imnasnainaec in #3560
Defect Fixes
- [MergeDups] Allow actions from sidebar of protected sense by @imnasnainaec in #3561
- [AudioRecorder] Fix bug preventing multiple recordings by @imnasnainaec in #3556
- [ReviewEntries] Allow senses w/o gloss but w/ definition by @imnasnainaec in #3536
- [ReviewEntries] Add error text when trying to save empty sense by @imnasnainaec in #3593
- [ReviewEntries] Eliminate unhandled edit error by @imnasnainaec in #3595
Code Maintenance
- [GHA] Clean up deploy_release workflow by @imnasnainaec in #3551
- [.gitignore] Use more general log filename patterns by @imnasnainaec in #3547
- [GHA] Update CodeQL workflows by @imnasnainaec in #3563
Full Changelog: v2.3.0...v2.3.1
v2.3.0
What's Changed
New Features
- [ReviewEntries] Persist column order/visibility state in project by @imnasnainaec in #3309
- Introduce OpenTelemetry (OTEL) instrumentation by @andracc in #3163
- [ReviewEntriesTable] Add fuzzy/exact filtering by @imnasnainaec in #3436
- Disable Lift export when Frontier is empty by @andracc in #3440
- Provide feedback after Vernacular name change by @andracc in #3408
- C is for Cookie, that's good enough for me by @imnasnainaec in #3301
- Enable/Disable analytics based on user consent by @andracc in #3467
Defect Fixes
- [Recorder] Toast error if record fails by @imnasnainaec in #3322
- Update Turnstile site key by @imnasnainaec in #3331
- [MergeDups] Use merge sense logic for displayed sense by @imnasnainaec in #3324
- [Login] Improve error specificity by @imnasnainaec in #3327
- Fix shebang for Python scripts by @jmgrady in #3370
- Avoid empty lines in aws profiles list by @imnasnainaec in #3387
- [deploy] Fix helm config and maintenance scripts by @imnasnainaec in #3404
- Prevent double-click recorder bug by @imnasnainaec in #3414
- [GHA] Update codecov endpoints by @imnasnainaec in #3447
- [build] Allow on detached HEAD by @imnasnainaec in #3446
- Cluster setup should succeed without Honeycomb key by @andracc in #3453
- Remove bug-causing 'Sem.' Portuguese translation by @imnasnainaec in #3494
- [DataEntry] Ensure analysis lang is on recent entry notes by @imnasnainaec in #3518
- [MergeDups] Add failsafe for duplicate guids and other bad merge sets by @imnasnainaec in #3523
- [MergeDups] Blacklist bad merge sets by @imnasnainaec in #3530
- Tweak IP checking by @imnasnainaec in #3533
- [DEBUG] Dump all request headers to logs by @imnasnainaec in #3537
- [Otel] Remove debugging; Use different header by @imnasnainaec in #3538
- [Captcha] Add margin below so not flush against buttons by @imnasnainaec in #3539
- [Otel] Redact IP info from tags by @andracc in #3540
- [MergeDups] Fix bug preventing use of extra column by @imnasnainaec in #3548
Documentation
- Update SIL International to SIL Global by @imnasnainaec in #3367
- Replace backend formatter and license reporter by @imnasnainaec in #3389
- Clean up build/deploy scripts and docs by @imnasnainaec in #3390
- [installer] Update docs, comments, pw by @imnasnainaec in #3391
- [GHA] Fix backend workflow format check by @imnasnainaec in #3401
- [tutorial] Export 1: Update times; Add Spanish CC by @imnasnainaec in #3450
- Update first Merge Tutorial Video; Add French subtitles by @imnasnainaec in #3514
- Add French/Spanish translations for first sem dom / data entry tutorial vids by @imnasnainaec in #3515
- Increase required memory resources for Docker by @andracc in #3452
Code Maintenance
- Add data-testid, aria-label to general buttons, dialogs by @imnasnainaec in #3299
- Replace deprecated Hidden component with useMediaQuery hook by @imnasnainaec in #3246
- Issue#3525: Goal class has unused field: user by @syamjir in #3526
- Update Redux by @imnasnainaec in #3512
- Update and consolidate i18n by @imnasnainaec in #3313
- Dependency updates for September 2024 by @jmgrady in #3351
- Add tighter control on project owner management by @imnasnainaec in #3194
- Dependency updates for October 2024 by @imnasnainaec in #3388
- Localize the : with string createProject.fileSelected by @imnasnainaec in #3473
- Dependency updates for Nov/Dec 2024 by @imnasnainaec in #3435
- Generalize AutocompleteSetting as OffOnSetting by @imnasnainaec in #3488
- [MergeDups] Unify sense-reference info by @imnasnainaec in #3490
- [MergeDups] Extract protected-reasons-text functions by @imnasnainaec in #3489
- Dependency updates for January 2025 by @imnasnainaec in #3513
- [GHA] Update backend and CodeQL endpoints by @imnasnainaec in #3522
- Update setup-dotnet to v4.2.0 and clear old endpoints by @imnasnainaec in #3527
- Move email, name from url to body to protect PII by @imnasnainaec in #3528
- Remove unused vanilla-cookieconsent by @imnasnainaec in #3535
Deployment
- Standalone installer improvements by @jmgrady in #3360
- [ansible] Set up for more general architecture support by @imnasnainaec in #3438
- Use dummy CAPTCHA site key in default config by @imnasnainaec in #3332
- [installer] Use --dependency-update; Fix debugging; Remove junk dirs by @imnasnainaec in #3402
- [maintenance] Support arm64 by @imnasnainaec in #3449
- Use latest Python 3.12 in Dockerfiles by @imnasnainaec in #3478
- Remove Segment analytics by @imnasnainaec in #3486
- [deploy] Set helm resources; Pin workflows to ubuntu-22.04; Fix Docker logging by @imnasnainaec in #3405
New Contributors
Full Changelog: v2.2.0...v2.3.0
v2.2.0
What's Changed
New Features
- [GlossWithSuggestions] Use ... for all but last word by @imnasnainaec in #3226
- [DataEntryTable] Improve submit/note/exit clarity by @imnasnainaec in #3245
- [DataEntryTable] Use current analysis lang with sense glosses by @imnasnainaec in #3239
- [TreeView] Improve ENTER key behavior by @imnasnainaec in #3221
- [TreeView] Make the search textbox more recognizable by @imnasnainaec in #3228
- [NewEntry] When vern dialog closed sans choice, select text by @imnasnainaec in #3306
- Add user setting for turning gloss suggestion on/off by @imnasnainaec in #3229
- [SummarySenseCard] Add glosses and bg color by @imnasnainaec in #3109
- Don't make button text all-caps by @imnasnainaec in #3231
- [ProjectSettings] Refactor with Accordian component by @imnasnainaec in #3233
- [MergeDupsCompleted] Give different display for deletions by @imnasnainaec in #3186
Defect Fixes
- Prevent cross-entry recording interference by @imnasnainaec in #3157
- [CreateProject] Improve empty name handling by @imnasnainaec in #3184
- Alter user feedback when mic access permission denied by @imnasnainaec in #3247
- [DataEntryTable] Fix NewEntry vernacular focus issues by @imnasnainaec in #3297
- Don't check mic permission on Firefox by @imnasnainaec in #3298
- Only disable page-index-reset for edits by @imnasnainaec in #3160
- [DataEntryTable] Distinguish between new and updated words by @imnasnainaec in #3307
- [TreeView] Allow editing mid-id digits by @imnasnainaec in #3300
- [DataEntry] Let arrows to move out of vern/gloss suggestions by @imnasnainaec in #3321
- Clear duplicate selection when user returns to vernacular input by @imnasnainaec in #3290
- Clear spell-checker if new lang has no dictionary by @imnasnainaec in #3185
Documentation
- [README] Add Id (Indonesian) to sem-dom badge by @imnasnainaec in #3219
- [README] Add 'Getting Started' step to load sem doms by @imnasnainaec in #3230
- [README] Remove unhelpful action badges by @imnasnainaec in #3225
- [Tutorial Videos] Add transcripts and subtitles script by @imnasnainaec in #3251
- [UserGuide > Projects > Semantic Domains] Update example; Add images by @imnasnainaec in #3248
- Update README links, manifest name, tsconfig targets by @imnasnainaec in #3308
- Update all translations from Crowdin by @imnasnainaec in #3312
- [User Guide] Fix displaced note by @imnasnainaec in #3325
Code Maintenance
- Update TS target to ES6 (which we already use) by @imnasnainaec in #3232
- Fix fetch_wordlist script by @imnasnainaec in #3250
- Update prettier and parentheses by @imnasnainaec in #3303
- Add AnnouncementBanner tests; Fix defaultState location by @imnasnainaec in #3311
- Remove act from around userEvent actions by @imnasnainaec in #3295
- Move EntryCellComponents tests to testing-library by @imnasnainaec in #3304
Deployment
- [CAPTCHA] Replace ReCAPTCHA with Turnstile by @imnasnainaec in #3249
- Package container images with the self-extracting installer for The Combine by @jmgrady in #3240
- Update shell error handling for make-combine-installer.sh by @jmgrady in #3291
- Make Dockerfiles architecture neutral by @jmgrady in #3310
Other Changes
- Dependabot updates for July 2024 by @imnasnainaec in #3222
- [GHA] Update OSSF URL in Harden Runner by @imnasnainaec in #3224
- [GHA] Add StepSecurity workflow updates by @imnasnainaec in #3242
- Dependabot updates for August 2024 by @imnasnainaec in #3289
- Increase login expire from 4 to 12 hours by @imnasnainaec in #3314
Full Changelog: v2.1.0...v2.2.0
v2.1.0
What's Changed
New Features
- Support custom semantic domains ending in 0 by @imnasnainaec in #3081
- Add Indonesian semantic domains by @imnasnainaec in #3172
- Preserve more content when merging senses by @imnasnainaec in #3181
Defect Fixes
- [ProjectScreen] Fix layout on narrow screen by @imnasnainaec in #3076
- [ReviewEntries] Prevent table flickering with parts of speech by @imnasnainaec in #3217
Documentation
- [User Guide] Update to match the current version by @imnasnainaec in #3216
- [User Guide] Add custom semantic domains info by @imnasnainaec in #3218
Code Maintenance
- [StatisticsService] Use implicit types by @imnasnainaec in #3051
- Consolidate root Redux elements by @imnasnainaec in #3054
- Partition the build more by lazy-loading pages/buttons/dialogs by @imnasnainaec in #3156
- Use sx theme color functions by @imnasnainaec in #3161
- Update icu.net; Fix ubuntu 22.04 by @imnasnainaec in #3171
- Remove unnecessary
[FromForm]baggage and fix axios issue by @imnasnainaec in #3176 - Run
npm updateby @imnasnainaec in #3179 - Retract #3161 due to broken placement styles by @imnasnainaec in #3188
Deployment
- Upgrade .NET from 6.0 to 8.0 by @imnasnainaec in #3046
Full Changelog: v2.0.1...v2.1.0