From 547c6ed33d71e96b004503986be3b820e2193b41 Mon Sep 17 00:00:00 2001 From: "Charlton, Scott R" Date: Mon, 27 Sep 2021 18:01:34 -0700 Subject: [PATCH] cleaning up r-build --- .github/workflows/cmake.yml | 18 +++----- R/{phreeqc/inst => }/CITATION | 0 R/{phreeqc => }/LICENSE.note | 0 R/Makefile | 82 ++++++++++++++++++++++++++--------- jenkins-R-dist.sh | 35 +++++++-------- 5 files changed, 82 insertions(+), 53 deletions(-) rename R/{phreeqc/inst => }/CITATION (100%) rename R/{phreeqc => }/LICENSE.note (100%) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 830baf0f..7cc7fff3 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -122,21 +122,13 @@ jobs: shell: Rscript {0} - name: versioning - run: ./jenkins-R-dist.sh -v ${{ needs.init.outputs.VER }} -r ${{ needs.init.outputs.REL }} -d ${{ needs.init.outputs.DATE }} + run: ./jenkins-dist.sh -v ${{ needs.init.outputs.VER }} -r ${{ needs.init.outputs.REL }} -d ${{ needs.init.outputs.DATE }} - # - name: versioning - # run: ./jenkins-dist.sh -v ${{ needs.init.outputs.VER }} -r ${{ needs.init.outputs.REL }} -d ${{ needs.init.outputs.DATE }} + - name: build + run: cd R && make build - # - name: R - # run: | - # cd R - # mkdir -p phreeqc/man - # mkdir -p phreeqc/src/phreeqcpp - # mkdir -p phreeqc/R - # mkdir -p phreeqc/data - # echo "# Generated by roxygen2: do not edit by hand" > phreeqc/NAMESPACE - # DATE=$(date -d ${{ needs.init.outputs.DATE }} "+%Y-%m-%d") - # make VERSION=${{ needs.init.outputs.VER }} RELEASE_DATE=$DATE build + - name: check + run: cd R && make check - uses: actions/upload-artifact@v2 with: diff --git a/R/phreeqc/inst/CITATION b/R/CITATION similarity index 100% rename from R/phreeqc/inst/CITATION rename to R/CITATION diff --git a/R/phreeqc/LICENSE.note b/R/LICENSE.note similarity index 100% rename from R/phreeqc/LICENSE.note rename to R/LICENSE.note diff --git a/R/Makefile b/R/Makefile index ab1ef1a7..ad1d132d 100644 --- a/R/Makefile +++ b/R/Makefile @@ -1,19 +1,36 @@ +# phreeqc TOPDIR +# ├── data DATADIR +# ├── inst INST +# ├── man MAN +# ├── R +# └── src IDEST +# └── phreeqcpp DEST +# + CP=cp -f -TOPDIR=phreeqc -IDEST=phreeqc/src -DEST=phreeqc/src/phreeqcpp +TOPDIR ?= phreeqc +IDEST=$(TOPDIR)/src +DEST=$(TOPDIR)/src/phreeqcpp ISRC=../src SRC=../src/phreeqcpp -INST=phreeqc/inst +INST=$(TOPDIR)/inst DBDIR=../database -DATADIR=phreeqc/data +DATADIR=$(TOPDIR)/data EXDIR=../phreeqc3-examples -MAN=phreeqc/man +MAN=$(TOPDIR)/man +R=$(TOPDIR)/R -SVN_URL := http://internalbrr.cr.usgs.gov/svn_GW -RELEASE ?= $(shell svn info $(SVN_URL) | egrep "Revision:" | cut -b 10- | ( read one two ; echo $$one ) ) +_TOPDIR := $(shell mkdir -p $(TOPDIR)) +_IDEST := $(shell mkdir -p $(IDEST)) +_DEST := $(shell mkdir -p $(DEST)) +_INST := $(shell mkdir -p $(INST)) +_DATADIR := $(shell mkdir -p $(DATADIR)) +_MAN := $(shell mkdir -p $(MAN)) +_R := $(shell mkdir -p $(R)) + +RELEASE ?= $(shell curl -sS https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/rel.py | python3 -) RELEASE_DATE ?= $(shell date "+%Y-%m-%d") -VERSION ?= 1.0 +VERSION ?= $(shell curl -sS https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/next_ver.sh | /bin/sh) DBS = \ Amm.ascii \ @@ -281,11 +298,12 @@ $(DATADIR)/examples.rda : $(EXS) build-examples.R R --no-save --no-restore CMD BATCH build-examples.R rm -f .RData -roxygenize $(MAN)/phreeqc-package.Rd : phreeqc/R/phreeqc.R - rm -f $(RDFILES) - rm -f .RData - R --no-save --no-restore CMD BATCH roxygenize.R - touch $(MAN)/phreeqc-package.Rd +# roxygenize $(MAN)/phreeqc-package.Rd : $(R)/phreeqc.R +# rm -f $(RDFILES) +# rm -f .RData +# # R --no-save --no-restore CMD BATCH roxygenize.R +# # touch $(MAN)/phreeqc-package.Rd +# Rscript -e 'devtools::document(pkg = "phreeqc")' ##$(PSRC): $(DEST) @@ -809,8 +827,18 @@ $(INST)/ex2 : ../phreeqc3-examples/ex2 ######################################## +roxygenize $(MAN)/phreeqc-package.Rd : $(R)/phreeqc.R + rm -f $(RDFILES) + rm -f .RData +# R --no-save --no-restore CMD BATCH roxygenize.R +# touch $(MAN)/phreeqc-package.Rd + Rscript -e 'devtools::document(pkg = "phreeqc")' + check : all - Rscript -e "devtools::check('phreeqc')" + Rscript -e "devtools::check(pkg = 'phreeqc')" + +# check_built : +# Rscript -e "devtools::check_built()" valgrind : install R -d "valgrind --tool=memcheck --leak-check=full" --vanilla < valgrind.R 2>&1 | tee valgrind.full.out @@ -818,12 +846,14 @@ valgrind : install install : all R CMD INSTALL --build phreeqc +$(TOPDIR)/R/phreeqc.R : phreeqc.R.in export_sed -phreeqc/R/phreeqc.R : export_sed +$(TOPDIR)/DESCRIPTION : DESCRIPTION.in export_sed -phreeqc/DESCRIPTION : export_sed +$(TOPDIR)/inst/CITATION : CITATION.in export_sed -export_sed : +.PHONY: export_sed +export_sed : check-vars sed \ -e 's/@VERSION@/$(VERSION)/g' \ < DESCRIPTION.in > $(TOPDIR)/DESCRIPTION @@ -831,6 +861,9 @@ export_sed : -e 's/@VERSION@/$(VERSION)/g' \ -e 's/@RELEASE_DATE@/$(RELEASE_DATE)/g' \ < phreeqc.R.in > $(TOPDIR)/R/phreeqc.R + echo "# Generated by roxygen2: do not edit by hand" > $(TOPDIR)/NAMESPACE + $(CP) CITATION $(TOPDIR)/inst/CITATION + $(CP) LICENSE.note $(TOPDIR)/LICENSE.note build : all R CMD build --resave-data phreeqc @@ -847,10 +880,19 @@ $(IDEST)/R.cpp : R.cpp < $< > $@ $(IDEST): - mkdir $(IDEST) + mkdir -p $(IDEST) $(DEST): - mkdir $(DEST) + mkdir -p $(DEST) clean : rm -f $(PSRC) $(XSRC) $(DEST)/*.o $(IDEST)/*.o $(DEST)/*.so + +.PHONY: check-vars +check-vars: +ifndef VERSION + $(error VERSION is undefined) +endif +ifndef RELEASE_DATE + $(error RELEASE_DATE is undefined) +endif diff --git a/jenkins-R-dist.sh b/jenkins-R-dist.sh index 63b296d7..36cad362 100755 --- a/jenkins-R-dist.sh +++ b/jenkins-R-dist.sh @@ -4,28 +4,28 @@ # set DATE # if [ -z "$DATE" ]; then - DATE=$(date "+%x") + DATE=$(date "+%x") fi -DATE=$(date -d $DATE "+%Y-%m-%d") +DATE=$(date -d $DATE --rfc-3339=date) # # set VER # if [ -z "$VER" ]; then - ###wget https://cran.r-project.org/package=phreeqc -O index.xhtml 2> /dev/null - ###VER=`xmlstarlet sel -t -m "/_:html/_:body/_:table[1]/_:tr[1]/_:td[2]" -v . -n index.xhtml 2> /dev/null` - VER=$(curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/phreeqc-version.txt) - ver_major=$(echo "$VER" | cut -d '.' -f 1) - ver_minor=$(echo "$VER" | cut -d '.' -f 2) - ver_patch=$(echo "$VER" | cut -d '.' -f 3) - ver_patch=$((ver_patch+1)) + ###wget https://cran.r-project.org/package=phreeqc -O index.xhtml 2> /dev/null + ###VER=`xmlstarlet sel -t -m "/_:html/_:body/_:table[1]/_:tr[1]/_:td[2]" -v . -n index.xhtml 2> /dev/null` + VER=$(curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/phreeqc-version.txt) + ver_major=$(echo "$VER" | cut -d '.' -f 1) + ver_minor=$(echo "$VER" | cut -d '.' -f 2) + ver_patch=$(echo "$VER" | cut -d '.' -f 3) + ver_patch=$((ver_patch+1)) else - ver_major=$(echo "$VER" | cut -d '.' -f 1) - ver_minor=$(echo "$VER" | cut -d '.' -f 2) - ver_patch=$(echo "$VER" | cut -d '.' -f 3) + ver_major=$(echo "$VER" | cut -d '.' -f 1) + ver_minor=$(echo "$VER" | cut -d '.' -f 2) + ver_patch=$(echo "$VER" | cut -d '.' -f 3) fi if [ -z "$ver_major" ] || [ -z "$ver_minor" ] || [ -z "$ver_patch" ]; then - exit 1 + exit 1 fi VER="${ver_major}.${ver_minor}.${ver_patch}" export VER @@ -36,16 +36,11 @@ export VER curl https://raw.githubusercontent.com/usgs-coupled/phreeqc-version/main/ver.py -o ver.py HEAD=$(python3 ver.py) if [ -z "$REL" ]; then - REL="$HEAD" + REL="$HEAD" fi # sed files /bin/sh jenkins-dist.sh -v ${VER} -r ${REL} -d ${DATE} -pr ${TAG} cd R -mkdir -p phreeqc/man -mkdir -p phreeqc/src/phreeqcpp -mkdir -p phreeqc/R -mkdir -p phreeqc/data -echo "# Generated by roxygen2: do not edit by hand" > phreeqc/NAMESPACE -# make VERSION=${VER} RELEASE_DATE=${DATE} build +make VERSION=${VER} RELEASE_DATE=${DATE} build make VERSION=${VER} RELEASE_DATE=${DATE} check