Skip to content

Update core library to add support for generics <T> #242

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

Merged
merged 75 commits into from
Apr 18, 2025
Merged

Conversation

josesimoes
Copy link
Member

@josesimoes josesimoes commented Mar 21, 2025

Description

  • Update core library to add support for generics.

Motivation and Context

How Has This Been Tested?

Screenshots

Types of changes

  • Improvement (non-breaking change that improves a feature, code or algorithm)
  • Bug fix (non-breaking change which fixes an issue with code or algorithm)
  • New feature (non-breaking change which adds functionality to code)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Config and build (change in the configuration and build system, has no impact on code or features)
  • Dependencies (update dependencies and changes associated, has no impact on code or features)
  • Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
  • Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

  • My code follows the code style of this project (only if there are changes in source code).
  • My changes require an update to the documentation (there are changes that require the docs website to be updated).
  • I have updated the documentation accordingly (the changes require an update on the docs in this repo).
  • I have read the CONTRIBUTING document.
  • I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
  • I have added new tests to cover my changes.

Summary by CodeRabbit

  • New Features

    • Updated the versioning scheme to "2.0.0-preview.{height}", indicating a pre-release version.
    • Added a new entry in the release specifications to allow for releases from the "generics" branch.
  • Chores

    • Enhanced the build process by allowing builds to be triggered for branches matching the new pattern generics*.
    • Introduced a configuration option to suppress the display of the .NET logo during builds.

josesimoes and others added 30 commits March 13, 2023 18:42
- Add new libraries to list of repos to update.

***NO_CI***
- Add new class libraries to update list.

***NO_CI***
- Improve conditions for update dependents.

***NO_CI***
- Improve conditions for update dependents.

***NO_CI***
- Rework variable declaration to include sign group.

***NO_CI***
***NO_CI***
…tributes()` (#218)

***NO_CI***

(cherry picked from commit f1afac0)
@josesimoes josesimoes changed the title Update core library to add support for generics Update core library to add support for generics <T> Mar 31, 2025
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.

Actionable comments posted: 0

🧹 Nitpick comments (1)
azure-pipelines.yml (1)

63-64: Local override for DOTNET_NOLOGO with minor formatting issue.

Adding the DOTNET_NOLOGO variable in the Build_mscorlib job’s variables explicitly ensures that the setting is applied at the job level. However, there are trailing spaces on line 64 that should be removed to satisfy YAML linting standards.
Suggested change:

-    - name: DOTNET_NOLOGO
-      value: true  
+    - name: DOTNET_NOLOGO
+      value: true
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 64-64: trailing spaces

(trailing-spaces)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 981cb43 and d3d1dac.

⛔ Files ignored due to path filters (7)
  • Tests/NFUnitTestSystemLib/UnitTestInitLocalTests.cs is excluded by none and included by none
  • Tests/NFUnitTestSystemLib/UnitTestReflectionTypeTest.cs is excluded by none and included by none
  • Tests/NFUnitTest_DummyAdapter/nano.runsettings is excluded by none and included by none
  • Tests/UnitTestLauncher/UnitTestLauncher.nfproj is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/AssemblyInfo.cs is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/Reflection/AssemblyNameFlags.cs is excluded by none and included by none
  • nanoFramework.TestFramework is excluded by none and included by none
📒 Files selected for processing (2)
  • azure-pipelines.yml (3 hunks)
  • version.json (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
azure-pipelines.yml

[error] 64-64: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: nanoframework.CoreLibrary (Build_mscorlib)
🔇 Additional comments (4)
version.json (2)

3-3: Version bump update is correct.

The version field has been updated from "1.17" to "2.0", which aligns with the major release and the intended breaking change for generics support.


8-10: Verify semVer value type.

The "semVer" field is now set to a numeric value (2.0) rather than a string. Please confirm that this change conforms with the schema and does not cause downstream parsing issues.

azure-pipelines.yml (2)

166-168: Ensuring proper job dependency.

The addition of the dependsOn: - Build_mscorlib in the Update_Dependents job ensures that dependent updates run only after a successful build of mscorlib, which is crucial for maintaining build integrity.


195-195: Inclusion of new dependent repository.

The addition of the nanoframework.System.Runtime repository to the list of repositories for the Update_Dependents job ensures that updates for support related to generics are correctly propagated. Please ensure that corresponding documentation is updated to reflect this inclusion.

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.

Actionable comments posted: 0

🧹 Nitpick comments (2)
azure-pipelines.yml (2)

63-64: Remove Trailing Whitespace in DOTNET_NOLOGO Setting
There are trailing spaces at the end of the value: true line (line 64). Please remove these to satisfy YAML linting standards.

-      value: true  
+      value: true
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 64-64: trailing spaces

(trailing-spaces)


63-64: Clarify the Scope of DOTNET_NOLOGO Definition
The variable DOTNET_NOLOGO is already declared globally in lines 39–44, and it is being re-declared in the Build_mscorlib job (lines 63–64). If the duplicate declaration is intentional (for a job-specific override), please add a clarifying comment. Otherwise, consider consolidating the declaration to avoid redundancy.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 64-64: trailing spaces

(trailing-spaces)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d3d1dac and 912cb27.

⛔ Files ignored due to path filters (7)
  • .runsettings is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/Convert.cs is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/DateTime.cs is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/DayOfWeek.cs is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/Guid.cs is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/IO/IOException.cs is excluded by none and included by none
  • nanoFramework.CoreLibrary/System/Reflection/MemberTypes.cs is excluded by none and included by none
📒 Files selected for processing (1)
  • azure-pipelines.yml (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
azure-pipelines.yml

[error] 64-64: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: nanoframework.CoreLibrary (Build_mscorlib)

Copy link
Member

@Ellerbach Ellerbach left a comment

Choose a reason for hiding this comment

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

looks good

- Add generics branch to nbgv config.
***NO_CI***
- Add generics branh to pipeline trigger.

***NO_CI***
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.

Actionable comments posted: 0

🧹 Nitpick comments (1)
azure-pipelines.yml (1)

64-65: Remove Trailing Whitespace in DOTNET_NOLOGO Variable Definition
There are trailing spaces on line 65 which could trigger YAML linting issues. Please remove the extra spaces. Additionally, note that DOTNET_NOLOGO is defined both globally (lines 41–42) and at the job level. If the duplication is intentional for overriding purposes, no further action is required beyond cleaning up the whitespace; otherwise, consider consolidating the definition to avoid redundancy.

Diff suggestion:

-      value: true  
+      value: true
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 65-65: trailing spaces

(trailing-spaces)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d520712 and 6abe4b8.

📒 Files selected for processing (1)
  • azure-pipelines.yml (2 hunks)
🧰 Additional context used
🪛 YAMLlint (1.35.1)
azure-pipelines.yml

[error] 65-65: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: nanoframework.CoreLibrary (Build_mscorlib)
🔇 Additional comments (1)
azure-pipelines.yml (1)

10-10: Generics Branch Pattern Added Successfully
Adding the - generics* branch pattern to the trigger section is a precise way to ensure that branches supporting generics are built automatically. This aligns with the PR objective to update the core library for generics support.

@josesimoes josesimoes changed the base branch from main to develop April 16, 2025 14:10
- Config usage of preview VS extension.
@josesimoes
Copy link
Member Author

Unit tests failing as expected.

Copy link

@josesimoes josesimoes removed the ⚠️ DO NOT MERGE ⚠️ This is not to be merged. In doubt check with the person that put the label. label Apr 18, 2025
@josesimoes josesimoes merged commit 85086ea into develop Apr 18, 2025
7 checks passed
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.

4 participants