Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2023.07.05 - Kolibri 0.16 support #4187

Merged
merged 464 commits into from
Jul 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
464 commits
Select commit Hold shift + click to select a range
4af0583
Add management command to backfill kolibri_public channels.
rtibbles Mar 14, 2023
19e2abc
Better handle different models being used in ChannelBuilder test helper.
rtibbles Mar 14, 2023
9c06698
Ensure the currently annotated channel is always included in the orde…
rtibbles Mar 16, 2023
4f0d69d
Merge pull request #3991 from rtibbles/kolibri-public
bjester Mar 16, 2023
b842dd8
Merge pull request #3665 from bjester/intellij-run-config
vkWeb Mar 18, 2023
c6f0c6f
[Accounts] Use KDS Buttons
AlexVelezLl Dec 19, 2022
295bde7
Bring back raised buttons for account created/deleted message
AlexVelezLl Jan 10, 2023
fafba94
Migrate channel databases before import to guarantee compatible schema.
rtibbles Mar 21, 2023
2f0f13d
add tests for deploy change event
ozer550 Mar 21, 2023
eb0a659
Merge pull request #3996 from rtibbles/no_publicity_for_old_channels
rtibbles Mar 21, 2023
33e9c5e
Updates mp3 resource previewer metadata to include has captions and s…
LianaHarris360 Mar 21, 2023
385cda0
Use get_active_content_database to get alias
rtibbles Mar 21, 2023
36c1075
Put deploy event into indexedDB
vkWeb Mar 22, 2023
b871560
Updates command to automatically set accessibility metadata for audio…
LianaHarris360 Mar 22, 2023
4d02221
Merge pull request #3999 from LianaHarris360/audio-previewer-metadata
bjester Mar 23, 2023
cc34098
Merge pull request #4001 from learningequality/hotfixes
bjester Mar 23, 2023
c46f34b
Updates nested folder order in breadcrumb
LianaHarris360 Mar 24, 2023
db5fc78
Consult Channel table for publishing status
vkWeb Mar 27, 2023
83c2d59
Cross reference against only active tasks
vkWeb Mar 28, 2023
6e67bdc
Add user id to change object
ozer550 Mar 28, 2023
0c109db
Merge pull request #4003 from LianaHarris360/breadcrumbs-hickups
LianaHarris360 Mar 28, 2023
3c45c34
Bump redis from 4.5.1 to 4.5.4
dependabot[bot] Mar 29, 2023
b90b921
Adds additional logic to disable the Move Here button after a move ha…
marcellamaki Mar 30, 2023
d9bcc22
Added DEPLOYED to frontend change event
vkWeb Apr 3, 2023
fb8bebd
Merge pull request #3654 from bjester/docker-postgres-init
vkWeb Apr 3, 2023
0b861cf
Merge branch 'unstable' into pr/ozer550/3997
vkWeb Apr 3, 2023
3e208e2
Add DEPLOYED to changeMap
vkWeb Apr 3, 2023
1195a67
Loading spinner while deploying
vkWeb Apr 5, 2023
c7d751b
Fix staging_id being watched unnecessarily
vkWeb Apr 6, 2023
11fcf21
Remove stagingId condition
vkWeb Apr 6, 2023
b3036b9
Merge pull request #4008 from learningequality/dependabot/pip/redis-4…
rtibbles Apr 7, 2023
d553bac
Merge pull request #3990 from rtibbles/levels_and_categories
rtibbles Apr 7, 2023
9ad6237
Updates syncing metadata fields on syncing modal
akolson Apr 11, 2023
5565fd1
Merge pull request #4005 from ozer550/FIX_CHANNEL_SET_ISSUE
bjester Apr 11, 2023
98d8e63
Fixes failing tests
akolson Apr 11, 2023
2cc5161
Fixes failing tests
akolson Apr 11, 2023
002892f
Add test for language pagination labels.
rtibbles Apr 11, 2023
a2520e3
Fix root tree redirect tests
vkWeb Apr 12, 2023
30b7afe
Use F expression to map native_name to lang_name in query.
rtibbles Apr 12, 2023
ce97b32
Remove deprecated and no longer used codecov library.
rtibbles Apr 12, 2023
add9fab
Merge pull request #4018 from rtibbles/lang_field_name
rtibbles Apr 12, 2023
84b02dc
Clean up existing code
ozer550 Apr 12, 2023
b9729c5
Merge pull request #3984 from vkWeb/revert-late-ack
bjester Apr 12, 2023
4862c2d
Fix missing interface element linking to staging tree
bjester Apr 12, 2023
9a462db
Log full exception and stack trace for easier insight inside task wor…
bjester Apr 12, 2023
4861fb4
By default, celery starts # workers based of CPU, this sets to 1
bjester Apr 12, 2023
c4910f5
renames attribute ans tags attributes
akolson Apr 12, 2023
f8b5465
Fixes failing tests
akolson Apr 12, 2023
9973bdb
Refactors code
akolson Apr 13, 2023
84cb511
fix return statement
ozer550 Apr 13, 2023
aa1b079
Adds review feedback
akolson Apr 13, 2023
2db72b9
Merge pull request #4022 from bjester/misc-fixes-x2
bjester Apr 13, 2023
302f4a6
Reset moving state, and add additional check for loading state display
marcellamaki Apr 13, 2023
2fd01d1
Merge pull request #3997 from ozer550/ActivationChangeEventBackend
bjester Apr 13, 2023
39ab7be
applies css tweaks
akolson Apr 14, 2023
4b22d97
Merge latest unstable
akolson Apr 14, 2023
9e276a3
Merge pull request #4016 from akolson/syncing-metadata-ui-strings
akolson Apr 14, 2023
74eb388
Merge pull request #4009 from marcellamaki/disable-move-here-button
marcellamaki Apr 17, 2023
c14424f
Remove additional files upon channel sync
vkWeb Apr 17, 2023
c9cbc62
Merge pull request #4027 from vkWeb/sync-files
rtibbles Apr 17, 2023
50b182f
Merge pull request #3891 from AlexVelezLl/accounts-kds-buttons
bjester Apr 18, 2023
c8b8cce
add ai_feature flag to schema
akash5100 Apr 18, 2023
86fbe33
Merge pull request #4029 from akash5100/feature_flag
bjester Apr 18, 2023
864f892
Skip flaky tests for now until I can fix them
bjester Apr 19, 2023
8cd1d91
Merge pull request #4033 from bjester/skip-flaky-tests
bjester Apr 19, 2023
0f72a5c
Defensive file duration check
vkWeb Apr 19, 2023
c17f70f
Merge pull request #4032 from vkWeb/file-duration-0
bjester Apr 19, 2023
2c2fa07
add test for zero duration file upload
ozer550 Apr 20, 2023
cea98db
Merge pull request #4034 from ozer550/Add_test_for_File_duration_vali…
bjester Apr 20, 2023
4060a24
Fixes inability to open channel details modal in new tab
LianaHarris360 Apr 20, 2023
fcb1656
Add a next tick, and set selected node so that detailsTab saving func…
marcellamaki Apr 20, 2023
0dfd8c6
Merge pull request #4035 from LianaHarris360/channel-details-modal-ne…
LianaHarris360 Apr 21, 2023
950b05b
Add new Makefile target for post-migration flows
bjester Apr 24, 2023
e251253
- [feat]: disable checkbox based on policyAccepted;
manavagr1108 Apr 24, 2023
468c4e6
- [remove]: red error message on the checkbox;
manavagr1108 Apr 25, 2023
6dfeae9
Merge pull request #4036 from marcellamaki/immediate-save-all-no-reso…
bjester Apr 25, 2023
fed64bc
- [update]: test for disable continue button;
manavagr1108 Apr 25, 2023
8b88e7c
- [lint]: lint fixes;
manavagr1108 Apr 25, 2023
6a90478
Merge pull request #4038 from manavagr1108/disable-continue-button-on…
akolson Apr 25, 2023
48bc118
Fix order of exercies
Pursottam6003 Apr 26, 2023
437e077
Merge pull request #4037 from bjester/post-migrate
bjester Apr 26, 2023
edcc696
Basic integration of updated kolibri-tools.
rtibbles May 3, 2023
cf053b6
updates
pcenov Nov 17, 2022
2266a8e
more updates
pcenov Dec 1, 2022
39a4e0f
additional changes and corrections
marcellamaki May 3, 2023
9ddef8f
corrections and updates
pcenov Dec 12, 2022
dbb5a63
Update auto-formatting of JS files.
rtibbles May 3, 2023
e5a4ad0
Bump axios from 1.2.0 to 1.4.0
dependabot[bot] May 3, 2023
3e6aa0e
Fix order of exercies
Pursottam6003 Apr 26, 2023
d9342c7
updated the generatejsconstantfiles.py for auto generating order of o…
Pursottam6003 May 3, 2023
aac5c50
Merge branch 'fixorder' of github.com:pursottam6003/studio into fixorder
Pursottam6003 May 3, 2023
b27645f
Merge pull request #4048 from learningequality/dependabot/npm_and_yar…
rtibbles May 4, 2023
d82d165
Merge pull request #4039 from Pursottam6003/fixorder
rtibbles May 4, 2023
898477f
Merge pull request #3978 from learningequality/dependabot/pip/werkzeu…
rtibbles May 4, 2023
c9c12a8
Update dependabot.yml
rtibbles May 4, 2023
dc8e742
Update copy to filter node modifications to allowed fields.
rtibbles Mar 26, 2023
e7926d5
Show completion and duration in the side panel
MisRob Apr 18, 2023
74162ca
Use constant
MisRob May 4, 2023
ba6a82c
migrate python-kms according to docs
ozer550 Apr 11, 2023
4ce10b3
Replace dependency with one more well-maintained and already included
bjester May 4, 2023
ee2d497
Update dev requirements
bjester May 4, 2023
f440f74
Merge pull request #4049 from learningequality/dependabot-config
bjester May 4, 2023
64a0b17
Bump actions/setup-python from 2 to 4
dependabot[bot] May 4, 2023
69318e1
Bump actions/setup-node from 1 to 3
dependabot[bot] May 4, 2023
a031c45
Bump actions/cache from 2 to 3
dependabot[bot] May 4, 2023
59e07c2
Bump papaparse from 5.3.2 to 5.4.1
dependabot[bot] May 4, 2023
5fd8eb9
Merge pull request #4052 from learningequality/dependabot/github_acti…
rtibbles May 4, 2023
71e7a5e
Merge pull request #4053 from learningequality/dependabot/github_acti…
rtibbles May 4, 2023
f935935
Merge pull request #4056 from learningequality/dependabot/npm_and_yar…
rtibbles May 4, 2023
31eda70
Bump actions/checkout from 2 to 3
dependabot[bot] May 4, 2023
5452ac8
Merge pull request #4046 from marcellamaki/gh-corrections
radinamatic May 4, 2023
ab1518f
Merge pull request #4054 from learningequality/dependabot/github_acti…
rtibbles May 4, 2023
271f566
Merge pull request #4055 from learningequality/dependabot/github_acti…
rtibbles May 4, 2023
37435ef
Factor in language when counting distinct content items
jamalex May 4, 2023
e888611
Merge pull request #4057 from learningequality/jamalex-patch-1
bjester May 4, 2023
fd9f45d
Merge pull request #4045 from rtibbles/crowdinv2_integration
rtibbles May 4, 2023
e6886bc
Add ability to clone existing resource nodes using ricecooker.
rtibbles Mar 26, 2023
0f5efce
Bump broadcast-channel from 4.17.0 to 5.1.0
dependabot[bot] May 5, 2023
aed6bcd
Merge pull request #4058 from learningequality/dependabot/npm_and_yar…
rtibbles May 5, 2023
6a82930
Cleanup strings
MisRob May 4, 2023
d5c41c6
Add strings for error messages
MisRob May 5, 2023
85e5ea2
Strings for handling of copy failures
vkWeb May 5, 2023
86726c7
Disable linting for unused strings
vkWeb May 5, 2023
32847f3
Merge pull request #4061 from vkWeb/strings-for-copy-fail
bjester May 5, 2023
2c2d876
Bump vue-router from 3.5.4 to 3.6.5
dependabot[bot] May 8, 2023
1797ae1
Merge pull request #4059 from MisRob/fix-missing-completion
marcellamaki May 8, 2023
7f08e01
Revise some strings
bjester May 8, 2023
2a28312
Revise some strings
bjester May 8, 2023
ea9bbe8
Merge pull request #4064 from bjester/about-strings
marcellamaki May 8, 2023
c8c96ad
update makemessages & transfercontext scripts to use kolibri-tools CLI
nucleogenesis May 8, 2023
6abbbba
Merge pull request #4065 from nucleogenesis/bug--kolibri-tools-i18n-c…
bjester May 8, 2023
7af004e
Merge pull request #4019 from ozer550/UPDATE_PYTHON_KMS
bjester May 10, 2023
5cd7d80
Updates for string freeze, pre-translation
marcellamaki May 10, 2023
1e27f83
Adjust wording for missing required information on resource
marcellamaki May 10, 2023
ec54f82
Merge pull request #4069 from marcellamaki/string-updates
marcellamaki May 10, 2023
04ab11e
String extractions and extraction fixes
bjester May 9, 2023
49544d3
Ignore some backend strings for translation
bjester May 10, 2023
5eaa4af
Merge pull request #4050 from rtibbles/i_think_im_a_clone_now
bjester May 11, 2023
a3e1e11
Additional extraction fixes and extraction after audit
bjester May 11, 2023
cfb4e6b
Merge branch 'hotfixes' into md2unstable
bjester May 11, 2023
774b59b
Fix migration ordering
bjester May 11, 2023
0c7a880
Merge pull request #4066 from bjester/strextract
rtibbles May 11, 2023
0acfc37
Merge pull request #4062 from learningequality/dependabot/npm_and_yar…
rtibbles May 12, 2023
7b448a9
corrections and imporvements
pcenov May 19, 2023
38a08fd
minor corrections and organizing the features into folders to keep th…
pcenov May 22, 2023
d18de67
Committing result of make i18n-download
bjester May 24, 2023
6045a80
Merge pull request #4095 from bjester/upcoming-release-translations
bjester May 24, 2023
68ccd4b
Merge pull request #4084 from pcenov/gh-corrections-may
radinamatic May 25, 2023
74c2471
Ignore change event data in database export/init.sql
bjester May 25, 2023
ef3ddcd
Merge pull request #4097 from bjester/change-pk
bjester May 25, 2023
b1ce4ed
Bump qs from 6.11.0 to 6.11.2
dependabot[bot] May 26, 2023
a4cdf4f
Merge pull request #4071 from bjester/md2unstable
bjester May 30, 2023
b53ecc9
Add more sentry logging for sync errors.
rtibbles Apr 28, 2023
d6ab54c
Catch the entire syncChanges function.
rtibbles May 4, 2023
abeabb7
Update put method to add method to make creates explicit.
rtibbles May 7, 2023
c89ba35
Add Change classes to encapsulate and handle setting changes on the c…
rtibbles May 8, 2023
7feb5bf
Update syncChanges logic to handle queueing per tab.
rtibbles May 10, 2023
454bb23
Update forceServerSync to still attempt to sync all unsynced changes.
rtibbles May 10, 2023
fdded78
Link up change objects to the resource layer.
rtibbles May 10, 2023
3dd6ca3
Remove use of leader election. Do background polling only when docume…
rtibbles May 10, 2023
cd49812
Use serviceWorker during development.
rtibbles May 10, 2023
ce0bf14
Prevent circular dependencies. Use reactive watch to trigger queueing.
rtibbles May 10, 2023
6de69b9
Change updatedChanges to handle an object of changes, not the changed…
rtibbles May 10, 2023
e85491a
Include CHANGES_TABLE in transaction.
rtibbles May 10, 2023
8ec4840
Properly handle channel_id and user_id setting on changes.
rtibbles May 12, 2023
a73100b
Ensure key is not null.
rtibbles May 25, 2023
17ec8ff
Make the service worker serving handle no webpack devserver in debug …
rtibbles May 25, 2023
533b293
Make resolve/reject stack more comprehensible.
rtibbles May 25, 2023
58c09a6
Add in saving of the source to the change object.
rtibbles May 25, 2023
f64e6de
Update change tracker to only track changes from this client/tab.
rtibbles May 25, 2023
c0e34e4
Remove use of IGNORED_SOURCE as we are no longer syncing change events
rtibbles May 25, 2023
78e32c3
Update assessment item handling for change updates.
rtibbles May 30, 2023
05fccf0
Fix issues with copying.
rtibbles May 30, 2023
1b56d9b
Fixes loading issue
akolson May 31, 2023
8083124
Updates comments
akolson May 31, 2023
743364c
Merge pull request #4070 from rtibbles/where_is_my_mind
bjester May 31, 2023
484dca9
Merge pull request #4099 from akolson/continuous-spinner-loading
bjester May 31, 2023
a41fc31
Merge pull request #4098 from learningequality/dependabot/npm_and_yar…
rtibbles May 31, 2023
c07d3bb
Bump stylus-loader from 7.1.0 to 7.1.2
dependabot[bot] Jun 1, 2023
72de2db
Update webpack for proper RTL build, using a placeholder module
marcellamaki Jun 2, 2023
e35adaa
Merge pull request #4002 from learningequality/unstable
bjester Jun 5, 2023
36ea352
Move location of placeholder file. add explanatory comments about pla…
marcellamaki Jun 5, 2023
d3a0144
Use an instantiated vue object to reference $watch from for ESM compa…
rtibbles Jun 5, 2023
cfa7193
Update Kolibri public channel export to kolibri_public to be more rob…
rtibbles Jun 5, 2023
799afad
Merge pull request #4106 from marcellamaki/fix-rtl
rtibbles Jun 5, 2023
70a91d1
Merge pull request #4105 from learningequality/dependabot/npm_and_yar…
rtibbles Jun 5, 2023
1b4361e
Merge pull request #4108 from rtibbles/vue_runtime
bjester Jun 5, 2023
dc3ff63
Add export_channels_to_kolibri_public to deploy-migrate
rtibbles Jun 5, 2023
fbb29da
Bump i18n-iso-countries from 7.5.0 to 7.6.0
dependabot[bot] Jun 6, 2023
ac0eb8b
Merge pull request #4109 from rtibbles/public_api_channels
bjester Jun 7, 2023
55e6433
Bump python-dateutil from 2.8.1 to 2.8.2
dependabot[bot] Jun 9, 2023
fe1efe3
Merge pull request #4120 from learningequality/dependabot/pip/python-…
rtibbles Jun 9, 2023
bc9aece
Merge pull request #4110 from learningequality/dependabot/npm_and_yar…
rtibbles Jun 9, 2023
37edea4
Update webpack (again) to ensure devserver doesn't break
marcellamaki Jun 8, 2023
aa5a2cf
Merge pull request #4119 from marcellamaki/fix-rtl
rtibbles Jun 9, 2023
324a748
Bump django from 3.2.18 to 3.2.19
dependabot[bot] Jun 9, 2023
c11b287
Merge pull request #4122 from learningequality/dependabot/pip/django-…
rtibbles Jun 9, 2023
a2a445e
Switch unsynced change monitoring to a liveQuery to further remove De…
rtibbles Jun 9, 2023
6960803
Remove resource based listeners in favour of liveQuery.
rtibbles Jun 9, 2023
d938893
Adds a basic global saving indicator to the channel edit page.
rtibbles Jun 9, 2023
91e8a5c
Handle side-loading node data separate APIs
bjester Jun 13, 2023
aa304a8
Remove console.log
bjester Jun 13, 2023
eb5fd8c
Merge pull request #4137 from bjester/import-search-load
rtibbles Jun 13, 2023
d6ed795
Catch any and all errors in exporting channels.
rtibbles Jun 13, 2023
07b9d21
Merge pull request #4139 from rtibbles/public_api_channels_catch_all_…
bjester Jun 13, 2023
57e9564
Proper updating of resource counts when a change occurs
bjester Jun 6, 2023
07d3af9
Fix duplicate coach content icon for resources
bjester Jun 6, 2023
1f54353
Fix affected tests for aggregate counts
bjester Jun 6, 2023
2cbb3f9
Keep applying remote changes in the same lock as sync for now
bjester Jun 13, 2023
fd90b26
Track client support for web locks API
bjester Jun 13, 2023
49aa5b0
Add cleanup behaviour for global subscriptions.
rtibbles Jun 13, 2023
23ae252
Only show saving indicator when not offline.
rtibbles Jun 13, 2023
115a0e6
Merge pull request #4126 from rtibbles/display_sync_changes
marcellamaki Jun 13, 2023
38d8733
Add regression test and fix for double JSONed options.
rtibbles Jun 14, 2023
c79e2e1
Merge pull request #4146 from rtibbles/no_string_json
bjester Jun 16, 2023
fc2253b
Merge pull request #4113 from bjester/take2-count-counts
rtibbles Jun 16, 2023
56af7d2
Fixes incorrect folder order/layout for folders with long titles
LianaHarris360 Jun 19, 2023
8478e0c
Linting fixes
LianaHarris360 Jun 19, 2023
2ecd7c6
Streamlines use of oldObj.parent
akolson Jun 16, 2023
f5f61b9
Merge pull request #4152 from LianaHarris360/incorrect-folder-order
LianaHarris360 Jun 20, 2023
7efe06a
Merge pull request #4149 from akolson/fix-undo-button
bjester Jun 20, 2023
433e2a9
Fix issues when options is an object, not JSON string
bjester Jun 14, 2023
fd6ef23
Change page size options and default; enforce page size
bjester Jun 14, 2023
e5ca5c9
Hacks for unloaded nodes just in case
bjester Jun 14, 2023
fe3d866
Only load published nodes in channel browsing
bjester Jun 14, 2023
ee69483
Tweaks to import search public api usage
bjester Jun 19, 2023
1f0523c
Update tests to prevent strings in JSON.
rtibbles Jun 20, 2023
c79d3f2
Fix previewing exercises in import search
bjester Jun 20, 2023
7a16e1d
Further reduce default page size
bjester Jun 20, 2023
7700c2d
Defensive check on mastery_model JSON
bjester Jun 20, 2023
9ea9cdf
Prevent mapping of tags over 30 chars
bjester Jun 19, 2023
5a23182
Configure channel builder to optionally add bad data
bjester Jun 20, 2023
2eece7e
Allow export command to be run without channel existing locally
bjester Jun 20, 2023
a04539e
Prevent publishing from modifying published options.
rtibbles Jun 20, 2023
63693d3
Don't allow adding nodes to non-topics
bjester Jun 20, 2023
b995463
Merge pull request #4153 from bjester/public-api-migration
rtibbles Jun 20, 2023
bcabc71
Merge pull request #4158 from rtibbles/more_no_string_json
bjester Jun 20, 2023
da46564
Merge pull request #4156 from bjester/fix-json-issue-2
bjester Jun 21, 2023
b90feb7
Skip exercises with missing or broken mastery criteria
bjester Jun 23, 2023
dfd6536
Update change tracker to re-raise; update copy operation to log excep…
bjester Jun 23, 2023
5525b86
Fix broken 'Go to location' link
bjester Jun 23, 2023
3084d31
Merge pull request #4175 from bjester/go-to-location
bjester Jun 26, 2023
730c973
Add ancestor annotation to kolibri_public export mapper.
rtibbles Jun 26, 2023
8a80874
Merge pull request #4178 from rtibbles/ancestor_annotation
bjester Jun 29, 2023
893525e
Merge pull request #4174 from bjester/publish-errors
bjester Jun 29, 2023
87e988a
Refactor the default completion and duration content completion optio…
marcellamaki Jul 2, 2023
b6e295f
Add tests, PR feedback
marcellamaki Jul 3, 2023
a47d924
remove stray logs
marcellamaki Jul 4, 2023
3155ca9
Merge pull request #4182 from marcellamaki/incomplete-completion-meta…
marcellamaki Jul 4, 2023
b16dd11
Merge branch 'master' into hotfixes
bjester Jul 5, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions .docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## What is this directory?
This directory is a space for mounting directories to docker containers, allowing the mounts to be specified in committed code, but the contents of the mounts to remain ignored by git.

### postgres
The `postgres` directory is mounted to `/docker-entrypoint-initdb.d`. Any `.sh` or `.sql` files will be executed when the container is first started with a new data volume. You may read more regarding this functionality on the [Docker Hub page](https://hub.docker.com/_/postgres), under _Initialization scripts_.

When running docker services through the Makefile commands, it specifies a docker-compose project name that depends on the name of the current git branch. This causes the volumes to change when the branch changes, which is helpful when switching between many branches that might have incompatible database schema changes. The downside is that whenever you start a new branch, you'll have to re-initialize the database again, like with `yarn run devsetup`. Creating a SQL dump from an existing, initialized database and placing it in this directory will allow you to skip this step.

To create a SQL dump of your preferred database data useful for local testing, run `make .docker/postgres/init.sql` while the docker postgres container is running.

> Note: you will likely need to run `make migrate` to ensure your database schema is up-to-date when using this technique.

#### pgpass
Stores the postgres authentication for the docker service for scripting access without manually providing a password, created by `make .docker/pgpass`

### minio
The `minio` directory is mounted to `/data`, since it isn't necessarily useful to have this data isolated based off the current git branch.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
root = true

[*]
max_line_length = 100

[*.js]
indent_size = 2

Expand Down
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,18 @@ updates:
directory: "/"
schedule:
interval: "daily"
time: "00:00"

# Maintain dependencies for Javascript
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
time: "00:00"

# Maintain dependencies for Github Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
time: "00:00"
16 changes: 8 additions & 8 deletions .github/workflows/deploytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ jobs:
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Cache Node.js modules
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }}
Expand All @@ -51,13 +51,13 @@ jobs:
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: pip cache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pyprod-${{ hashFiles('requirements.txt') }}
Expand All @@ -69,11 +69,11 @@ jobs:
pip install pip-tools
pip-sync requirements.txt
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Cache Node.js modules
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/frontendlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ jobs:
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Cache Node.js modules
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/frontendtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ jobs:
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Cache Node.js modules
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: '**/node_modules'
key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pythontest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
# Maps port 6379 on service container to the host
- 6379:6379
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up minio
run: |
docker run -d -p 9000:9000 --name minio \
Expand All @@ -71,11 +71,11 @@ jobs:
-v /tmp/minio_config:/root/.minio \
minio/minio server /data
- name: Set up Python 3.9
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: pip cache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pytest-${{ hashFiles('requirements.txt', 'requirements-dev.txt') }}
Expand Down
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ var/
# IntelliJ IDE, except project config
.idea/*
!.idea/studio.iml
# ignore future updates to run configuration
.run/devserver.run.xml

# PyInstaller
# Usually these files are written by a python script from a template
Expand Down Expand Up @@ -95,8 +97,11 @@ contentcuration/csvs/
# Ignore the TAGS file generated by some editors
TAGS

# Ignore Vagrant-created files
/.vagrant/
# Services
.vagrant/
.docker/minio/*
.docker/postgres/*
.docker/pgpass

# Ignore test files
/contentcuration/contentcuration/proxy_settings.py
Expand Down
24 changes: 24 additions & 0 deletions .run/devserver.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="devserver" type="PythonConfigurationType" factoryName="Python">
<module name="studio" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="$ModuleSdkPath$" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="false" />
<option name="ADD_SOURCE_ROOTS" value="false" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="contentcuration/manage.py" />
<option name="PARAMETERS" value="runserver --settings=contentcuration.dev_settings 0.0.0.0:8080" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>
101 changes: 65 additions & 36 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# standalone install method
DOCKER_COMPOSE = docker-compose

# support new plugin installation for docker-compose
ifeq (, $(shell which docker-compose))
DOCKER_COMPOSE = docker compose
endif

###############################################################
# PRODUCTION COMMANDS #########################################
###############################################################
Expand All @@ -20,6 +28,18 @@ migrate:
python contentcuration/manage.py migrate || true
python contentcuration/manage.py loadconstants

# This is a special command that is we'll reuse to run data migrations outside of the normal
# django migration process. This is useful for long running migrations which we don't want to block
# the CD build. Do not delete!
# Procedure:
# 1) Add a new management command for the migration
# 2) Call it here
# 3) Perform the release
# 4) Remove the management command from this `deploy-migrate` recipe
# 5) Repeat!
deploy-migrate:
python contentcuration/manage.py export_channels_to_kolibri_public

contentnodegc:
python contentcuration/manage.py garbage_collect

Expand All @@ -31,7 +51,11 @@ learningactivities:

set-tsvectors:
python contentcuration/manage.py set_channel_tsvectors
python contentcuration/manage.py set_contentnode_tsvectors
python contentcuration/manage.py set_contentnode_tsvectors --published

reconcile:
python contentcuration/manage.py reconcile_publishing_status
python contentcuration/manage.py reconcile_change_tasks

###############################################################
# END PRODUCTION COMMANDS #####################################
Expand All @@ -53,10 +77,10 @@ i18n-extract: i18n-extract-frontend i18n-extract-backend
i18n-transfer-context:
yarn transfercontext

#i18n-django-compilemessages:
# Change working directory to kolibri/ such that compilemessages
i18n-django-compilemessages:
# Change working directory to contentcuration/ such that compilemessages
# finds only the .po files nested there.
#cd kolibri && PYTHONPATH="..:$$PYTHONPATH" python -m kolibri manage compilemessages
cd contentcuration && python manage.py compilemessages

i18n-upload: i18n-extract
python node_modules/kolibri-tools/lib/i18n/crowdin.py upload-sources ${branch}
Expand All @@ -67,27 +91,15 @@ i18n-pretranslate:
i18n-pretranslate-approve-all:
python node_modules/kolibri-tools/lib/i18n/crowdin.py pretranslate ${branch} --approve-all

i18n-convert:
python node_modules/kolibri-tools/lib/i18n/crowdin.py convert-files

i18n-download-translations:
python node_modules/kolibri-tools/lib/i18n/crowdin.py rebuild-translations ${branch}
python node_modules/kolibri-tools/lib/i18n/crowdin.py download-translations ${branch}
node node_modules/kolibri-tools/lib/i18n/intl_code_gen.js
python node_modules/kolibri-tools/lib/i18n/crowdin.py convert-files
# TODO: is this necessary? # Manual hack to add es language by copying es_ES to es
# cp -r contentcuration/locale/es_ES contentcuration/locale/es
yarn exec kolibri-tools i18n-code-gen -- --output-dir ./contentcuration/contentcuration/frontend/shared/i18n
$(MAKE) i18n-django-compilemessages
yarn exec kolibri-tools i18n-create-message-files -- --namespace contentcuration --searchPath ./contentcuration/contentcuration/frontend

i18n-download: i18n-download-translations

i18n-update:
echo "WARNING: i18n-update has been renamed to i18n-download"
$(MAKE) i18n-download
echo "WARNING: i18n-update has been renamed to i18n-download"

i18n-stats:
python node_modules/kolibri-tools/lib/i18n/crowdin.py translation-stats ${branch}

i18n-download-glossary:
python node_modules/kolibri-tools/lib/i18n/crowdin.py download-glossary

Expand Down Expand Up @@ -126,9 +138,9 @@ hascaptions:

export COMPOSE_PROJECT_NAME=studio_$(shell git rev-parse --abbrev-ref HEAD)

purge-postgres:
-PGPASSWORD=kolibri dropdb -U learningequality "kolibri-studio" --port 5432 -h localhost
PGPASSWORD=kolibri createdb -U learningequality "kolibri-studio" --port 5432 -h localhost
purge-postgres: .docker/pgpass
-PGPASSFILE=.docker/pgpass dropdb -U learningequality "kolibri-studio" --port 5432 -h localhost
PGPASSFILE=.docker/pgpass createdb -U learningequality "kolibri-studio" --port 5432 -h localhost

destroy-and-recreate-database: purge-postgres setup

Expand All @@ -138,39 +150,56 @@ devceleryworkers:
run-services:
$(MAKE) -j 2 dcservicesup devceleryworkers

.docker/minio:
mkdir -p $@

.docker/postgres:
mkdir -p $@

.docker/pgpass:
echo "localhost:5432:kolibri-studio:learningequality:kolibri" > $@
chmod 600 $@

.docker/postgres/init.sql: .docker/pgpass
# assumes postgres is running in a docker container
PGPASSFILE=.docker/pgpass pg_dump --host localhost --port 5432 --username learningequality --dbname "kolibri-studio" --exclude-table-data=contentcuration_change --file $@

dcbuild:
# build all studio docker image and all dependent services using docker-compose
docker-compose build
$(DOCKER_COMPOSE) build

dcup:
dcup: .docker/minio .docker/postgres
# run all services except for cloudprober
docker-compose up studio-app celery-worker
$(DOCKER_COMPOSE) up studio-app celery-worker

dcup-cloudprober:
dcup-cloudprober: .docker/minio .docker/postgres
# run all services including cloudprober
docker-compose up
$(DOCKER_COMPOSE) up

dcdown:
# run make deverver in foreground with all dependent services using docker-compose
docker-compose down
# run make deverver in foreground with all dependent services using $(DOCKER_COMPOSE)
$(DOCKER_COMPOSE) down

dcclean:
# stop all containers and delete volumes
docker-compose down -v
$(DOCKER_COMPOSE) down -v
docker image prune -f

dcshell:
# bash shell inside the (running!) studio-app container
docker-compose exec studio-app /usr/bin/fish
$(DOCKER_COMPOSE) exec studio-app /usr/bin/fish

dcpsql: .docker/pgpass
PGPASSFILE=.docker/pgpass psql --host localhost --port 5432 --username learningequality --dbname "kolibri-studio"

dctest:
dctest: .docker/minio .docker/postgres
# run backend tests inside docker, in new instances
docker-compose run studio-app make test
$(DOCKER_COMPOSE) run studio-app make test

dcservicesup:
dcservicesup: .docker/minio .docker/postgres
# launch all studio's dependent services using docker-compose
docker-compose -f docker-compose.yml -f docker-compose.alt.yml up minio postgres redis
$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.alt.yml up minio postgres redis

dcservicesdown:
# stop services that were started using dcservicesup
docker-compose -f docker-compose.yml -f docker-compose.alt.yml down
$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.alt.yml down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ export LDFLAGS="-L/opt/homebrew/opt/openssl/lib"
```

### Install frontend dependencies
Install the version of node.js supported by Studio, and install `yarn`:
Install the version of node.js supported by Studio, and install `yarn` version 1.x:
```bash
volta install node@16
volta install yarn
volta install yarn@1
```
After installing `yarn`, you may now install frontend dependencies:
```bash
Expand Down
Loading