diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..74a4dedce1f --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.sh text eol=lf diff --git a/MERGE_ELEMENT.md b/MERGE_ELEMENT.md index 23ccfe044b0..778f88504f9 100644 --- a/MERGE_ELEMENT.md +++ b/MERGE_ELEMENT.md @@ -1,54 +1,84 @@ # Merge upstream `element-web` into `master` -Pre-requisites -- Review [element-web releases](https://github.com/element-hq/element-web/releases) -- Sync fork [elecordapp/matrix-js-sdk](https://github.com/elecordapp/matrix-js-sdk) +## Pre-requisites ---- +1. Review changes in [element-web releases](https://github.com/element-hq/element-web/releases) -1. Create a branch named 'element-v1.xx.xx' +1. Review any changes to the app's [config.json file](https://github.com/element-hq/element-web/blob/master/element.io/app/config.json) + +1. Sync js-sdk fork [elecordapp/matrix-js-sdk](https://github.com/elecordapp/matrix-js-sdk) + + > [!NOTE] + > Create a [backup branch](https://github.com/elecordapp/matrix-js-sdk/branches) before syncing the upstream + +## Merge + +1. Create a new branch named `element-v1.xx.xx` + + > [!IMPORTANT] + > Run `gitrm.sh` to ensure elecord hasn't added back any upstream files 1. Merge the upstream master branch - > On GitHub desktop: - > - Select 'Choose a branch to merge into element-v1.xx.xx' - > - Select 'upstream/master' - > - Select 'Create a merge commit' + > [!TIP] + > Using GitHub Desktop + > - Select `Choose a branch to merge into element-v1.xx.xx` + > - Select `upstream/master` + > - Select `Create a merge commit` 1. Resolve merge conflicts - > Use branch file + > [!IMPORTANT] + > Run `gitrm.sh` to discount previously removed upstream files + + > [!TIP] + > Always use the branch file for... > - CHANGELOG.md > - README.md - - > Use upstream/master + >

+ > + > Always use the upstream file for... > - yarn.lock - > Run gitrm.sh - > `git rm --cached -r docs\config.md` - > `git rm --cached -r playwright` + > [!WARNING] + > Don't use the `package.json` branch file, instead resolve merge conflicts as there might be unseen changes + +1. Complete the merge process - > Do not use the `package.json` branch file, resolve merge conflicts as there might be unseen changes +## Review 1. Check for any new files added or unwanted changes -1. Run the build locally + > [!NOTE] + > You can amend the merge commit as needed + +1. Build the app locally and test -1. Commit the yarn lock 'chore: update yarn.lock' +1. Commit the yarn.lock file `chore: update yarn.lock` + > [!WARNING] > Only include additions, no local paths or minified package locks 1. Commit any required regression fixes - > Note, any commits made to this branch won't be included in the changelog + > [!NOTE] + > Any commits made to this branch won't be included in the changelog 1. Publish the branch -1. Create a pull request ('Element v1.XX.XX') +## Pull Request + +1. Create a pull request named `Element v1.xx.xx` + + > Merge upstream Element-web v1.11.xx-yy. + > - Bundles new feature A + > - Adds important feature B 1. Test the app 1. Merge (don’t squash) -> [!IMPORTANT] -> elecord-desktop will also need to be updated +
+ +> [!CAUTION] +> `elecord-desktop` will also need to be updated, simply repeat these steps diff --git a/scripts/gitrm.sh b/scripts/gitrm.sh new file mode 100644 index 00000000000..926ea38f635 --- /dev/null +++ b/scripts/gitrm.sh @@ -0,0 +1,124 @@ +git rm --cached -r test/ +git rm --cached -r playwright/ +git rm --cached -r element.io/ +git rm --cached -r docs/ +git rm --cached -r docker/ +git rm --cached -r debian/ +git rm --cached -r mocks/ +git rm --cached -r .husky/ +git rm --cached sonar-project.properties +git rm --cached playwright.config.ts +git rm --cached jest.config.ts +git rm --cached Dockerfile +git rm --cached CONTRIBUTING.md +git rm --cached config.sample.json +git rm --cached code_style.md +git rm --cached build_config.sample.yaml +git rm --cached book.toml +git rm --cached AUTHORS.rst +git rm --cached .dockerignore +git rm --cached .github/CODEOWNERS +git rm --cached .github/FUNDING.yml +git rm --cached .github/PULL_REQUEST_TEMPLATE.md +git rm --cached .github/labels.yml +git rm --cached .github/release-drafter.yml +git rm --cached .github/renovate.json +git rm --cached -r .github/actions/ +git rm --cached -r .github/ISSUE_TEMPLATE/ +git rm --cached .github/workflows/backport.yml +git rm --cached .github/workflows/build_debian.yaml +git rm --cached .github/workflows/build_develop.yml +git rm --cached .github/workflows/deploy.yml +git rm --cached .github/workflows/docker.yaml +git rm --cached .github/workflows/docs.yml +git rm --cached .github/workflows/end-to-end-tests-netlify.yaml +git rm --cached .github/workflows/end-to-end-tests.yaml +git rm --cached .github/workflows/issue_closed.yml +git rm --cached .github/workflows/localazy_download.yaml +git rm --cached .github/workflows/localazy_upload.yaml +git rm --cached .github/workflows/netlify.yaml +git rm --cached .github/workflows/pending-reviews.yaml +git rm --cached .github/workflows/playwright-image-updates.yaml +git rm --cached .github/workflows/pull_request.yaml +git rm --cached .github/workflows/pull_request_base_branch.yaml +git rm --cached .github/workflows/release-drafter.yml +git rm --cached .github/workflows/release-gitflow.yml +git rm --cached .github/workflows/release.yml +git rm --cached .github/workflows/release_prepare.yml +git rm --cached .github/workflows/sonarqube.yml +git rm --cached .github/workflows/static_analysis.yaml +git rm --cached .github/workflows/sync-labels.yml +git rm --cached .github/workflows/tests.yml +git rm --cached .github/workflows/triage-assigned.yml +git rm --cached .github/workflows/triage-incoming.yml +git rm --cached .github/workflows/triage-labelled.yml +git rm --cached .github/workflows/triage-move-review-requests.yml +git rm --cached .github/workflows/triage-stale.yml +git rm --cached .github/workflows/triage-unlabelled.yml +git rm --cached .github/workflows/update-jitsi.yml +git rm --cached .github/workflows/update-topics.yaml +git rm --cached -r __mocks__/ +git rm --cached knip.ts +git rm --cached developer_guide.md +rm -rf test/ +rm -rf playwright/ +rm -rf element.io/ +rm -rf docs/ +rm -rf docker/ +rm -rf debian/ +rm -rf mocks/ +rm -rf .husky/ +rm sonar-project.properties +rm playwright.config.ts +rm jest.config.ts +rm Dockerfile +rm CONTRIBUTING.md +rm config.sample.json +rm code_style.md +rm build_config.sample.yaml +rm book.toml +rm AUTHORS.rst +rm .dockerignore +rm .github/CODEOWNERS +rm .github/FUNDING.yml +rm .github/PULL_REQUEST_TEMPLATE.md +rm .github/labels.yml +rm .github/release-drafter.yml +rm .github/renovate.json +rm -rf .github/actions/ +rm -rf .github/ISSUE_TEMPLATE/ +rm .github/workflows/backport.yml +rm .github/workflows/build_debian.yaml +rm .github/workflows/build_develop.yml +rm .github/workflows/deploy.yml +rm .github/workflows/docker.yaml +rm .github/workflows/docs.yml +rm .github/workflows/end-to-end-tests-netlify.yaml +rm .github/workflows/end-to-end-tests.yaml +rm .github/workflows/issue_closed.yml +rm .github/workflows/localazy_download.yaml +rm .github/workflows/localazy_upload.yaml +rm .github/workflows/netlify.yaml +rm .github/workflows/pending-rfeviews.yaml +rm .github/workflows/playwright-image-updates.yaml +rm .github/workflows/pull_request.yaml +rm .github/workflows/pull_request_base_branch.yaml +rm .github/workflows/release-drafter.yml +rm .github/workflows/release-gitflow.yml +rm .github/workflows/release.yml +rm .github/workflows/release_prepare.yml +rm .github/workflows/sonarqube.yml +rm .github/workflows/static_analysis.yaml +rm .github/workflows/sync-labels.yml +rm .github/workflows/tests.yml +rm .github/workflows/triage-assigned.yml +rm .github/workflows/triage-incoming.yml +rm .github/workflows/triage-labelled.yml +rm .github/workflows/triage-move-rfeview-rfequests.yml +rm .github/workflows/triage-stale.yml +rm .github/workflows/triage-unlabelled.yml +rm .github/workflows/update-jitsi.yml +rm .github/workflows/update-topics.yaml +rm -rf __mocks__/ +rm knip.ts +rm developer_guide.md