Files
weewx/makefile
Bill Richter 93436a927c once again try to update my fork (#2)
* Got test suites working again.

* Updated TODO

* indicate specific firmware for cc3000

* clarify rainwise firmware

* Further refinement

- max and maxtime now updated
- reworked the progress function, now a method in the class

Have left __main__ code in that has been used for testing windSpeed
recalculation fix

* indicate when calibrations are ignored

* Now emits the barometer trend in LOOP packets as field 'trendIcon'

Vantage only.

* Updated TODO guide, reflecting this morning's phone call.

* Presses on, despite database error

* Simplified patching by moving metadata code to DaySummaryManager

* Got rid of _getVersion()

Can now get it from _read_metadata

* Remove interval weighting fix from weewx startup

Refer TODO.txt

* Update TODO.txt

* added write timeout to ultimeter driver

* better logging when cc3000 loses contact with sensors

* document some of the channel, sensor, and logger specifics for the wmr100/wmr200 hardware

* Removed the p word, patch.py is now database.py, rejigged wee_database as per skype and followup emails

- progress function for fixes included as a method in base class that
can be overridden
- much changing of logging to give consistent results/output
- believe I retained Tom's recent changes to patch.py (commit 4acf752)

* Picks daily summary weights on the basis of database version

* Rewrote the backfill routine (again)

* wee_database now uses new version of backfill_day_summary

* Fixed problem that prevented cold startup

* Revised to reflect latest wee_database incantation

* Modified weighting fix

Should not mess with lessUpdate
Delete lastWeightPatch after successful patch

* Check to make sure the daily summaries have not been partially updated.

* Revised to reflect latest wee_database incantation

* Revised wee_database and interval weighting paras, added windSpeed recalc para

* Removed vacuum

* Updated what has been done and committed

* Better diagnostics with partial update of the daily summaries.

* MySQL now uses transaction isolation level READ COMMITTED

* Add .config (#204)

* Changed semantics of "$last_xxx" tags.

* Template test updates including fixing issue #201 (#205)

* Add .config

* Standardise test skin for index.html.tml to remove "%x %X" locale dependent formatting. Note: Used 24 hour time as AM/PM can also be locale dependent.

Also include fixes for line formatting in some other test files and expected results.

* sysctlbyname is not available on every platform, so catch AttributeError too, otherwise cheetah fails with a name error

* Got rid of tabs

* update usb mode info for acurite models

* Removed intervalgenRoundTS and archiveDaysAgoSpan.

* Simplified tags. Got template test working again.

* Somehow, style "indent" got lost

* Documented new "$ago" tags.

* Documented $ago options, as well as .start and .end

* Update changes doc

* Stupid typo

* use markdown instead of html for README

* indenting seems to confuse markdown's handling of urls

* Left over $last_day in $spans example (#206)

* Add .config

* Standardise test skin for index.html.tml to remove "%x %X" locale dependent formatting. Note: Used 24 hour time as AM/PM can also be locale dependent.

Also include fixes for line formatting in some other test files and expected results.

* Left over $last_day in $spans example.

* a user-specified sensor_map will update, not replace, the default sensor_map

* Updated the upgrade guide.

* ensure that weewx-multi works on deb and rpm as well as setup.py

* document the sensor mapping changes

* Added comprehensive example to customizing guide.

* Updated TODO

* Got the weighting update to work on MySQL

* added crude caching of pressure in wmr300

* Fixed typo

* Fixed little errors. Consistently use "tag", instead of "dot code."

* no altimeter, just pressure and barometer

* Fixed little HTML problems.

* Reformatted, in anticipation of a refactoring of some sections.

* Fixed location of 'Version'

So it works with automatic replacement of 'Version'

* initial experiment with different fonts

* override jquery-ui hijacking of toc font family

* bring header highlighting to h2 to correlate with toc.  reduce post-header margins.

* fix some table header cruft.  prevent indent sections from overflowing right margin.  let the table cells breath.

* fix broken tty formatting

* Checkpoint

Work in progress.

* Refined examples of creating new units and groups

* Polishing. Or, maybe fiddling?

* minor css fixes.  rearrange troubleshooting sections about pressure.

* minor cleanup to readme

* Fixed test suites

Add MySQL back to template tests.

* Reworked the iteration examples.

* Corrected and clarified the units used in the "electricity" example.

* remove write_timeout since naming is inconsistent between pyserial versions and there is no backward compatibility

* remove write_timeout from ultimeter

* Minor changes to users guide

* increase body size to 100%.  background for code.  weeWX in titles.  true bold for monospace.  prep for direct font comparisons.

* Clarified the role of encoding

* update utilities guide with suggested wee_database descriptions and args

* more compaction

* increase margins on html examples.  use droid serif for html examples.

* Clarified a few things

* decode weewx into weeWX

* include transaction limit defaults

* eliminate transaction-limit

* weeWX fixes in install pages.  more fixes to utilities.

* missed a few code spans

* fix version label alignment

* use only major.minor for docs

* Fix error where import fields that are None can cause Source.mapRawData() to crash in some cases

* Updated TODO and NEW_FEATURES

* There will be no daykeys if the daily summaries have been dropped.

* Restructure usage string, hard code transaction days

* dry-run goes with fix-strings, not check-strings

* Log daily summary version

* No need to check for weewx.debug

* include examples in manifest

* added examples and extensions to data_files

* do not install sample extensions

* Can now specify date field separator for Cumulus imports, weewx -> weeWX

* Clarified option strings

* Rudimentary test of selective daily summary rebuild

* No longer allows selective rebuild of the daily summaries

if the summaries are not complete

* Hardwired UTF-8 encoding, but with a warning comment.

* Hardwired UTF-8 encoding, but with a warning comment.

* Documented Cumulus import separator config option

* Added comments about Tools.

* Changed to execute in user environment

* Ported to PyMySQL as an alternative to python-mysqldb

See https://github.com/PyMySQL/PyMySQL for a description of PyMySQL

* Recognize additional MySQL "Can't connect" error

* Fixed error in test suites

Subsequent tests depended on ordering of a dictionary.

* pymysql seems to have problems connecting via file socket

unless it is told explicitly about it.

* Workaround for pypy compiler

* Defaults now support MySQLdb over pymysql

* Fixed bug in record augmentation.

The augmentation was happening without giving StdConvert a chance to do
its thing.

* More clear msg when encountering an ImportError

* Clarified the relationship between archive period and report_timing option, aded note regarding primacy of the report cycle

* Reverted back to MySQLdb only version.

* Changed config option names but never changed the code!

* One transaction for updating daily high/lows and archive record

Formerly, these were done in two transactions.

* v3.7.0a2

* Adjustable value for how long to wait after a bad uploader login.

Option retry_login. Fixes issue #212.

* Fixed Cumulus import rain field issue

wee_import will try to use field 26(AA) - midnight reset daily rainfall
but if not available due it will revert to field 9(J) or 11(L)

* Switched back to __str__ when extracting string out of template.

.respond() doesn't seem to encode Unicode characters properly

* Fix errors in wee_import WU step-by-step, remove Cumulus version caveat on rain

* Now uses dedicated test users 'weewx1' and 'weewx2'

* Formal check of the various MySQLdb exceptions.

* Added sqlite3 exceptions.

* Reworked check_strings() output (#213)

Reworked check_strings() screen and syslog output:
- now gives progress ala --rebuild-daily
- syslog is silent for --check-strings and --fix-strings with --dry-run
- left 'Preparing' (rather than 'Starting') but added 'this may take a
while' as there is a significant delay in dbmanager.genBatchRows()
initialising at line 619 (well there was for 400k records)

* reduce debug log spewage in wmr300 driver

* Finished formal test of errors

* First cut at V3.7 exception hierarchy

* Ported the weedb sqlite driver to the new exception hierarchy.

* Ported MySQLdb to the new database exception hierarchy.

* windSpeed fix now gracefully handles no windSpeed summary table, tweaked --update output/logging

* Now picks up absence of windSpeed daily summary

* The weedb Connection object can now be used in a "with" clause.

* The weedb Cursor object can now be used in a "with" clause.

* V3.7.0a3

* more code removal

* code formatting only

* use apt instructions for debian installs

* Reworked --wee-database section of Utilities Guide to reflect current wee-database operation

- revised usage
- reword --rebuild-daily
- reword --check
- reword --update

* More details on upgrading

* Moved start time to just before applying the patch

* Accumulator is now initialized with override values from weewx.conf

* Added sentences about wee_import/interval and weight patching multiple dbs

* remove extensions from rpm and deb packages

* v3.7.0b1

* Cleaned up some HTML warnings.

* must do a try loop at the read level so we can skip the no data 'errors' and return empty buffer so that a subsequent write will get the station to talk again

* Slightly more robust mechanism for decoding last time a file was FTP'd.

* adjust wording of weighting description

* added examples

* simplify

* fixed typo

* fixed typo

* read /etc/default before bailing out

* make init script work properly with /etc/default/weewx

* make output consistent

* more simplification

* keep PEP happy

* avoid resource consumption from slow reports by extending the StdReport.max_wait.  provide log messages when it happens.

* new features have move to the roadmap

* no more todo items left

* do not emit default sensor_map to the config

* aborted attempt to get additional battery status

* bump to 3.7.0b2

* do recipe using wget instead of curl

* forgot the O option to wget

* do not warn when calibrations are ignored - the implementation resulted in too many log entries

* get rid of tabs

* added notes about wmr300 rain counter and logger

* added norwegian 'no data available' as 'Ingen data er tilgjengelige'

* simplify.  eliminate more passive voice and gerunds.

* avoid run-on

* provide better feedback for operational errors.  make manager logging more consistent.

* fix typo in wmr300 ConfEditor

* decode heatindex and windchill from wmr300 sensor outputs

* fixed bad extract_signed invocation

* fixed wmr* partial packets note

* added mysqldb install instructions to userguide

* minor html fixes

* added link to wee_extension

* clarify acurite sensor transmission periods.

* added battery status for all wmr100 remote t/h sensors

* added battery status for all wmr100 remote t sensors

* document changes to wmr100, wmr200, wmr9x8 drivers.  fix 'Calculatios' typo.

* fixed inverted wmr200 battery status

* rename fault_out to out_fault to match pattern of other faults

* make battery status labels consistent across all wmr drivers

* wmr300 driver moves from rc to 0.18

* bump to 3.7.0b3

* css fixes: neutralize the glaring yellow; brighten the note green to more closely match the tone of warning red; @media tweaks to match font changes.

* fix column title

* distinguish selection color from code color

* fixed shift bug in weewx-multi

* Fixed (I think) issue #219

* update logwatch script to properly handle revised generator log messages

refer commit
03c3e4ef57 (diff-3cefdd7265f340e9683b0a2d0417b70f)

* normalize the quick-start

* Merge branch 'development', remote branch 'origin'

* fix layout table width on installation pages

* v3.7.0b4

* use released_versions instead of previous_versions

* Merge branch 'development', remote branch 'origin'

* parameterize release rule.  make release rule idempotent.

* replace cheetahtemplate.org with pythonhosted.org

* wee_database --help output was slightly different to reality

* Removed BOM at beginning of customizing.htm

* wee_database --help output was slightly different to reality

* Reworded comment on whether to --update daily summaries.

* cater for change in manager log output

* remove misleading windGustDir info

* bump to 3.7.0

* Added date to change log

* escape the dollars in release target

* fixed log syntax

* adjust log level for wmr100 bad usb report

* emit rapidfire cache info only when debug >= 3

* enable post_interval overrides for WOW uploader

* Fixes issue #230, exception when using Rapidfire with metric units

* Added StdRESTbase back in.

It seems that some uploaders still depend on it.

* Fixed problem that prevented a MySQL port from being specified.

* Added antialias GIF to list of files to be installed.

* Make sure GIF files get uploaded

* distribute examples in a single directory

* distinguish docs/examples vs examples

* Fixed bug that prevented a port from being specified for MySQL installations.

* Removed redundant change log entry

* Add MySQL Error 2003 to exceptions (#234)

* Added PR #234 to change log

* Documented change in location of the examples

* update examples paths in remaining guides.  explicitly list all path changes for examples.

* By default, autocommit is now enabled for the MySQL driver. Fixes issue #237.

Included regression test.
2017-03-20 00:41:34 -07:00

284 lines
9.7 KiB
Makefile

# -*- makefile -*-
# this makefile controls the build and packaging of weewx
# Copyright 2013 Matthew Wall
# if you do not want to sign the packages, set SIGN to 0
SIGN=1
# destination for uploading releases
UPLOADDIR=weewx.com:/downloads/development_versions/
# destination for uploading docs
DOCDST=weewx.com:/
# home directory at weewx.com
WEEWX_COM_HOME=/home/content/t/o/m/tomkeffer
WEEWX_DOWNLOADS=$(WEEWX_COM_HOME)/html/downloads
# extract version to be used in package controls and labels
VERSION=$(shell grep "__version__.*=" bin/weewx/__init__.py | sed -e 's/__version__=//' | sed -e 's/"//g')
# just the major.minor part of the version
MMVERSION:=$(shell echo "$(VERSION)" | sed -E 's%.[0-9a-z]+$$%%')
CWD = $(shell pwd)
BLDDIR=build
DSTDIR=dist
DOCSRC=docs
PYTHON=python
all: help
help: info
@echo "options include:"
@echo " info display values of variables we care about"
@echo " install run the generic python install"
@echo " version get version from __init__ and insert elsewhere"
@echo ""
@echo " readme create README.txt suitable for distribution"
@echo " deb-changelog prepend stub changelog entry for deb"
@echo " rpm-changelog prepend stub changelog entry for rpm"
@echo ""
@echo " src-package create source tarball suitable for distribution"
@echo " deb-package create .deb package"
@echo " rpm-package create .rpm package"
@echo ""
@echo " check-deb check the deb package"
@echo " check-rpm check the rpm package"
@echo " check-docs run weblint on the docs"
@echo ""
@echo " upload-src upload the src package"
@echo " upload-deb upload the deb package"
@echo " upload-rpm upload the rpm package"
@echo " upload-readme upload the README.txt"
@echo ""
@echo " upload-docs upload docs to weewx.com"
@echo ""
@echo " release rearrange files on the download server"
@echo ""
@echo " test run all unit tests"
@echo " SUITE=path/to/foo.py to run only foo tests"
info:
@echo " VERSION: $(VERSION)"
@echo " MMVERSION: $(MMVERSION)"
@echo " CWD: $(CWD)"
@echo " UPLOADDIR: $(UPLOADDIR)"
@echo " DOCDST: $(DOCDST)"
@echo " USER: $(USER)"
realclean:
rm -f MANIFEST
rm -rf build
rm -rf dist
check-docs:
weblint docs/*.htm
# if no suite is specified, find all test suites in the source tree
ifndef SUITE
SUITE=`find bin -name "test_*.py"`
endif
test:
@rm -f $(BLDDIR)/test-results
@mkdir -p $(BLDDIR)
@for f in $(SUITE); do \
echo running $$f; \
echo $$f >> $(BLDDIR)/test-results; \
PYTHONPATH="bin:examples" $(PYTHON) $$f >> $(BLDDIR)/test-results 2>&1; \
echo >> $(BLDDIR)/test-results; \
done
@grep "ERROR:\|FAIL:" $(BLDDIR)/test-results || echo "no failures"
@echo "see $(BLDDIR)/test-results"
MYSQLSETUP="create user 'weewx'@'localhost' identified by 'weewx';\n\
grant all on *.* to 'weewx'@'localhost';\n"
test-setup:
echo $(MYSQLSETUP) | mysql --user=root -p
TESTDIR=/var/tmp/weewx_test
MYSQLCLEAN="drop database test_weewx;\n\
drop database test_alt_weewx;\n\
drop database test_sim;\n"
test-clean:
rm -f $(TESTDIR)
echo $(MYSQLCLEAN) | mysql --user=weewx --password=weewx --force >/dev/null 2>&1
install:
./setup.py --install
SRCPKG=weewx-$(VERSION).tar.gz
src-package $(DSTDIR)/$(SRCPKG): MANIFEST.in
rm -f MANIFEST
./setup.py sdist
upload-src:
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(SRCPKG))
# upload docs to the weewx web site
upload-docs:
ftp -u $(USER)@$(DOCDST) $(DOCSRC)/*.htm $(DOCSRC)/changes.txt $(DOCSRC)/images/*.png $(DOCSRC)/images/*.jpg $(DOCSRC)/images/*.gif $(DOCSRC)/js/*.js $(DOCSRC)/css/weewx_$(DOCSRC).css $(DOCSRC)/css/jquery.tocify.css $(DOCSRC)/css/ui-lightness/*.css $(DOCSRC)/css/ui-lightness/images/*.png $(DOCSRC)/css/ui-lightness/images/*.gif
# create the README.txt for uploading
README_HEADER="\
--------------------\n\
weewx packages \n\
--------------------\n\
\n\
$(DEBPKG)\n\
for Debian, Ubuntu, Mint, including Raspberry Pi\n\
\n\
weewx-$(RPMVER).rhel.$(RPMARCH).rpm\n\
for Redhat, CentOS, Fedora\n\
\n\
weewx-$(RPMVER).suse.$(RPMARCH).rpm\n\
for SuSE, OpenSuSE\n\
\n\
$(SRCPKG)\n\
for all operating systems including Linux, BSD, MacOSX\n\
this is the best choice if you intend to customize weewx\n\
\n\
--------------------\n\
weewx change history\n\
--------------------\n"
readme: docs/changes.txt
mkdir -p $(DSTDIR)
rm -f $(DSTDIR)/README.txt
echo $(README_HEADER) > $(DSTDIR)/README.txt
pkg/mkchangelog.pl --ifile docs/changes.txt >> $(DSTDIR)/README.txt
upload-readme: readme
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) README.txt)
# update the version in all relevant places
VDOCS=readme.htm customizing.htm devnotes.htm hardware.htm usersguide.htm upgrading.htm utilities.htm
version:
for f in $(VDOCS); do \
sed -e 's/^Version: [0-9].*/Version: $(MMVERSION)/' docs/$$f > docs/$$f.tmp; \
mv docs/$$f.tmp docs/$$f; \
done
sed -e 's/version =.*/version = $(VERSION)/' weewx.conf > weewx.conf.tmp; mv weewx.conf.tmp weewx.conf
DEBREVISION=1
DEBVER=$(VERSION)-$(DEBREVISION)
# add a skeleton entry to deb changelog
deb-changelog:
if [ "`grep $(DEBVER) pkg/debian/changelog`" = "" ]; then \
pkg/mkchangelog.pl --action stub --format debian --release-version $(DEBVER) > pkg/debian/changelog.new; \
cat pkg/debian/changelog >> pkg/debian/changelog.new; \
mv pkg/debian/changelog.new pkg/debian/changelog; \
fi
# use dpkg-buildpackage to create the debian package
# -us -uc - skip gpg signature on .dsc and .changes
# the latest version in the debian changelog must match the packaging version
DEBARCH=all
DEBBLDDIR=$(BLDDIR)/weewx-$(VERSION)
DEBPKG=weewx_$(VERSION)-$(DEBREVISION)_$(DEBARCH).deb
ifneq ("$(SIGN)","1")
DPKG_OPT=-us -uc
endif
deb-package: $(DSTDIR)/$(SRCPKG)
mkdir -p $(BLDDIR)
cp $(DSTDIR)/$(SRCPKG) $(BLDDIR)
(cd $(BLDDIR); tar xvfz $(SRCPKG))
(cd $(BLDDIR); mv $(SRCPKG) weewx_$(VERSION).orig.tar.gz)
rm -rf $(DEBBLDDIR)/debian
mkdir -m 0755 $(DEBBLDDIR)/debian
mkdir -m 0755 $(DEBBLDDIR)/debian/source
cp pkg/debian/changelog $(DEBBLDDIR)/debian
cp pkg/debian/compat $(DEBBLDDIR)/debian
cp pkg/debian/conffiles $(DEBBLDDIR)/debian
cp pkg/debian/config $(DEBBLDDIR)/debian
cp pkg/debian/control $(DEBBLDDIR)/debian
cp pkg/debian/copyright $(DEBBLDDIR)/debian
cp pkg/debian/postinst $(DEBBLDDIR)/debian
cp pkg/debian/postrm $(DEBBLDDIR)/debian
cp pkg/debian/preinst $(DEBBLDDIR)/debian
cp pkg/debian/prerm $(DEBBLDDIR)/debian
cp pkg/debian/rules $(DEBBLDDIR)/debian
cp pkg/debian/source/format $(DEBBLDDIR)/debian/source
cp pkg/debian/templates $(DEBBLDDIR)/debian
(cd $(DEBBLDDIR); dpkg-buildpackage $(DPKG_OPT))
mkdir -p $(DSTDIR)
mv $(BLDDIR)/$(DEBPKG) $(DSTDIR)
# run lintian on the deb package
check-deb:
lintian -Ivi $(DSTDIR)/$(DEBPKG)
upload-deb:
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(DEBPKG))
RPMREVISION=1
RPMVER=$(VERSION)-$(RPMREVISION)
# add a skeleton entry to rpm changelog
rpm-changelog:
if [ "`grep $(RPMVER)1 pkg/changelog.rpm`" = "" ]; then \
pkg/mkchangelog.pl --action stub --format redhat --release-version $(RPMVER) > pkg/changelog.rpm.new; \
cat pkg/changelog.rpm >> pkg/changelog.rpm.new; \
mv pkg/changelog.rpm.new pkg/changelog.rpm; \
fi
# use rpmbuild to create the rpm package
RPMARCH=noarch
RPMOS=$(shell if [ -f /etc/SuSE-release ]; then echo .suse; else echo .rhel; fi)
RPMBLDDIR=$(BLDDIR)/weewx-$(RPMVER)$(RPMOS).$(RPMARCH)
RPMPKG=weewx-$(RPMVER)$(RPMOS).$(RPMARCH).rpm
rpm-package: $(DSTDIR)/$(SRCPKG)
rm -rf $(RPMBLDDIR)
mkdir -p -m 0755 $(RPMBLDDIR)
mkdir -p -m 0755 $(RPMBLDDIR)/BUILD
mkdir -p -m 0755 $(RPMBLDDIR)/BUILDROOT
mkdir -p -m 0755 $(RPMBLDDIR)/RPMS
mkdir -p -m 0755 $(RPMBLDDIR)/SOURCES
mkdir -p -m 0755 $(RPMBLDDIR)/SPECS
mkdir -p -m 0755 $(RPMBLDDIR)/SRPMS
sed -e 's%Version:.*%Version: $(VERSION)%' \
pkg/weewx.spec.in > $(RPMBLDDIR)/SPECS/weewx.spec
cat pkg/changelog.rpm >> $(RPMBLDDIR)/SPECS/weewx.spec
cp dist/weewx-$(VERSION).tar.gz $(RPMBLDDIR)/SOURCES
rpmbuild -ba --clean --define '_topdir $(CWD)/$(RPMBLDDIR)' --target noarch $(CWD)/$(RPMBLDDIR)/SPECS/weewx.spec
mkdir -p $(DSTDIR)
mv $(RPMBLDDIR)/RPMS/$(RPMARCH)/$(RPMPKG) $(DSTDIR)
# mv $(RPMBLDDIR)/SRPMS/weewx-$(RPMVER)$(RPMOS).src.rpm $(DSTDIR)
ifeq ("$(SIGN)","1")
rpm --addsign $(DSTDIR)/$(RPMPKG)
# rpm --addsign $(DSTDIR)/weewx-$(RPMVER)$(RPMOS).src.rpm
endif
# add the latest version to the local apt repo using aptly
update-apt-repo:
aptly repo add weewx $(DSTDIR)/$(DEBPKG)
aptly snapshot create weewx-$(VERSION) from repo weewx
aptly -architectures="all" publish switch squeeze weewx-$(VERSION)
# publish apt repo changes to the public weewx apt repo
publish-apt-repo:
rsync -arv --rsync-path $(WEEWX_COM_HOME)/bin/rsync -e ssh ~/.aptly/ $(USER)@weewx.com:$(WEEWX_COM_HOME)/html/aptly
# run rpmlint on the redhat package
check-rpm:
rpmlint $(DSTDIR)/$(RPMPKG)
upload-rpm:
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(RPMPKG))
# move files from the upload directory to the release directory and set up the
# symlinks to them from the download root directory
DEVDIR=$(WEEWX_DOWNLOADS)/development_versions
RELDIR=$(WEEWX_DOWNLOADS)/released_versions
ARTIFACTS=weewx-$(RPMVER).rhel.noarch.rpm weewx-$(RPMVER).suse.noarch.rpm weewx-$(VERSION).tar.gz weewx_$(DEBVER)_all.deb
release:
ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do if [ -f $(DEVDIR)/\$$f ]; then mv $(DEVDIR)/\$$f $(RELDIR); fi; done"
ssh $(USER)@weewx.com "rm -f $(WEEWX_DOWNLOADS)/weewx*"
ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do if [ -f $(RELDIR)/\$$f ]; then ln -s released_versions/\$$f $(WEEWX_DOWNLOADS); fi; done"
ssh $(USER)@weewx.com "if [ -f $(DEVDIR)/README.txt ]; then mv $(DEVDIR)/README.txt $(WEEWX_DOWNLOADS); fi"
# run perlcritic to ensure clean perl code. put these in ~/.perlcriticrc:
# [-CodeLayout::RequireTidyCode]
# [-Modules::ProhibitExcessMainComplexity]
# [-Modules::RequireVersionVar]
critic:
perlcritic -1 --verbose 8 pkg/mkchangelog.pl