Skip to content

Update TfsNodeStructureTool Notes to new Format#2758

Merged
MrHinsh merged 10 commits intomainfrom
copilot/fix-2757
Jun 18, 2025
Merged

Update TfsNodeStructureTool Notes to new Format#2758
MrHinsh merged 10 commits intomainfrom
copilot/fix-2757

Conversation

Copy link
Contributor

Copilot AI commented Jun 17, 2025

Updated all configuration examples and documentation in TfsNodeStructureTool-notes.md from the legacy format to the new structured format developed by @satano.

Changes Made

Configuration Format Migration:

  • NodeBasePathsAreas.Filters and Iterations.Filters
  • AreaMapsAreas.Mappings with structured Match/Replacement objects
  • IterationMapsIterations.Mappings with structured Match/Replacement objects

Old Format:

{
  "$type": "TfsNodeStructureOptions",
  "NodeBasePaths": ["*\\Team 2", "*\\Sprint*"],
  "AreaMaps": {
    "^OriginalProject\\\\(DescopeThis|DescopeThat)": "TargetProject\\Archive\\Descoped\\"
  },
  "IterationMaps": {
    "^OriginalProject\\\\Path1(?=\\\\Sprint 2022)": "TargetProject\\AnotherPath\\NewTeam"
  }
}

New Format:

{
  "Areas": {
    "Filters": ["*\\Team 2"],
    "Mappings": [
      {
        "Match": "^OriginalProject\\\\(DescopeThis|DescopeThat)(.*)$",
        "Replacement": "TargetProject\\Archive\\Descoped\\$1$2"
      }
    ]
  },
  "Iterations": {
    "Filters": ["*\\Sprint*"],
    "Mappings": [
      {
        "Match": "^OriginalProject\\\\Path1(?=\\\\Sprint 2022)(.*)$",
        "Replacement": "TargetProject\\AnotherPath\\NewTeam$1"
      }
    ]
  }
}

Documentation Updates

  • ✅ Updated all JSON configuration examples throughout the document
  • ✅ Updated Filters section table to use new property structure
  • ✅ Updated explanatory text and bullet points to reference new format
  • ✅ Updated warning text to reflect Match/Replacement property structure
  • ✅ Converted all examples from key-value mapping pairs to structured objects
  • ✅ Fixed terminology references throughout the document
  • ✅ Verified changes by running documentation generator successfully

The documentation now consistently uses the new format across all examples, making it easier for users to configure TfsNodeStructureTool with the current implementation.

Fixes #2757.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI and others added 2 commits June 17, 2025 10:01
Co-authored-by: MrHinsh <5205575+MrHinsh@users.noreply.github.com>
…istency fixes

Co-authored-by: MrHinsh <5205575+MrHinsh@users.noreply.github.com>
Copilot AI changed the title [WIP] Update TfsNodeStructureTool Notes to new Format Update TfsNodeStructureTool Notes to new Format Jun 17, 2025
Copilot AI requested a review from MrHinsh June 17, 2025 10:04
@MrHinsh
Copy link
Member

MrHinsh commented Jun 17, 2025

While working for other types we lost the classFile on field mapps like fieldtofieldmultimap in docs/_data/reference.fieldmaps.fieldtofieldmultimap.yaml. It looks like thsi is during the document generation.

Co-authored-by: MrHinsh <5205575+MrHinsh@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jun 17, 2025

While working for other types we lost the classFile on field mapps like fieldtofieldmultimap in docs/_data/reference.fieldmaps.fieldtofieldmultimap.yaml. It looks like thsi is during the documen...

Fixed the missing classFile properties in the documentation generation. The issue was caused by a case-sensitivity problem in the CodeFileFinder where class name FieldToFieldMultiMap (uppercase "To") wasn't matching the filename FieldtoFieldMultiMap.cs (lowercase "to"). Enhanced the finder to use case-insensitive matching as a fallback. (b998bba)

@nkdagility-actions-bot
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://blue-river-093197403-2758.westeurope.5.azurestaticapps.net

@MrHinsh
Copy link
Member

MrHinsh commented Jun 18, 2025

The code samples are going missing.

…ode samples

Co-authored-by: MrHinsh <5205575+MrHinsh@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jun 18, 2025

The code samples are going missing.

Fixed the missing code samples issue in the documentation generator. The problem was that the generator wasn't properly loading the configuration from the repository root appsettings.json file. Updated the configuration loading logic to use the correct path resolution, and now all tools, processors, field maps, and endpoints have proper "defaults" and "sample" configuration examples instead of the generic "not found" messages. (994b8dc)

MrHinsh added 3 commits June 18, 2025 08:25
- Document the GenerateDocs.ps1 script purpose and usage
- Provide detailed instructions and examples for script execution
- Outline key features, environment requirements, and error handling

✨ feat(scripts): add GenerateDocs.ps1 for documentation generation

- Create a PowerShell script to automate documentation generation
- Implement error handling, verbose logging, and configuration options
- Output generated files in YAML and Markdown for documentation site

💄 style(yaml): correct file path casing in YAML references

- Adjust file paths from "Endpoints" to "EndPoints" for consistency
- Update affected YAML files to reflect correct casing

🔧 chore(yaml): update project identifier in configuration samples

- Change TargetLinksToKeepProject identifier in YAML files
- Ensure accurate representation of configuration data

💄 style(markdown): adjust markdown block indicators

- Change markdown block indicators from '>' to '>+' for clarity
- Apply changes across multiple markdown documentation files
- add new tasks for "test only" and "build docs"
- optimize "build full framework" with sequence dependencies
- ensure tasks reveal output as expected for better visibility
- add test filter for categories L0 and L1 in vscode tasks configuration
@nkdagility-actions-bot
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://blue-river-093197403-2758.westeurope.5.azurestaticapps.net

@MrHinsh
Copy link
Member

MrHinsh commented Jun 18, 2025

This is incorrect. Check the samples for the format, but ignore "classic"...

{
      "$type": "TfsNodeStructureToolOptions",
      "Enabled": true,
      "Areas": {
        "Filters": [],
        "Mappings": [
          {
            "Match": "^Skypoint Cloud$",
            "Replacement": "MigrationTest5"
          }
        ]
      },
      "Iterations": {
        "Filters": [],
        "Mappings": [
          {
            "Match": "^Skypoint Cloud\\\\Sprint 1$",
            "Replacement": "MigrationTest5\\Sprint 1"
          }
        ]
      },
      "ShouldCreateMissingRevisionPaths": true,
      "ReplicateAllExistingNodes": true
    }

…amples

Co-authored-by: MrHinsh <5205575+MrHinsh@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jun 18, 2025

This is incorrect. Check the samples for the format, but ignore "classic"...

...

Fixed the TfsNodeStructureTool samples to use simpler, more realistic examples as requested. Replaced the complex regex patterns with beginner-friendly simple matches like ^Skypoint Cloud$MigrationTest5 and ^Skypoint Cloud\\\\Sprint 1$MigrationTest5\\Sprint 1. (a32213e)

@MrHinsh MrHinsh marked this pull request as ready for review June 18, 2025 13:00
@MrHinsh MrHinsh enabled auto-merge June 18, 2025 13:00
@MrHinsh MrHinsh merged commit 74648c2 into main Jun 18, 2025
14 checks passed
@MrHinsh MrHinsh deleted the copilot/fix-2757 branch June 18, 2025 13:09
@nkdagility-actions-bot
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://blue-river-093197403-2758.westeurope.5.azurestaticapps.net

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.

Update TfsNodeStructureTool Notes to new Format

2 participants