videoPlatform, DevOps & Performanceofficial - Microsoftreviewed - checked by Opus

AL Go for GitHub January Office Hour

AL-Go for GitHub January 2025 office hour. Version 6.3 added conditional settings on build mode, preprocessor symbols, removal of temporary "this build" artifacts and versioning strategy 3. Incremental builds were an open PR expected in preview within weeks. The Q&A covered NuGet and GitHub Packages dependencies, scheduled publishing, self-hosted runners, dotnet sign code signing, configuration packages and local dev environments.

  1. 0:00 Introduction and Meeting Setup
  2. 1:49 Conditional Settings and Build Modes
  3. 4:01 Removal of This Build Artifacts
  4. 6:00 New Versioning Strategy (v3)
  5. 7:37 Opening Q&A Session
  6. 8:49 Performance and Compiler Optimization Questions
  7. 10:52 Workflow Branch Usage and Multi-Branch Updates
  8. 12:29 Environment Publishing and Scheduling
  9. 14:09 Incremental Builds Feature
  10. 15:47 Office Hours Format and Directions Sessions
  11. 17:36 AL Go Sample Repositories and Documentation
  12. 19:09 Results Viewer and Page Scripting Tasks
  13. 21:04 External Dependencies and NuGet Feeds
  14. 22:50 Local Development Container Features
  15. 24:28 Scheduled Deployment and NuGet Publishing Model
  16. 26:23 Dependency Artifacts and Build Outputs
  17. 29:13 Office Hours Schedule and Audience Engagement
  18. 31:26 Self-hosted Runners and Workflow Configuration
  19. 33:40 Self-hosted Runner Setup and Hardware Recommendations
  20. 36:50 AL Go Adoption and Organizational Value
  21. 38:01 Test Data Deployment and Configuration Packages
  22. 39:24 Code Signing and Certificate Management
  23. 41:14 Configuration Packages and Demo Data Apps
  24. 42:52 AL-Go Telemetry and KQL Queries
  25. 44:12 Signing Tool Choices and Net Sign Commitment
  26. 46:02 Installation Ease and Extension Cleanup
  27. 48:05 Training and Workshops for AL-Go
  28. 50:35 Single Sign-On for GitHub Migration
  29. 51:48 Documentation Roadmap and Key Vault Credential Setup
  30. 54:09 AL-Go Repository and Project Architecture
  31. 56:20 Dependency Management and Repository Organization
  32. 57:42 Incremental Builds for Multi-Project Repositories
  33. 58:44 Local Development Environment with Multiple Projects
  34. 1:00:14 Licensing Requirements for AppSource Development
video Microsoft Dynamics 365 Business Central (YouTube) · 2025-02-03Watch on YouTube

Overview

This is a 62-minute AL Go for GitHub office hour, published 2025-02-03. It opens with the changes in the latest release (6.3): conditional settings based on build mode, preprocessor symbols, removal of “this build” artifacts, and versioning strategy 3, where major, minor and build come from app.json and only the revision comes from the run number.

The rest is Q&A. Topics include compiler folder builds, using a workflow from another branch, scheduled publish to environment, incremental builds, NuGet feeds and dependency artifacts, self-hosted runners, configuration packages and test data, code signing, telemetry, single sign-on, Key Vault credentials, and multi-project repositories with local development.

Key points

  • Conditional settings can override the settings file when a given build mode is active, for example next major.
  • With versioning strategy 3, major, minor and build come from app.json and only the revision comes from the run number. Run attempts no longer increment the version on rebuild.
  • The temporary “this build” artifacts for multi-project repositories are removed. Normal artifacts are now produced and can be used to test before a pull request is approved.
  • Incremental builds, which build only changed apps and the apps that depend on them, were described as a pull request expected to reach preview within a few weeks. Changes to low-level apps still rebuild dependents.
  • Self-hosted runners for all workflows are configured with two settings: the GitHub Runner setting for build jobs and runs-on for other workflows. The update AL-Go system files workflow always uses a GitHub-hosted runner.
  • Code signing uses dotnet sign (net sign). The team will not accept pull requests proposing other signing approaches, but may accept settings that support additional CA vaults.
  • Local dev environments work for only one project at a time. They need GitHub permissions to read all dependencies, and GitHub packages are not supported there.

Features

Feature Status At Evidence
Conditional Settings on Build Mode generally available, demoed 1:49 “we released version 6.3 there were like four uh things in that one besid some some fixes and stuff like that the conditional settings” (1:49)
Preprocessor Symbols status not stated, demoed 2:07
Removal of This Build Artifacts status not stated, demoed 4:01
Versioning Strategy 3 status not stated, demoed 6:00
Compiler Folder for Container Builds status not stated 9:01
Use Workflow From Branch status not stated 10:52
Scheduled Publish to Environment status not stated 12:29
Incremental Builds preview 14:09 “we’re expecting that one to get in uh preview within the next few uh weeks” (15:26)
Results Viewer for Page Scripting Tasks status not stated 19:09
Page Scripting Tasks in QA Deployment status not stated 19:09
NuGet Feed Support for External Dependencies status not stated 21:04
Local Development Container with Private Repositories status not stated 22:50
Publishing to NuGet Feed Model status not stated 24:28
Generate Dependency Artifacts status not stated 27:17
Self-Hosted Runner Support for All Workflows status not stated 31:26
Configuration Packages for Test Data status not stated 38:01
Import Test Data NPC Container Override status not stated 38:49
Dotnet Sign Integration for Code Signing status not stated 39:24
Configuration Packages Deprecation status not stated 41:34
AL-Go Telemetry Module status not stated 42:52
Commitment to Net Sign status not stated 44:12
Extension Cleanup on Deployment status not stated 46:02
AL-Go Workshop status not stated 48:05
Single Sign-On Enforcement status not stated 50:35
Key Vault Credential Configuration status not stated 53:01
Multi-Project Repository Support status not stated 54:09
GitHub Packages for Dependency Resolution status not stated 56:40
Local Development Environment in AL-Go status not stated 58:44

AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

  • other “app.json” at 3:04
  • other “settings file” at 3:04
  • other “GitHub business Central apps algo office hours 202” at 17:47
  • other “project branch dependencies” at 27:30
  • other “update ELO system files” at 32:28
  • other “net sign” at 39:58
  • other “AL 4.2” at 41:14
  • other “configuration packages” at 41:34
  • other “Key Vault” at 53:01
  • other “Cronos license” at 1:00:36

Quotes

  • 1:49 “in the latest month we released version 6.3 there were like four uh things in that one”
  • 3:04 “if the build mode is next major then use these settings like override what’s in the uh settings file normally”
  • 6:21 “now it’s actually major minor build if you use versioning strategy 3 that comes from uh your app Jason and then only the revision”
  • 9:21 “if you if you said that you want to use compiler folder um and you use a container you’ll actually be compiling using the”
  • 14:09 “there is an PR called incremental builds that one will only build the the apps that are changed or uh depends on apps that”
  • 15:26 “we’re expecting that one to get in uh preview within the next few uh weeks”
  • 19:40 “we’re also working on figuring out if we can run the P scripting tasks as part of deployment so when you’re deploying to a”
  • 21:31 “Al go for GitHub does support nuget both like as a as a provider and as a consumer of nou packages”
  • 27:30 “if you use the setting called generate dependency artifacts uh then in the buildt artifacts there will be a a an artifact called um”
  • 29:13 “these office hours calls we’re going to do them monthly uh this year except for July and December”
  • 31:47 “there are two settings that determines uh which Runners you use there’s the GitHub Runner which determines what uh what Runners are being used”
  • 32:28 “the update ELO system files will always use the GitHub hosted Runner and the reason for that is that if your self-hosted Runner is”
  • 35:41 “some cases very large apps will in order to be published into a into a container actually use quite a bit of memory”
  • 36:50 “is that it often looked as a developer tool instead of a tool to maintain a well ro running bc implementation”
  • 38:29 “you can have a different configuration package if you’re running the tests for us version for Danish version and for Italy version”
  • 39:58 “what we utilize for for this is net sign um for doing the signing and and if if doet sign can sign your app”
  • 41:34 “reshipping them but we know they’ll be going away so we be deprecating the conflict packages”
  • 41:54 “we’re not going to ship our extended demo data as contct packages we’re going to ship that as absence”
  • 42:52 “Telemetry data from Alo quite a lot is recorded and we can already evaluate various things for ourselves especially PRS”
  • 44:32 “we’ve decided on net sign and we’ll until until further proof prove that that’s the wrong way we’ll stick to that”
  • 46:59 “old pte are remaining published but uninstalled in extensions list after deployments gets a little cluttered”
  • 51:00 “that’s I think an organizational level can be forced at least it’s forced for Microsoft organization”
  • 53:01 “you can use what’s called Federated pretentions or you can use um an a app that has access to the keyword”
  • 55:39 “a w1 version of your app and then you can have an italy and a danish version of the app”
  • 58:02 “after we merge the incremental builds pr that comes in preview in the next few weeks”
  • 1:00:36 “license that is included in the artifacts is a perfectly good development license and you don’t need to”

Disclaimers in the video

  • 13:01 coming-later: right now you cannot do a sketch on that… there is a mechanism to do that by creating a small yo file… I’ll create document for how to do that as well
  • 14:29 preview: there is an PR called incremental builds that one will only build the the apps that are changed
  • 15:26 preview: incremental builds PR expected to get in preview within the next few weeks
  • 19:19 preview: results viewer for Alo for GitHub is being worked on
  • 19:40 preview: working on figuring out if we can run page scripting tasks as part of deployment
  • 20:01 coming-later: I’ll expect the results viewer to be done before we ship version seven in April
  • 20:22 preview: page scripting test and QA requires investigation due to MFA compatibility issues
  • 25:43 coming-later: publishing to NuGet feed model being talked about maybe a year or two from now
  • 26:23 subject-to-change: documentation sample on how to do that and and add that and I think I promised do that within the next two weeks so expect that to be done
  • 27:46 coming-later: something we could do in the future instead of building actually just taking things from the repo
  • 40:18 coming-later: if you find that net sign can do what you need but you need like to add another um setting or whatever to to to support other CA vaults as well uh please work with us and we might be able to actually include that in Alo
  • 41:34 coming-later: we know they’ll be going away so we be deprecating the conflict packages
  • 42:52 preview: it’s a very like relatively new like module in Alo
  • 48:23 subject-to-change: that one probably needs some some love and attention as well
  • 51:48 coming-later: future topics is for the future and like we give rebates tomorrow is what it says in the shop wall
  • 58:02 preview: incremental builds PR that comes in preview in the next few weeks

Presenters (as heard): Maria, Alexander, Todd, Thomas, Florian, Mik, Sebastian, Philip, Ronan, Emanuel, Floren, Eric.