Merge pull request #3945 from vector-im/dbkr/fetch_deps_script
Script to fetch corresponding branches of dependent projectspull/3967/head
						commit
						50b46af943
					
				| 
						 | 
				
			
			@ -2,6 +2,5 @@ language: node_js
 | 
			
		|||
node_js:
 | 
			
		||||
    - 6   # node v6, to match jenkins
 | 
			
		||||
install:
 | 
			
		||||
    - scripts/fetch-develop.deps.sh
 | 
			
		||||
    - npm install
 | 
			
		||||
    - (cd node_modules/matrix-js-sdk && npm install)
 | 
			
		||||
    - (cd node_modules/matrix-react-sdk && npm install)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										30
									
								
								README.md
								
								
								
								
							
							
						
						
									
										30
									
								
								README.md
								
								
								
								
							| 
						 | 
				
			
			@ -58,27 +58,35 @@ to build.
 | 
			
		|||
1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
 | 
			
		||||
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`
 | 
			
		||||
1. Switch to the riot-web directory: `cd riot-web`
 | 
			
		||||
1. Install the prerequisites: `npm install`
 | 
			
		||||
1. If you are using the `develop` branch of vector-web, you will probably need
 | 
			
		||||
   to rebuild some of the dependencies, due to
 | 
			
		||||
   https://github.com/npm/npm/issues/3055:
 | 
			
		||||
 | 
			
		||||
1. If you're using the `develop` branch, install the develop versions of the
 | 
			
		||||
   dependencies, as the released ones will be too old:
 | 
			
		||||
   ```
 | 
			
		||||
   (cd node_modules/matrix-js-sdk && npm install)
 | 
			
		||||
   (cd node_modules/matrix-react-sdk && npm install)
 | 
			
		||||
   scripts/fetch-develop-deps.sh
 | 
			
		||||
   ```
 | 
			
		||||
   Whenever you git pull on riot-web you will also probably need to force an update
 | 
			
		||||
   to these dependencies - the easiest way is probably:
 | 
			
		||||
   to these dependencies - the simplest way is to re-run the script, but you can also
 | 
			
		||||
   manually update and reuild them:
 | 
			
		||||
   ```
 | 
			
		||||
   rm -rf node_modules/matrjx-{js,react}-sdk && npm i
 | 
			
		||||
   (cd node_modules/matrix-js-sdk && npm install)
 | 
			
		||||
   (cd node_modules/matrix-react-sdk && npm install)
 | 
			
		||||
   cd matrix-js-sdk
 | 
			
		||||
   git pull
 | 
			
		||||
   npm install # re-run to pull in any new dependencies
 | 
			
		||||
   # Depending on your version of npm, npm run build may happen as part of
 | 
			
		||||
   # the npm install above (https://docs.npmjs.com/misc/scripts#prepublish-and-prepare)
 | 
			
		||||
   # If in doubt, run it anyway:
 | 
			
		||||
   npm run build
 | 
			
		||||
   cd ../matrix-react-sdk
 | 
			
		||||
   git pull
 | 
			
		||||
   npm install
 | 
			
		||||
   npm run build
 | 
			
		||||
   ```
 | 
			
		||||
   However, we recommend setting up a proper development environment (see "Setting
 | 
			
		||||
   up a development environment" below) if you want to run your own copy of the
 | 
			
		||||
   `develop` branch, as it makes it much easier to keep these dependencies
 | 
			
		||||
   up-to-date.  Or just use https://riot.im/develop - the continuous integration
 | 
			
		||||
   release of the develop branch.
 | 
			
		||||
   (Note that we don't reference the develop versions in git directly due to
 | 
			
		||||
   https://github.com/npm/npm/issues/3055)
 | 
			
		||||
1. Install the prerequisites: `npm install`
 | 
			
		||||
1. Configure the app by copying `config.sample.json` to `config.json` and
 | 
			
		||||
   modifying it (see below for details)
 | 
			
		||||
1. `npm run dist` to build a tarball to deploy. Untaring this file will give
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								release.sh
								
								
								
								
							
							
						
						
									
										16
									
								
								release.sh
								
								
								
								
							| 
						 | 
				
			
			@ -9,6 +9,22 @@ set -e
 | 
			
		|||
 | 
			
		||||
cd `dirname $0`
 | 
			
		||||
 | 
			
		||||
for i in matrix-js-sdk matrix-react-sdk
 | 
			
		||||
do
 | 
			
		||||
    depver=`cat package.json | jq -r .dependencies.\"$i\"`
 | 
			
		||||
    latestver=`npm show $i version`
 | 
			
		||||
    if [ "$depver" != "$latestver" ]
 | 
			
		||||
    then
 | 
			
		||||
        echo "The latest version of $i is $latestver but package.json depends on $depver"
 | 
			
		||||
        echo -n "Type 'Yes' to continue anyway: "
 | 
			
		||||
        read resp
 | 
			
		||||
        if [ "$resp" != "Yes" ]
 | 
			
		||||
        then
 | 
			
		||||
            echo "OK, never mind."
 | 
			
		||||
            exit 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# bump Electron's package.json first
 | 
			
		||||
release="${1#v}"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Fetches the js-sdk and matrix-react-sdk dependencies for development
 | 
			
		||||
# or testing purposes
 | 
			
		||||
# If there exists a branch of that dependency with the same name as
 | 
			
		||||
# the branch the current checkout is on, use that branch. Otherwise,
 | 
			
		||||
# use develop.
 | 
			
		||||
 | 
			
		||||
# Look in the many different CI env vars for which branch we're
 | 
			
		||||
# building
 | 
			
		||||
if [[ "$TRAVIS" == true ]]; then
 | 
			
		||||
    curbranch="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}"
 | 
			
		||||
else
 | 
			
		||||
    # ghprbSourceBranch for jenkins github pull request builder
 | 
			
		||||
    # GIT_BRANCH for other jenkins builds
 | 
			
		||||
    curbranch="${ghprbSourceBranch:-$GIT_BRANCH}"
 | 
			
		||||
    # Otherwise look at the actual branch we're on
 | 
			
		||||
    if [ -z "$curbranch" ]
 | 
			
		||||
    then
 | 
			
		||||
        curbranch=`git rev-parse --abbrev-ref HEAD`
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "Determined branch to be $curbranch"
 | 
			
		||||
 | 
			
		||||
function dodep() {
 | 
			
		||||
    org=$1
 | 
			
		||||
    repo=$2
 | 
			
		||||
    rm -rf $repo || true
 | 
			
		||||
    git clone https://github.com/$org/$repo.git $repo
 | 
			
		||||
    pushd $repo
 | 
			
		||||
    git checkout $curbranch || git checkout develop
 | 
			
		||||
    echo "$repo set to branch "`git rev-parse --abbrev-ref HEAD`
 | 
			
		||||
    popd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dodep matrix-org matrix-js-sdk
 | 
			
		||||
dodep matrix-org matrix-react-sdk
 | 
			
		||||
 | 
			
		||||
mkdir -p node_modules
 | 
			
		||||
cd node_modules
 | 
			
		||||
 | 
			
		||||
ln -s ../matrix-js-sdk ./
 | 
			
		||||
pushd matrix-js-sdk
 | 
			
		||||
npm install
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
ln -s ../matrix-react-sdk ./
 | 
			
		||||
pushd matrix-react-sdk
 | 
			
		||||
mkdir -p node_modules
 | 
			
		||||
cd node_modules
 | 
			
		||||
ln -s ../../matrix-js-sdk matrix-js-sdk
 | 
			
		||||
cd ..
 | 
			
		||||
npm install
 | 
			
		||||
popd
 | 
			
		||||
# Link the reskindex binary in place: if we used npm link,
 | 
			
		||||
# npm would do this for us, but we don't because we'd have
 | 
			
		||||
# to define the npm prefix somewhere so it could put the
 | 
			
		||||
# intermediate symlinks there. Instead, we do it ourselves.
 | 
			
		||||
mkdir -p .bin
 | 
			
		||||
ln -s ../matrix-react-sdk/scripts/reskindex.js .bin/reskindex
 | 
			
		||||
| 
						 | 
				
			
			@ -8,10 +8,13 @@ nvm use 6
 | 
			
		|||
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
# check out corresponding branches of dependencies
 | 
			
		||||
`dirname $0`/fetch-develop.deps.sh
 | 
			
		||||
 | 
			
		||||
npm install
 | 
			
		||||
 | 
			
		||||
# apparently npm 3.10.3 on node 6.4.0 doesn't upgrade #develop target with npm install unless explicitly asked.
 | 
			
		||||
npm install matrix-react-sdk matrix-js-sdk olm
 | 
			
		||||
npm install olm
 | 
			
		||||
 | 
			
		||||
# install olm. A naive 'npm i ./olm/olm-*.tgz' fails because it uses the url
 | 
			
		||||
# from our package.json (or even matrix-js-sdk's) in preference.
 | 
			
		||||
| 
						 | 
				
			
			@ -23,11 +26,6 @@ npm install matrix-react-sdk matrix-js-sdk olm
 | 
			
		|||
#rm -r node_modules/olm
 | 
			
		||||
#cp -r olm/package node_modules/olm
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# we may be using dev branches of js-sdk and react-sdk, in which case we need to build them
 | 
			
		||||
(cd node_modules/matrix-js-sdk && npm install)
 | 
			
		||||
(cd node_modules/matrix-react-sdk && npm install)
 | 
			
		||||
 | 
			
		||||
# run the mocha tests
 | 
			
		||||
npm run test
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue