diff --git a/CHANGELOG.md b/CHANGELOG.md index 7981969..8619c44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,3 @@ -## [1.0.0] - 2022-05-16 +## [1.0.0] - 2022-06-01 ### Added - Create a Nextcloud app to send users to an external URL to change their password diff --git a/Makefile b/Makefile index 0abcde9..1e46469 100644 --- a/Makefile +++ b/Makefile @@ -1,43 +1,14 @@ # This file is licensed under the Affero General Public License version 3 or # later. See the COPYING file. -# @author Bernhard Posselt -# @copyright Bernhard Posselt 2016 +# @author Raoul Snyman +# @copyright Raoul Snyman 2022 -# Generic Makefile for building and packaging a Nextcloud app which uses npm and -# Composer. +# Makefile for building and packaging the "externalpassword" Nextcloud app. # # Dependencies: # * make -# * which -# * curl: used if phpunit and composer are not installed to fetch them from the web -# * tar: for building the archive -# * npm: for building and testing everything JS +# * docker # -# If no composer.json is in the app root directory, the Composer step -# will be skipped. The same goes for the package.json which can be located in -# the app root or the js/ directory. -# -# The npm command by launches the npm build script: -# -# npm run build -# -# The npm test command launches the npm test script: -# -# npm run test -# -# The idea behind this is to be completely testing and build tool agnostic. All -# build tools and additional package managers should be installed locally in -# your project, since this won't pollute people's global namespace. -# -# The following npm scripts in your package.json install and update the bower -# and npm dependencies and use gulp as build system (notice how everything is -# run from the node_modules folder): -# -# "scripts": { -# "test": "node node_modules/gulp-cli/bin/gulp.js karma", -# "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update", -# "build": "node node_modules/gulp-cli/bin/gulp.js" -# }, app_name=$(notdir $(CURDIR)) build_tools_directory=$(CURDIR)/build/tools @@ -45,48 +16,8 @@ source_build_directory=$(CURDIR)/build/artifacts/source source_package_name=$(source_build_directory)/$(app_name) appstore_build_directory=$(CURDIR)/build/artifacts/appstore appstore_package_name=$(appstore_build_directory)/$(app_name) -npm=$(shell which npm 2> /dev/null) -composer=$(shell which composer 2> /dev/null) -all: build - -# Fetches the PHP and JS dependencies and compiles the JS. If no composer.json -# is present, the composer step is skipped, if no package.json or js/package.json -# is present, the npm step is skipped -.PHONY: build -build: -ifneq (,$(wildcard $(CURDIR)/composer.json)) - make composer -endif -ifneq (,$(wildcard $(CURDIR)/package.json)) - make npm -endif -ifneq (,$(wildcard $(CURDIR)/js/package.json)) - make npm -endif - -# Installs and updates the composer dependencies. If composer is not installed -# a copy is fetched from the web -.PHONY: composer -composer: -ifeq (, $(composer)) - @echo "No composer command available, downloading a copy from the web" - mkdir -p $(build_tools_directory) - curl -sS https://getcomposer.org/installer | php - mv composer.phar $(build_tools_directory) - php $(build_tools_directory)/composer.phar install --prefer-dist -else - composer install --prefer-dist -endif - -# Installs npm dependencies -.PHONY: npm -npm: -ifeq (,$(wildcard $(CURDIR)/package.json)) - cd js && $(npm) run build -else - npm run build -endif +all: distclean source appstore # Removes the appstore build .PHONY: clean @@ -145,11 +76,6 @@ appstore: --exclude="../$(app_name)/js/.*" \ ../$(app_name) -.PHONY: test -test: composer - $(CURDIR)/vendor/phpunit/phpunit/phpunit -c phpunit.xml - $(CURDIR)/vendor/phpunit/phpunit/phpunit -c phpunit.integration.xml - .PHONY: sign sign: appstore mkdir -p "$(CURDIR)/dist" diff --git a/README.md b/README.md index c0bacd0..d93cfd0 100644 --- a/README.md +++ b/README.md @@ -12,22 +12,8 @@ The app can be built by using the provided Makefile by running: This requires the following things to be present: * make -* which +* docker: for signing the app * tar: for building the archive -* curl: used if phpunit and composer are not installed to fetch them from the web -* npm: for building and testing everything JS, only required if a package.json is placed inside the **js/** folder - -The make command will install or update Composer dependencies if a composer.json is present and also **npm run build** if a package.json is present in the **js/** folder. The npm **build** script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.: - -**package.json**: -```json -"scripts": { - "test": "node node_modules/gulp-cli/bin/gulp.js karma", - "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update", - "build": "node node_modules/gulp-cli/bin/gulp.js" -} -``` - ## Publish to App Store @@ -36,20 +22,3 @@ First get an account for the [App Store](http://apps.nextcloud.com/) then run: make && make appstore The archive is located in build/artifacts/appstore and can then be uploaded to the App Store. - -## Running tests -You can use the provided Makefile to run all tests by using: - - make test - -This will run the PHP unit and integration tests and if a package.json is present in the **js/** folder will execute **npm run test** - -Of course you can also install [PHPUnit](http://phpunit.de/getting-started.html) and use the configurations directly: - - phpunit -c phpunit.xml - -or: - - phpunit -c phpunit.integration.xml - -for integration tests diff --git a/composer.json b/composer.json deleted file mode 100644 index a4f541d..0000000 --- a/composer.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "raoul/externalpassword", - "description": "An app for Nextcloud to allow an administrator to direct a user to an external site for changing their password.", - "type": "project", - "license": "AGPL", - "authors": [ - { - "name": "Raoul Snyman" - } - ], - "require": {}, - "require-dev": { - "phpunit/phpunit": "^9" - } -} diff --git a/phpunit.integration.xml b/phpunit.integration.xml deleted file mode 100644 index eae19f1..0000000 --- a/phpunit.integration.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - ./tests/Integration - - - diff --git a/phpunit.xml b/phpunit.xml deleted file mode 100644 index 82c96d6..0000000 --- a/phpunit.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - ./tests/Unit - - -