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 0.30.7 #2085

Closed
wants to merge 20 commits into from
Closed

Release 0.30.7 #2085

wants to merge 20 commits into from

Conversation

odlbot
Copy link
Contributor

@odlbot odlbot commented Feb 28, 2025

Chris Chudzicki

Nathan Levesque

Shankar Ambady

Matt Bertrand

Arslan Ashraf

renovate[bot]

renovate bot and others added 20 commits February 24, 2025 10:22
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Update dependency @mui/lab to v6.0.0-beta.28

* update lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: shankar ambady <[email protected]>
* Update dependency @sentry/nextjs to v9

* update lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: shankar ambady <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Update dependency @dnd-kit/sortable to v10

* updating lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: shankar ambady <[email protected]>
* workaround for mui select focusVisible issue

tmp

* use legend for checkboxfield overall description

* make focus outlines a bit more visible

* add a comment about the typecasting
* Fix SCIM view tests

* Fix user migrations for scim fields
* add MITOL_LOGOUT_SUFFIX to github actions

* add dockerfile build arg

* fix typo
* switch to using next_run

* adding test

* adding fallback for missing next runs

* adding test

* checking published

* fixing test flakiness
* serialize contentfiles like we do with learning resources

* fixing contentfile serialization

* optimize loop and data fetch

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fixing n+1 queries

* adding block id to embedded metadata

* adding block id as filter parameter

* regenerate spec

* fixing test:

* some consolidation

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* make LinkAdapter use shallow

* tie AskTim to drawer query param

* display syllabus chat based on query param
Copy link

gitguardian bot commented Feb 28, 2025

⚠️ GitGuardian has uncovered 5 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
13777606 Triggered Generic Private Key 131c04e config/keycloak/tls/tls.key.default View secret
13777608 Triggered Generic High Entropy Secret 131c04e config/keycloak/realms/default-realm.json View secret
13777609 Triggered Generic Password 131c04e config/keycloak/realms/default-realm.json View secret
13777610 Triggered Generic High Entropy Secret 131c04e config/keycloak/realms/default-realm.json View secret
10259317 Triggered Generic Password 131c04e docker-compose.services.yml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @odlbot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

This pull request releases version 0.30.7, incorporating a variety of fixes, updates, and new features. Key changes include updates to GitHub Actions workflows, dependency updates, SCIM-related fixes, APISIX integration, and accessibility improvements. The changes span multiple files, including workflow configurations, Dockerfiles, pre-commit settings, and documentation.

Highlights

  • GitHub Actions Updates: Updates the akhileshns/heroku-deploy action digest and adds MITOL_API_LOGOUT_SUFFIX to production and release candidate workflows.
  • Dependency Updates: Updates several dependencies, including @dnd-kit/sortable, @sentry/nextjs, @mui/lab, and tldextract.
  • SCIM Fixes: Addresses issues related to user search URL, user migrations, SCIM view tests, SCIM fields in User, and SCIM search API sort and pagination.
  • APISIX Integration: Introduces APISIX integration with Keycloak for authentication, including configuration files and documentation.
  • Accessibility Improvements: Addresses accessibility concerns, specifically focus outlines on the Dashboard page.

Changelog

Click here to see the changelog
  • .github/workflows/production.yml
    • Updates the heroku-deploy action to use the latest digest.
    • Adds MITOL_API_LOGOUT_SUFFIX to the environment variables.
    • Adds comma between build args
  • .github/workflows/release-candidate.yml
    • Updates the heroku-deploy action to use the latest digest.
    • Adds MITOL_API_LOGOUT_SUFFIX to the environment variables.
    • Adds comma between build args
  • .pre-commit-config.yaml
    • Excludes keycloak TLS and realm configuration files from pre-commit checks.
  • .secrets.baseline
    • Excludes keycloak TLS files from secret scanning.
  • Dockerfile
    • Changes mkdir to mkdir -p to ensure staticfiles directory exists.
  • Dockerfile-litellm
    • Removes the Dockerfile-litellm file.
  • README-keycloak.md
    • Adds documentation for Keycloak and APISIX integration, including default settings and instructions for making it work.
  • RELEASE.rst
    • Adds release notes for version 0.30.7, summarizing the changes included in this release.
  • config/apisix/apisix.yaml
    • Adds configuration for APISIX routes, including openid-connect plugin settings.
  • config/apisix/config.yaml
    • Configures APISIX settings, such as disabling the admin interface and setting the node listen port.
  • config/apisix/debug.yaml
    • Adds debug configuration for APISIX.
  • config/keycloak/providers/README.md
    • Adds a README file for the keycloak providers directory.
  • config/keycloak/realms/default-realm.json
    • Adds a default realm configuration for Keycloak, including users, roles, and client settings.
  • config/keycloak/tls/README.md
    • Adds a README file for the keycloak TLS directory, providing instructions for configuring TLS certificates.
  • config/keycloak/tls/tls.crt
    • Adds a default TLS certificate file.
  • config/keycloak/tls/tls.crt.default
    • Adds a default TLS certificate file.
  • config/keycloak/tls/tls.key
    • Adds a default TLS key file.
  • config/keycloak/tls/tls.key.default
    • Adds a default TLS key file.
  • config/litellm_config.yml
    • Removes the config/litellm_config.yml file.
  • config/postgres/init-keycloak.sql
    • Adds SQL script to create the keycloak database and grant privileges.
  • docker-compose.litellm.yml
    • Removes the docker-compose.litellm.yml file.
  • docker-compose.opensearch.base.yml
    • Disables SVE (Scalable Vector Extension) for ARM64 architecture in OpenSearch container.
  • docker-compose.services.yml
    • Adds a volume mount for postgres init db scripts
    • Removes restart policy for qdrant service
    • Adds keycloak and apigateway services with their configurations and dependencies.
    • Adds keycloak-store volume.
  • docker-compose.yml
    • Adds env_file to docker-compose.yml
  • env/backend.env
    • Changes MITOL_COOKIE_NAME from discussions to mitlearn.
  • env/backend.local.example.env
    • Adds APISIX/Keycloak settings to the example environment file.
  • env/frontend.env
    • Adds NEXT_PUBLIC_MITOL_API_LOGOUT_SUFFIX to the environment variables.
  • env/shared.env
    • Adds MITOL_API_LOGOUT_SUFFIX and comments on how to configure with apisix and keycloak
    • Adds NGINX_PORT, APISIX_PORT, KEYCLOAK_PORT, and KEYCLOAK_SSL_PORT to the environment variables.
  • env/shared.local.example.env
    • Adds MITOL_NEW_USER_LOGIN_URL to the example environment file.
  • frontends/api/src/generated/v0/api.ts
    • Adds edx_block_id as a parameter to the VectorContentFilesSearchApi.
  • frontends/main/Dockerfile.web
    • Adds NEXT_PUBLIC_MITOL_API_LOGOUT_SUFFIX to the environment variables.
  • frontends/main/package.json
    • Updates @sentry/nextjs dependency to version 9.0.0.
  • frontends/main/src/app-pages/ChatPage/ChatPage.tsx
    • Adds credentials: include to the fetch request.
  • frontends/main/src/app-pages/ChatSyllabusPage/ChatSyllabusPage.tsx
    • Adds credentials: include to the fetch request.
  • frontends/main/src/app-pages/DashboardPage/DashboardPage.tsx
    • Adds focus-visible styling to the TabsContainer.
  • frontends/main/src/common/metadata.ts
    • Updates import to use RESOURCE_DRAWER_PARAMS instead of RESOURCE_DRAWER_QUERY_PARAM.
  • frontends/main/src/common/urls.ts
    • Adds MITOL_API_LOGOUT_SUFFIX to the environment variables.
    • Updates LOGOUT to use MITOL_API_LOGOUT_SUFFIX.
    • Adds RECOMMENDER_QUERY_PARAM and RESOURCE_DRAWER_PARAMS constants.
  • frontends/main/src/page-components/AiChat/AiChatWithEntryScreen.tsx
    • Adds data-testid to the AiChat entry screen.
  • frontends/main/src/page-components/AiChat/AiRecommendationBotDrawer.tsx
    • Refactors AiRecommendationBotDrawer to use RoutedDrawer and DrawerContent components.
    • Adds credentials: include to the fetch request.
  • frontends/main/src/page-components/AiChat/AskTimDrawerButton.test.tsx
    • Adds tests for AskTIMButton component.
  • frontends/main/src/page-components/AiChat/AskTimDrawerButton.tsx
    • Refactors AskTIMButton to use ButtonLink and update URL parameters.
  • frontends/main/src/page-components/LearningResourceDrawer/LearningResourceDrawer.test.tsx
    • Adds tests for LearningResourceDrawer component, including chat functionality.
  • frontends/main/src/page-components/LearningResourceDrawer/LearningResourceDrawer.tsx
    • Updates LearningResourceDrawer to use RoutedDrawer and DrawerContent components.
    • Adds chatExpanded prop to DrawerContent component.
    • Removes the use of RESOURCE_DRAWER_QUERY_PARAM and uses RESOURCE_DRAWER_PARAMS instead
  • frontends/main/src/page-components/LearningResourceDrawer/useResourceDrawerHref.ts
    • Updates useResourceDrawerHref to use RESOURCE_DRAWER_PARAMS instead of RESOURCE_DRAWER_QUERY_PARAM.
  • frontends/main/src/page-components/LearningResourceExpanded/AiChatSyllabusSlideDown.test.tsx
    • Adds open prop to AiChatSyllabusSlideDown component in tests.
  • frontends/main/src/page-components/LearningResourceExpanded/AiChatSyllabusSlideDown.tsx
    • Removes useState and toggleOpen from AiChatSyllabusSlideDown component.
    • Adds aria-pressed to the styled button
    • Adds credentials: include to the fetch request.
  • frontends/main/src/page-components/LearningResourceExpanded/LearningResourceExpanded.test.tsx
    • Adds chatExpanded prop to setup function and tests.
  • frontends/main/src/page-components/LearningResourceExpanded/LearningResourceExpanded.tsx
    • Removes useToggle hook.
    • Adds chatExpanded prop and useEffect hook to handle chat functionality.
    • Updates AiSyllabusBotSlideDown component to use open and onToggleOpen props.
  • frontends/main/src/page-components/ResourceCard/ResourceCard.test.tsx
    • Updates tests to use RESOURCE_DRAWER_PARAMS instead of RESOURCE_DRAWER_QUERY_PARAM.
  • frontends/ol-components/package.json
    • Updates @dnd-kit/sortable and @mui/lab dependencies.
  • frontends/ol-components/src/components/Checkbox/Checkbox.tsx
    • Adds focus-visible styling to the checkbox input.
  • frontends/ol-components/src/components/Checkbox/CheckboxChoiceField.tsx
    • Fixes type error with FormLabel and sets component to legend for accessibility
  • frontends/ol-components/src/components/Link/Link.tsx
    • Refactors Link component to use LinkAdapter and improve shallow routing.
  • frontends/ol-components/src/components/LinkAdapter/LinkAdapter.tsx
    • Creates a LinkAdapter component to handle shallow routing.
  • frontends/ol-components/src/components/RoutedDrawer/RoutedDrawer.tsx
    • Adds documentation for RoutedDrawer component.
  • frontends/ol-components/src/components/SelectField/SelectField.test.tsx
    • Adds tests for Select component.
  • frontends/ol-components/src/components/SelectField/SelectField.tsx
    • Adds workaround for MUI SelectField accessibility issue.
  • frontends/ol-components/src/components/SimpleSelect/SimpleSelect.tsx
    • Removes unnecessary MenuItem from SimpleSelectField component.
  • frontends/ol-components/src/components/ThemeProvider/ThemeProvider.tsx
    • Updates ThemeProvider to use LinkAdapter.
  • frontends/ol-utilities/package.json
    • Updates @dnd-kit/sortable dependency.
  • learning_resources/models.py
    • Adds select_related and prefetch_related to the for_serialization method
  • main/factories.py
    • Adds scim_external_id and scim_username to the UserFactory.
  • main/middleware/apisix_user.py
    • Adds ApisixUserMiddleware to handle APISIX-specific headers.
  • main/middleware/apisix_user_test.py
    • Adds tests for apisix middleware.
  • main/settings.py
    • Updates VERSION to 0.30.7.
    • Adds ApisixUserMiddleware to MIDDLEWARE.
    • Adds Keycloak API settings and imports
  • openapi/specs/v0.yaml
    • Adds edx_block_id as a parameter to the VectorContentFilesSearch API.
  • poetry.lock
    • Updates dependencies in poetry.lock.
  • profiles/admin.py
    • Removes scim_id, scim_username, and scim_external_id from the readonly_fields in ProfileAdmin.
  • profiles/forms.py
    • Removes scim_id, scim_username, and scim_external_id from the fields in ProfileForm.
  • pyproject.toml
    • Updates tldextract dependency.
  • scim/adapters.py
    • Updates SCIMUser adapter to use User model fields instead of Profile model fields.
  • scim/urls.py
    • Updates SCIM URLs to use regular expressions and include users-search endpoint.
  • scim/views.py
    • Adds SearchView for /.search endpoint.
  • scim/views_test.py
    • Updates tests to use User model fields instead of Profile model fields.
    • Adds tests for user search functionality.
  • users/admin.py
    • Adds UserAdmin to manage User model in admin panel
  • users/migrations/0004_add_scim_and_timestamp_fields.py
    • Adds SCIM-related fields and timestamp fields to the User model.
  • users/migrations/0005_set_user_scim_id.py
    • Adds a data migration to populate the scim_id and other fields.
  • users/models.py
    • Updates User model to inherit from AbstractSCIMUserMixin and TimestampedModel.
  • vector_search/constants.py
    • Adds edx_block_id to QDRANT_CONTENT_FILE_PARAM_MAP.
  • vector_search/serializers.py
    • Adds edx_block_id as a parameter to the ContentFileVectorSearchRequestSerializer.
  • vector_search/tasks.py
    • Updates start_embed_resources and embed_learning_resources_by_id to use next_run or latest run for content files.
  • vector_search/tasks_test.py
    • Adds tests for embedding content from next run and latest run.
  • vector_search/utils.py
    • Updates _content_file_vector_hits to include all Contentfile metadata to chunk responses
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


Did you know?

The Public Suffix List, used by tldextract, is maintained by Mozilla and is crucial for accurately identifying domain names.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the release notes and the application version in the settings. The changes are straightforward and seem correct. However, I have a minor suggestion regarding the release notes format.

Summary of Findings

Merge Readiness

The changes are straightforward and appear correct. I don't see any critical issues preventing this pull request from being merged. However, consider the suggestion about the release notes format for better readability. I am unable to directly approve this pull request, and recommend that others review and approve this code before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants