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

Представление и описание #440

Merged
merged 2 commits into from
Jan 17, 2024

Conversation

theshadowco
Copy link
Member

@theshadowco theshadowco commented Jan 17, 2024

Описание

  1. Добавил метод getDescription для получения пользовательского представления объекта на основании синонима
  2. Добавил метод для проверки на пустоту многострочной строки
  3. Для многострочных строк добавила возможность получить первое попавшееся значение локализованной строки
  4. Для некоторых md-объектов добавил чтение поля explanation (описание)

Связанные задачи

Closes

Чеклист

Общие

  • Ветка PR обновлена из develop
  • Отладочные, закомментированные и прочие, не имеющие смысла участки кода удалены
  • Изменения покрыты тестами
  • Обязательные действия перед коммитом выполнены (запускал команду gradlew precommit)

Дополнительно

Summary by CodeRabbit

  • New Features

    • Introduced multilingual explanation fields across various classes for enhanced international support.
  • Enhancements

    • Implemented new default methods in the MD interface for retrieving object descriptions based on language-specific synonyms.
  • Tests

    • Updated unit tests to cover new multilingual capabilities and ensure correct behavior of explanation fields.
    • Enhanced test assertions to validate synonyms and descriptions in multiple languages.

Copy link

coderabbitai bot commented Jan 17, 2024

Walkthrough

The recent updates involve the addition of a new explanation field of type MultiLanguageString across various classes within the codebase. This field is often accompanied by the @Default annotation, setting a default value. Additionally, the MD interface now includes methods for retrieving descriptions with language-specific synonyms. Testing files have been updated to reflect these changes, including new assertions for the added fields and methods.

Changes

File Pattern Change Summary
.../mdo/*.java Added explanation field of type MultiLanguageString with @Default annotation or default value to multiple classes.
.../mdo/MD.java Updated with new default methods getDescription() and getDescription(String code) for language-specific descriptions.
.../mdo/support/MultiLanguageString.java Extended with new methods getAny() and isEmpty().
.../mdclasses/ConfigurationTest.java Test package declaration updated; added exception handling; updated assertions for synonyms and descriptions.
.../mdo/*Test.java Added assertions for testing the new explanation field and description methods in various test classes.

Poem

In the land of code, where the logic threads weave,
A rabbit hopped in, new fields to conceive.
🐇 With explanation in tow, and tests all in line,
Now every class speaks, in tongues so divine.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

@theshadowco theshadowco added this to the 0.13.0 milestone Jan 17, 2024
Copy link
Contributor

github-actions bot commented Jan 17, 2024

Test Results

 53 files  ±0   53 suites  ±0   31s ⏱️ +17s
206 tests ±0  206 ✅ +1  0 💤 ±0  0 ❌  - 1 
208 runs  ±0  208 ✅ +1  0 💤 ±0  0 ❌  - 1 

Results for commit a5311a3. ± Comparison against base commit 70f005e.

This pull request removes 2 and adds 2 tests. Note that renamed tests count towards both.
com.github._1c_syntax.bsl.mdo.BusinessProcessTest ‑ [3] true, ssl_3_1, BusinessProcesses.Задание, _edt
com.github._1c_syntax.bsl.mdo.BusinessProcessTest ‑ [4] false, ssl_3_1, BusinessProcesses.Задание
com.github._1c_syntax.bsl.mdo.BusinessProcessTest ‑ [1] true, ssl_3_1, BusinessProcesses.Задание, _edt
com.github._1c_syntax.bsl.mdo.BusinessProcessTest ‑ [2] false, ssl_3_1, BusinessProcesses.Задание

♻️ This comment has been updated with latest results.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Review Status

Actionable comments generated: 2

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 70f005e and a5311a3.
Files ignored due to path filters (65)
  • src/test/resources/fixtures/mdclasses/AccountingRegisters.РегистрБухгалтерии1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/AccumulationRegisters.РегистрНакопления1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/BusinessProcesses.БизнесПроцесс1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/BusinessProcesses.БизнесПроцесс1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/CalculationRegisters.РегистрРасчета1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/CalculationRegisters.РегистрРасчета1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Catalogs.Справочник1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Catalogs.Справочник1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ChartsOfAccounts.ПланСчетов1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ChartsOfAccounts.ПланСчетов1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ChartsOfCalculationTypes.ПланВидовРасчета1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ChartsOfCharacteristicTypes.ПланВидовХарактеристик1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ChartsOfCharacteristicTypes.ПланВидовХарактеристик1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Configuration.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Configuration_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Constants.Константа1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Constants.Константа1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/DataProcessors.Обработка1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/DataProcessors.Обработка1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/DocumentJournals.ЖурналДокументов1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/DocumentJournals.ЖурналДокументов1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Documents.Документ1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Documents.Документ1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Enums.Перечисление1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Enums.Перечисление1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ExchangePlans.ПланОбмена1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ExchangePlans.ПланОбмена1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/FilterCriteria.КритерийОтбора1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/FilterCriteria.КритерийОтбора1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/InformationRegisters.РегистрСведений1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/InformationRegisters.РегистрСведений1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Reports.Отчет1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Reports.Отчет1_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses/Tasks.Задача1.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses_3_18/Configuration.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses_3_18/Configuration_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses_ext/Configuration.json is excluded by: !**/*.json
  • src/test/resources/fixtures/mdclasses_ext/Configuration_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/BusinessProcesses.Задание.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/BusinessProcesses.Задание_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Catalogs.Заметки.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Catalogs.Заметки_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/ChartsOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/ChartsOfCharacteristicTypes.ДополнительныеРеквизитыИСведения_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Constants.ЗаголовокСистемы.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/DataProcessors.ЗагрузкаКурсовВалют.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/DataProcessors.ЗагрузкаКурсовВалют_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/DocumentJournals.Взаимодействия.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/DocumentJournals.Взаимодействия_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Documents.Анкета.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Documents.Анкета_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Enums.СтатусыОбработчиковОбновления.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Enums.СтатусыОбработчиковОбновления_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/ExchangePlans.ОбновлениеИнформационнойБазы.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/ExchangePlans.ОбновлениеИнформационнойБазы_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/FilterCriteria.ФайлыВТоме.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/FilterCriteria.ФайлыВТоме_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/InformationRegisters.ЭлектронныеПодписи.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/InformationRegisters.ЭлектронныеПодписи_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Reports.АнализВерсийОбъектов.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Reports.АнализВерсийОбъектов_edt.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Tasks.ЗадачаИсполнителя.json is excluded by: !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Tasks.ЗадачаИсполнителя_edt.json is excluded by: !**/*.json
Files selected for processing (26)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/AccountingRegister.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/AccumulationRegister.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/BusinessProcess.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/CalculationRegister.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Catalog.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ChartOfAccounts.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ChartOfCalculationTypes.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ChartOfCharacteristicTypes.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Constant.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/DataProcessor.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Document.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/DocumentJournal.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Enum.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ExchangePlan.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/FilterCriterion.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/InformationRegister.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/MD.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Report.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Subsystem.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/Task.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/support/MultiLanguageString.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest.java (3 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/AccountingRegisterTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/BusinessProcessTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/CatalogTest.java (2 hunks)
Files skipped from review due to trivial changes (3)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/AccumulationRegister.java
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ExchangePlan.java
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java
Additional comments: 24
src/main/java/com/github/_1c_syntax/bsl/mdo/Constant.java (1)
  • 79-84: The addition of the explanation field with a default value of MultiLanguageString.EMPTY is consistent with the PR's objectives to enhance metadata object descriptions with localized support. This change aligns with the internationalization efforts described.
src/test/java/com/github/_1c_syntax/bsl/mdo/AccountingRegisterTest.java (1)
  • 44-52: The added assertions for the synonym and description properties in the AccountingRegisterTest class are appropriate for verifying the behavior of the AccountingRegister class with respect to the new explanation field and the getDescription methods. This ensures that the new functionality is covered by tests.
src/main/java/com/github/_1c_syntax/bsl/mdo/FilterCriterion.java (1)
  • 90-94: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the FilterCriterion class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/Catalog.java (1)
  • 88-92: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the Catalog class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/BusinessProcess.java (1)
  • 87-91: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the BusinessProcess class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/ChartOfCalculationTypes.java (1)
  • 88-92: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the ChartOfCalculationTypes class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/ChartOfCharacteristicTypes.java (1)
  • 88-92: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the ChartOfCharacteristicTypes class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/AccountingRegister.java (1)
  • 91-95: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the AccountingRegister class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/InformationRegister.java (1)
  • 91-95: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the InformationRegister class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/Document.java (1)
  • 94-98: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the Document class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/Report.java (1)
  • 114-118: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the Report class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/MD.java (1)
  • 78-106: The addition of the getDescription() and getDescription(String code) default methods to the MD interface is a significant enhancement. These methods provide a standardized way to retrieve object representations based on synonyms, with a fallback to the object's name if no synonyms are available. This change supports the internationalization capabilities described in the PR objectives.
src/main/java/com/github/_1c_syntax/bsl/mdo/DataProcessor.java (1)
  • 114-118: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the DataProcessor class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/Task.java (1)
  • 97-101: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the Task class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/CalculationRegister.java (1)
  • 96-100: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the CalculationRegister class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/Enum.java (1)
  • 107-111: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the Enum class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/DocumentJournal.java (1)
  • 114-118: The addition of the explanation field with a default value of MultiLanguageString.EMPTY to the DocumentJournal class is consistent with the PR's objectives and follows the pattern established for other metadata objects.
src/main/java/com/github/_1c_syntax/bsl/mdo/ChartOfAccounts.java (1)
  • 104-108: The explanation field is initialized with MultiLanguageString.EMPTY. This is consistent with the pattern used for other default fields in the class. However, ensure that the getAllAttributes() method, which aggregates attributes, is not affected by the addition of this new field, as it does not seem to be included in the list of attributes returned by the method.
src/test/java/com/github/_1c_syntax/bsl/mdo/BusinessProcessTest.java (2)
  • 44-51: The assertions in the test method check for the emptiness of synonyms and descriptions in different languages. This is consistent with the expected behavior of the BusinessProcess object when no synonyms or descriptions are set.
  • 66-75: The assertions in the testSSL_3_1 method check for the presence of synonyms and descriptions in different languages. The method name suggests that it is testing specific behavior related to SSL version 3.1, which should be documented for clarity.
src/main/java/com/github/_1c_syntax/bsl/mdo/Subsystem.java (1)
  • 109-113: The explanation field is correctly annotated with @Default and initialized with MultiLanguageString.EMPTY. This change is consistent with the pattern used for other default fields in the class.
src/test/java/com/github/_1c_syntax/bsl/mdo/CatalogTest.java (1)
  • 116-130: The assertions in the testSSL method check for the presence of synonyms and descriptions in different languages for both the Catalog object and its child attribute. This is consistent with the expected behavior of the Catalog object when synonyms and descriptions are set.
src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest.java (2)
  • 171-175: The assertions in the testFullSSL method check for the presence of synonyms and descriptions in different languages. The method name suggests that it is testing specific behavior related to SSL, which should be documented for clarity. Additionally, the method now throws an Exception, which is not documented in the method signature comment.
  • 407-407: The checkChildrenMdclasses method is private and static, which is appropriate for utility methods used within tests. It checks various properties of the Configuration object, ensuring that they match expected values based on the SupportVariant.

Copy link

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

1 New issue
0 Security Hotspots
91.3% Coverage on New Code
19.9% Duplication on New Code

See analysis details on SonarCloud

@theshadowco theshadowco merged commit a8af664 into develop Jan 17, 2024
15 checks passed
@theshadowco theshadowco deleted the feature/Explanation branch January 17, 2024 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants