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

Refactor remaining Project and Build files #85

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from

Commits on Jan 17, 2023

  1. Rename solution, readme and icon files

    - Rename `build` folder to `eng`:
      - This is a standard build infra directory used in official dotnet projects.
    
    - Rename NuGet Icon to `Icon.png`:
      - This is no longer used as a public reference point for NuGet icon URL.
      - Also, Icon URL is deprecated. Hence, it's safe to change.
    
    - Normalize casing for `ReadMe.md`:
      - Repository information files such as ReadMe, License, etc... are only UPPER_CASE
        if they are without an extension. With extension, the casing becomes PascalCase
        or Kebab-Case. The primary reason is attention to the presentation of file names.
      - Do Kebab-Case when a phrase is presented. E.g., `Code-of-Conduct.md`.
    
    - Rename solution file to `CommunityToolkit.sln`:
      - The `dotnet` seems implied and also doesn't stand-out in the file list because of the lower casing and `d` char.
      - Spaces are a main issue when doing automation (_like using `*.sln` in build scripts and in URLs it adds `%20`_).
    
    - Move `toolkit.snk` file to `eng` sub-directory.
    - Remove un-needed and deleted files from solution.
    
    - Update Git Ignore entries to latest from upstream.
    - Indent text in `ThirdPartyNotices.txt` with spaces instead.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    e58781e View commit details
    Browse the repository at this point in the history
  2. Simplify Roslyn multi-targeting

    - Fix the text flow warping in the MSBuild Console logging.
    - Use checked version properties instead of hard-coded checks.
    - Update the structure of the projects list in the Solution file.
    
    - Refactor Roslyn multi-targeting to use multiple projects
      in the same project directory without using Shared projects.
      This refactoring is made in preparation for the solution to use
      the NuGet's CPVM (Central Package Versions Management) feature.
      This also slightly improves IDE load time and Build performance.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    d798226 View commit details
    Browse the repository at this point in the history
  3. Move MSBuild logic into new files

    - Move the T4 MSBuild logic to a new file.
    - Move Public Key to a new file 'toolkit.spk'.
    - Move MSBuild logic to near-by `Directory.Build.{props|targets}` files.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    b16081e View commit details
    Browse the repository at this point in the history
  4. Rearrange MSBuild logic in project files

    Follow the following rules:
    
    - SOF (_Start Of File_) Imports,
    - Core properties, Package properties, build properties,
    - Build items, Resource items, Content items, Misc. items,
    - In-place Imports, Choose (_elements within follows outer sort order_)
    - `ProjectReference` items, `PackageReference` items,
    - Targets and Properties and Items close to said Targets,
    - EOF (_End Of File_) Imports.
    
    Where there's a condition by target properties, we should group them together under `Choose`.
    For multiple target values, we should sort them by the order in which they are defined.
    And the order in which they should be defined is either ascending or descending in terms of compatibility layering.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    6e020e5 View commit details
    Browse the repository at this point in the history
  5. Simplify MSBuild logic in project files

    - Add necessary guard to check for pack.
    - Remove redundant properties and values.
    - Remove and adjust quotes in property functions.
    - Use wildcards to generalize and reduce items declared.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    86a5e25 View commit details
    Browse the repository at this point in the history
  6. Add, Update and Format build Comments

    - Remove redundant comments.
    - Add missing comments on certain code blocks.
    - Format code in comments with proper quote style.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    4b567ec View commit details
    Browse the repository at this point in the history
  7. Add Labels to some Property groups

    Some property groups have conditions that also self-explain their purpose.
    So, Add labels to bare property groups only to differentiate among themselves.
    Then, when contributors add any additional properties, they'll know where to put them.
    Nirmal4G committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    2ea9102 View commit details
    Browse the repository at this point in the history