Skip to content

[Bug]: AL template inheritance works only up to 3 levels. #2282

Description

@ChrisBlankDe

AL-Go version

9.0

Describe the issue

Inheriting settings in custom templates up to 3 levels works perfectly fine
AL-Go PTE Template -> Customer PTE Template -> Customer PTE

Problems arise when a fourth level is added here:
AL-Go PTE Template -> Partner PTE Template -> Customer PTE Template -> Customer PTE

The problem itself in that the settings defined at level 3 (Customer PTE Template) in the ".github/AL-Go-TemplateRepoSettings.doNotEdit.json" are no longer inherited at level 4 (Customer PTE), since only the contents of .github/AL-Go-Settings.json are written to the .github/templateRepoSettings.doNotEdit.json file in the target repo.

This exact same behavior most likely also applies to the Project Settings.

Expected behavior

Template Inheritance should work on at least 4 levels. Better would be an unlimited number of levels.

Steps to reproduce

  1. Do for Repo A (Partner PTE Template):
  • Create from AL-Go Template
  • Set a unique setting (this will be missing)
  • Configure as Template Repo
  1. Do for Repo B (Customer PTE Template):
  • Create from Repo A
  • Set a unique setting
  • Configure as Template Repo
  1. Do for Repo C (Customer PTE):
  • Create from Repo A
  • Set a unique setting

After Update AL-Go on each Repo based on its Template the setting from Repo A will be missing in Repo C

Additional context (logs, screenshots, etc.)

Possible solution:
One possible solution could be to virtually merge the contents of .github/AL-Go-Settings.json and, if present, .github/templateRepoSettings.doNotEdit.json during the AL-Go update workflow (and when checking for updates), and then write this to the .github/templateRepoSettings.doNotEdit.json file in the target repository.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions