From 8d10cd34a0f2a12c3634d74d3593761b466ed9b5 Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 22 Mar 2024 05:24:12 +0000 Subject: [PATCH] Dev Site Update. [skip ci] --- about.html | 2 +- about.page-vue-render.js | 2 +- devGuide/bootcamp/contributeToDocs.html | 2 +- .../contributeToDocs.page-vue-render.js | 2 +- devGuide/bootcamp/exploreMarkBind.html | 2 +- .../exploreMarkBind.page-vue-render.js | 2 +- devGuide/bootcamp/fixABug.html | 2 +- devGuide/bootcamp/fixABug.page-vue-render.js | 2 +- devGuide/bootcamp/implementAFeature.html | 2 +- .../implementAFeature.page-vue-render.js | 2 +- devGuide/bootcamp/intro.html | 2 +- devGuide/bootcamp/intro.page-vue-render.js | 2 +- devGuide/design/architecture.html | 2 +- .../design/architecture.page-vue-render.js | 2 +- devGuide/design/projectStructure.html | 2 +- .../projectStructure.page-vue-render.js | 2 +- devGuide/design/serverSideRendering.html | 2 +- .../serverSideRendering.page-vue-render.js | 2 +- devGuide/devGuide.html | 2 +- devGuide/devGuide.page-vue-render.js | 2 +- devGuide/development/migratingNodeJs.html | 2 +- .../migratingNodeJs.page-vue-render.js | 2 +- .../development/migratingToTypeScript.html | 2 +- .../migratingToTypeScript.page-vue-render.js | 2 +- devGuide/development/settingUp.html | 2 +- .../development/settingUp.page-vue-render.js | 2 +- devGuide/development/workflow.html | 2 +- .../development/workflow.page-vue-render.js | 2 +- devGuide/development/writingComponents.html | 2 +- .../writingComponents.page-vue-render.js | 2 +- devGuide/development/writingPlugins.html | 2 +- .../writingPlugins.page-vue-render.js | 2 +- devGuide/githubActions/markbindAction.html | 2 +- .../markbindAction.page-vue-render.js | 2 +- .../markbindReusableWorkflows.html | 2 +- ...rkbindReusableWorkflows.page-vue-render.js | 2 +- devGuide/githubActions/overview.html | 2 +- .../githubActions/overview.page-vue-render.js | 2 +- devGuide/index.html | 2 +- devGuide/index.page-vue-render.js | 2 +- devGuide/projectManagement.html | 8 ++++++-- devGuide/projectManagement.page-vue-render.js | 19 ++++++++++++++++-- devGuide/styleGuides.html | 2 +- devGuide/styleGuides.page-vue-render.js | 2 +- images/npm-profile.jpg | Bin 0 -> 94318 bytes index.html | 2 +- index.page-vue-render.js | 2 +- showcase.html | 2 +- showcase.page-vue-render.js | 2 +- 49 files changed, 69 insertions(+), 50 deletions(-) create mode 100644 images/npm-profile.jpg diff --git a/about.html b/about.html index 6b0bcc75..349cec82 100644 --- a/about.html +++ b/about.html @@ -17,7 +17,7 @@

About Us

MarkBind is a project based in National University of Singapore, School of Computing, and is funded by an education grant from NUS Center for Development of Teaching and Learning.

You can email us at markbind at comp.nus.edu.sg

Interested in contributing to MarkBind? Visit the MarkBind project on GitHub.

Contributors ✨

Mentors:

Dev Team:

Thanks goes to these wonderful people (emoji key):


Past Members:

+

About Us

MarkBind is a project based in National University of Singapore, School of Computing, and is funded by an education grant from NUS Center for Development of Teaching and Learning.

You can email us at markbind at comp.nus.edu.sg

Interested in contributing to MarkBind? Visit the MarkBind project on GitHub.

Contributors ✨

Mentors:

Dev Team:

Thanks goes to these wonderful people (emoji key):


Past Members:

diff --git a/devGuide/index.page-vue-render.js b/devGuide/index.page-vue-render.js index 6ce1025b..48d3e15e 100644 --- a/devGuide/index.page-vue-render.js +++ b/devGuide/index.page-vue-render.js @@ -5,6 +5,6 @@ with(this){return _c('div',{attrs:{"id":"app"}},[_c('header',{attrs:{"sticky":"" }; var pageVueStaticRenderFns = [function anonymous( ) { -with(this){return _c('div',[_c('footer',[_c('div',{staticClass:"text-center"},[_c('small',[_v("[Generated by "),_c('a',{attrs:{"href":"https://markbind.org/"}},[_v("MarkBind 5.3.0")]),_v(" on Wed, 20 Mar 2024, 15:20:12 UTC]")]),_c('br'),_v(" "),_c('small',[_v("This site is powered by "),_c('a',{attrs:{"href":"https://www.netlify.com/"}},[_v("Netlify")]),_v(".")])])])])} +with(this){return _c('div',[_c('footer',[_c('div',{staticClass:"text-center"},[_c('small',[_v("[Generated by "),_c('a',{attrs:{"href":"https://markbind.org/"}},[_v("MarkBind 5.3.0")]),_v(" on Fri, 22 Mar 2024, 5:24:08 UTC]")]),_c('br'),_v(" "),_c('small',[_v("This site is powered by "),_c('a',{attrs:{"href":"https://www.netlify.com/"}},[_v("Netlify")]),_v(".")])])])])} }]; \ No newline at end of file diff --git a/devGuide/projectManagement.html b/devGuide/projectManagement.html index cf4b5d6a..2ec9ba82 100644 --- a/devGuide/projectManagement.html +++ b/devGuide/projectManagement.html @@ -33,7 +33,11 @@ If there is no second approval yet, wait for a day before merging the PR without the second approval.

This is to allow other developers the chance to review the PR, and delay the merge if there's any significant problems. Not everyone is available all of the time, so please be patient.

Merging

  1. Re-sync the PR branch with master to trigger the CI pipeline.

    Rationale: This is because we do not ask PR authors to rebase their PRs, but the master branch may have since been updated. It is possible for tests to pass on their branch, only to fail when integrating the changes with the master

    This is possible even if GitHub doesn't complain about any merge conflict!

  2. Merge the PR.

    • Refer to the guide Working with PRs @SE-EDU on which merge strategy to use.

      • The default strategy is to do a squash-merge.
      • Use a merge commit if
        • the commits are well-organized, and the branch tackles only one task. This would typically be a PR tackling a substantial issue requiring multiple dependent and successive changes.
      • Use a rebase-merge if
        • the commits are well-organized, and each commit is an independent task. This should be extremely rare as we typically advise that PRs should not have unrelated changes. An example can be found here.
    • Format for the merge/squashed commit title: PR_TITLE (#PR_NUMBER)
      Add built-in support for light themes from bootswatch (#745)

    • For non-trivial PRs, ensure that there is a sensible commit message accompanied by it. Both the title and the body should follow the Git conventions @SE-EDU.

    • Before confirming the merge, do ensure that no other PRs have been merged to master since the time you started drafting the merging commit's title and message. Otherwise, you may face a glitch where GitHub merges your PR without squashing. (Reference: MarkBind#1160)

  3. Use the r.Major/Minor/Patch label to tag the PR.

    Reason: The release manager may not review all PRs, so please add the label to highlight the version impact of the PR. This helps to clarify which milestone the PR should be assigned to.

  4. Draft the release note for breaking changes.

    Reason: The release manager may not have the full details of the PR, so please work with the PR author to prepare a release note (if applicable) in the PR description.

  5. Set a milestone to the PR.

    Reason: We may have missed it during the "Approval" stage, so please add the version milestone if it is missing, so that the drafting of the release notes during the release process will be easier.

  6. Tip: how to undo an accidental merge commit.

    • In the event of a wrong commit strategy chosen, you can undo the merge to master by: -
      1. Switch to the master branch locally.
      2. Run git reset --hard HEAD~1.
      3. Run git push --force.
      4. Create a new PR from the previous PR branch and merge the PR with the correct merge strategy.

    Note: The above should be performed with caution as force pushing rewrites the Git history, which might cause conflicts with any on-going work. You would also need write/push access to master.

Doing a Release

Attention new maintainers! Ensure that:

  • You have the rights to push to master branch on MarkBind's repository, and also to make new releases.
  • You have the rights on npm to make a new release.
  • You have logged in to npm on your terminal with npm login (necessary to publish packages to npm).

  1. Make sure to start with a "clean slate" by running npx lerna clean and then npm run setup in the root MarkBind directory.

  2. Increment the version number by running npx lerna version --no-push --exact. Which to increment (patch, minor or major) depends on what PRs are merged for the new version, which means you must know beforehand about the changes.

    • Double check that the PRs are correctly set to the milestone for the new version. Review the definition of SEMVER and the impact of the PRs.
    • We will specify updated version numbers exactly to ensure that each version will consistently fetch the same versioned internal packages.
    • The end result of this command is version commit with an appropriate tag. We will make use of the generated tag and commit message later.
    • Do not push this commit to the remote repository yet.
  3. Build the core-web package bundle by executing npm run build:web in the root directory, after which you should see changes in the bundles located in packages/core-web/dist.

    Take a peek at the diff for the bundles to see if there are any strange changes.

    • If there were no changes to the files in packages/core-web or packages/vue-components since the last release of MarkBind, you may observe no changes. Simply proceed with the rest of the steps.
    • If there are font files in the diff, and you are sure that there were no changes to the font files, you may ignore & discard the changes.
    • Typically, the following files will be updated: +
      1. Switch to the master branch locally.
      2. Run git reset --hard HEAD~1.
      3. Run git push --force.
      4. Create a new PR from the previous PR branch and merge the PR with the correct merge strategy.

    Note: The above should be performed with caution as force pushing rewrites the Git history, which might cause conflicts with any on-going work. You would also need write/push access to master.

Doing a Release

  1. Make sure you have the correct permissions for MarkBind's GitHub repository and npm organization.

    • For GitHub, you need rights to push to master branch and make new releases.

      • To check if you can make a new release and push to master branch, go to the release page and check for the "Draft a new release" button. +If missing, you may not have permissions for a release.
    • For npm, you need to be in the MarkBind organization.

      • To check if you are in the MarkBind organization, go to your npm profile and check if MarkBind is listed under organizations. +npm profile +Example of profile that has been added to Markbind organisation +
      • There should be 4 packages listed under the organization, markbind-cli, @markbind/core, @markbind/core-web and @markbind/vue_components.
      • Notably, the first three are packages that we publish every release while the last one has since become a private package consumed internally.
  2. Login to your npm account in your terminal by running npm login.

  3. Make sure to start with a "clean slate" by running npx lerna clean and then npm run setup in the root MarkBind directory.

  4. Increment the version number by running npx lerna version --no-push --exact. Which to increment (patch, minor or major) depends on what PRs are merged for the new version, which means you must know beforehand about the changes.

    • Double check that the PRs are correctly set to the milestone for the new version. Review the definition of SEMVER and the impact of the PRs.
    • We will specify updated version numbers exactly to ensure that each version will consistently fetch the same versioned internal packages.
    • The end result of this command is version commit with an appropriate tag. We will make use of the generated tag and commit message later.
    • Do not push this commit to the remote repository yet.
  5. Build the core-web package bundle by executing npm run build:web in the root directory, after which you should see changes in the bundles located in packages/core-web/dist.

    Take a peek at the diff for the bundles to see if there are any strange changes.

    • If there were no changes to the files in packages/core-web or packages/vue-components since the last release of MarkBind, you may observe no changes. Simply proceed with the rest of the steps.
    • If there are font files in the diff, and you are sure that there were no changes to the font files, you may ignore & discard the changes.
    • Typically, the following files will be updated:
      • markbind.min.js
      • markbind.min.css
      • vuecommonappfactory.min.js
      • vuecommonappfactory.min.css
  6. Rebuild the test files using npm run updatetest

    When rebuilding the expected test files, ensure that only the version number is updated for the output .html files. For example, this is correct:

    diff --git a/test/functional/test_site/expected/bugs/index.html b/test/functional/test_site/expected/bugs/index.html
     index 779f279..bb3c602 100644
     --- a/test/functional/test_site/expected/bugs/index.html
    @@ -260,7 +264,7 @@
     to include 'tlylt' in .all-contributorsrc and README.md.
  7. The senior dev approves and merge the automatic PR.
  8. The senior dev deletes the automatic PR.

Note that:


+