videoAL Developmentofficial - Microsoftreviewed - checked by Opus

What's New: Going Open Source with the New GitHub Repository for Business Central (2024 release w 2)

The BC apps GitHub repository for Microsoft-developed Business Central apps, and how community members contribute to it: issue templates, approval, pull request checks, AL-Go builds and tests. It covers the 240 release, where 21 of 27 community pull requests were merged.

  1. 0:00 Introduction and session overview
  2. 1:39 BC apps repository launch and statistics
  3. 3:00 Repository structure and features
  4. 4:21 Automation processes in BC apps
  5. 5:16 Contribution process: from idea to approval
  6. 7:17 Setting up development environment and creating pull requests
  7. 8:31 Pull request requirements and merge criteria
  8. 11:10 Pull request build phases and testing
  9. 13:11 Debugging and test failure analysis
  10. 16:35 Contribution checklist and getting help
  11. 17:50 Key takeaways on open-source development
  12. 19:11 Resources and next steps
video Microsoft Dynamics 365 Business Central (YouTube) · 2024-04-04Watch on YouTube

Overview

The session introduces the BC apps repository on GitHub, launched in November 2023. It hosts source code for Microsoft-developed apps such as the system application, business foundation, test runner and performance toolkit. For the 240 release, the community submitted 27 pull requests and 21 were merged.

The video then walks through the contribution flow: creating an issue from a template, getting an approved label, forking, developing in a Docker-based environment and opening a pull request. It shows the automated checks, the three-flavor build, the testing phase, and how to debug compile and test failures in GitHub using AL-Go output.

Key points

  • The repository only hosts Microsoft-developed apps (system application, business foundation, some developer tools). It is not the place to report product defects with customer impact.
  • Contribution starts with a GitHub issue using one of two templates, implement a BC idea or fix a bug. Work begins after the issue gets an approved label.
  • A pull request needs resolved comments, at least two approvals from Microsoft engineers who maintain the repository, a linked approved issue, and passing build checks. Link an issue by writing # and the issue ID.
  • The pull request build compiles apps in three flavors: vanilla, with translations, and clean mode. Clean mode uses preprocessor directives such as ‘clean 23’, and it can fail while the vanilla build succeeds.
  • The second build phase runs tests on the system application and business foundation in vanilla and clean modes. All tests must pass.
  • AL-Go for GitHub runs the builds and tests. It gives a test summary and stack traces, and GitHub reports compilation errors inline in the pull request.
  • Automated pull requests update the BC artifact version, app baselines version and translation package version. They carry an automation tag and need no action from contributors.

Features

Feature Status At
BC apps GitHub repository status not stated 1:39
Community contribution to BC 240 status not stated 1:39
AL-Go for GitHub automation status not stated 2:39
BC artifact version automation status not stated 4:21
App baselines version automation status not stated 4:56
Translation package version automation status not stated 4:56
GitHub issue templates for contributions status not stated, demoed 6:17
Pull request approval workflow status not stated, demoed 6:57
Docker-based development environment setup status not stated 7:18
Linked work items check for pull requests status not stated, demoed 10:12
Microsoft internal work items tracking status not stated, demoed 10:49
Pull request build with three compilation modes status not stated, demoed 11:10
Preprocessor directives for clean builds status not stated, demoed 12:11
Pull request testing phase status not stated, demoed 12:31
GitHub PR debugging with file changes view status not stated, demoed 13:51
GitHub test failure summary and stack trace status not stated, demoed 15:21
BC apps repository contribution process status not stated 16:35
GitHub contribution help and support status not stated 17:16
Bug reporting in the contribution process status not stated 17:50
Equal contribution requirements for internal and external developers status not stated 18:51
Business Foundation application on GitHub status not stated 19:31

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 “system application” at 2:19
  • other “business foundation” at 2:39
  • other “test runner” at 2:39
  • other “performance toolkit” at 2:39
  • page “is first login” at 14:11

Not found in BC28-30: page “is first login”.

Quotes

  • 1:39 “it was actually launched officially in November 2033 just before Direction s since then we have built version 240 in close in collaborations with”
  • 1:59 “27 of these PO requests were actually made by the community and we’re happy to announce that actually 21 made it with version 240”
  • 2:19 “this repository only hosts the source code for applications developed by Microsoft such as system application business foundation and some of the developer tools”
  • 2:39 “we use aoo for GitHub which is another product that Microsoft is developing as a backbone for devops”
  • 4:21 “we have an automation that updates the BC artifact version in our aogo settings this is because our po request builds and cic builds”
  • 9:54 “we require at least two approvals from maintainers of the BCS repository which essentially means two approvals from U engineers at Microsoft”
  • 11:50 “we build those apps in three different flavors we build it in the vanilla mode which is just compiling the app as it is”
  • 12:31 “in the second phase we start testing and we we test the system application and the business Foundation both in the vanilla mode but”
  • 14:11 “GitHub actually also reports uh what the compilation issues are so in this case it says here that I haven’t given an argument that”
  • 15:55 “algo actually provides a nice summary of all the tests that we’re running and which ones are failing”
  • 16:35 “you need that all Commons are resolved you need at least two approvers you need to link your polar to an issue and then”
  • 17:16 “just ask for help in your PO request create a comment in the pull request and a member of our team or someone in”
  • 18:51 “contribution is the same for everyone uh all the checks that Alex mentioned earlier they are the same for both internal developers and for”
  • 19:51 “business Foundation was indeed the first applications application that uh was developed on GitHub from the beginning”

Disclaimers in the video

  • 3:00 other: this is not the place to report product defects with any customer impact there are like other channels to do that
  • 5:57 other: ideally not something with customer impact because as Mar already mentioned that should something we should expedite

Presenters (as heard): Maria Jova, Alexander hrop, Alex.