From b725721421b2cc943d989c44b05c6089fac01eda Mon Sep 17 00:00:00 2001 From: "R. S. Doiel" Date: Wed, 26 Jun 2024 08:32:34 -0700 Subject: [PATCH 1/4] Quick Save --- TODO.md | 9 +++++++++ cmd/datasetd/datasetd.go | 9 ++++----- dataset.1.md | 2 +- datasetd.1.md | 9 ++++----- dsimporter.1.md | 2 +- dsquery.1.md | 2 +- version.go | 2 +- 7 files changed, 21 insertions(+), 14 deletions(-) diff --git a/TODO.md b/TODO.md index 46ec7bd2..d5278fe0 100644 --- a/TODO.md +++ b/TODO.md @@ -113,6 +113,8 @@ Next (prep for v2.1.1) Someday, Maybe -------------- +- [ ] Allow a WASM module to be used to validate objects in the collection. It needs to me integrate such that it "travels" will the dataset collection + - this would let our JSON collections support explicit JSON structures as well as ad-hoc JSON objects - [ ] Review [Go-app](https://go-app.dev/) and see if this would be a way to create a local client UI for working with datasets and enabling LunrJS for search - [ ] Document an example Python 3 http client support for web API implementing a drop in replacement for py_dataset using the web service or cli - [X] Missing tests for AttachStream() @@ -129,3 +131,10 @@ Someday, Maybe content driven by a dataset collection - [ ] Implement version support in the web service - [ ] Implement an integrated UI for datasetd + - [ ] Form pages could be expressed in Markdown+YAML for forms and embedded in the datasetd settings YAML file + - See my notes on my text oreinted web experiment, yaml2webform.go + - Forms could be render into the htdocs auto-magically saving development effort + - The same forms could then be used server side for validation based on descriptors and JavaScript converted to WASM code + - [ ] A standard JavaScript library could be used to knit the forms to the datasetd web service (sort of a mini-newt) +It would be nice if citesearch was defined by the citesearch.yaml file and some markdown documents taking a text oriented web approach to embedding forms in Markdown combined with some JS glue code to knit the two together +- [ ] Consider updating datasetd to support urlencoded data submissions in additional to application/json, this might make it easier to quicklt develop browser side UI for datasetd web services diff --git a/cmd/datasetd/datasetd.go b/cmd/datasetd/datasetd.go index 9d43e0ff..aace5288 100644 --- a/cmd/datasetd/datasetd.go +++ b/cmd/datasetd/datasetd.go @@ -47,11 +47,10 @@ const ( # DESCRIPTION -Runs a web service for one or more dataset collections. Requires -the collections to exist (e.g. created previously with the dataset -cli). It requires a settings JSON or YAML file that decribes the -web service configuration and permissions per collection that are -available via the web service. +{app_name} provides a web service for one or more dataset collections. Requires the +collections to exist (e.g. created previously with the dataset cli). It requires a +settings JSON or YAML file that decribes the web service configuration and +permissions per collection that are available via the web service. # OPTIONS diff --git a/dataset.1.md b/dataset.1.md index 4731450e..d5987340 100644 --- a/dataset.1.md +++ b/dataset.1.md @@ -1,4 +1,4 @@ -%dataset(1) user manual | version 2.1.13 6f79b21 +%dataset(1) user manual | version 2.1.13 027b8ac % R. S. Doiel and Tom Morrell % 2024-06-12 diff --git a/datasetd.1.md b/datasetd.1.md index 30d4d904..0edb4053 100644 --- a/datasetd.1.md +++ b/datasetd.1.md @@ -12,11 +12,10 @@ datasetd [OPTIONS] SETTINGS_FILE # DESCRIPTION -Runs a web service for one or more dataset collections. Requires -the collections to exist (e.g. created previously with the dataset -cli). It requires a settings JSON or YAML file that decribes the -web service configuration and permissions per collection that are -available via the web service. +datasetd provides a web service for one or more dataset collections. Requires the +collections to exist (e.g. created previously with the dataset cli). It requires a +settings JSON or YAML file that decribes the web service configuration and +permissions per collection that are available via the web service. # OPTIONS diff --git a/dsimporter.1.md b/dsimporter.1.md index 2bf7f9a9..3ca1f9c2 100644 --- a/dsimporter.1.md +++ b/dsimporter.1.md @@ -1,4 +1,4 @@ -%dsimporter(1) dataset user manual | version 2.1.13 6f79b21 +%dsimporter(1) dataset user manual | version 2.1.13 027b8ac % R. S. Doiel and Tom Morrell % 2024-06-12 diff --git a/dsquery.1.md b/dsquery.1.md index afb08bf3..ab02d1a2 100644 --- a/dsquery.1.md +++ b/dsquery.1.md @@ -1,4 +1,4 @@ -%dsquery(1) dataset user manual | version 2.1.13 6f79b21 +%dsquery(1) dataset user manual | version 2.1.13 027b8ac % R. S. Doiel and Tom Morrell % 2024-06-12 diff --git a/version.go b/version.go index 62743d4e..06825170 100644 --- a/version.go +++ b/version.go @@ -12,7 +12,7 @@ const ( ReleaseDate = "2024-06-12" // ReleaseHash, the Git hash when version.go was generated - ReleaseHash = "6f79b21" + ReleaseHash = "027b8ac" LicenseText = ` Copyright (c) 2022, Caltech All rights not granted herein are expressly From de0c18aa45b9dfa29617c2506ba5b3071304c2c4 Mon Sep 17 00:00:00 2001 From: "R. S. Doiel" Date: Tue, 2 Jul 2024 16:11:19 -0700 Subject: [PATCH 2/4] documentation fix --- cmd/datasetd/datasetd.go | 6 +++--- dataset.1.md | 4 ++-- datasetd.1.md | 6 +++--- dsimporter.1.md | 4 ++-- dsquery.1.md | 4 ++-- version.go | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cmd/datasetd/datasetd.go b/cmd/datasetd/datasetd.go index aace5288..86072289 100644 --- a/cmd/datasetd/datasetd.go +++ b/cmd/datasetd/datasetd.go @@ -97,12 +97,12 @@ dataset query : (optional) is map of query name to SQL statement. A POST is used to access -the query (i.e. a POST To the path "/api//query/") +the query (i.e. a POST To the path "`+"`"+`/api//query/`+"`"+`") The parameters submitted in the post are passed to the SQL statement. NOTE: Only dataset collections using a SQL store are supported. The SQL needs to conform the SQL dialect of the store being used (e.g. MySQL, Postgres, -SQLite3). The SQL statement functions with the same contrainst of dsquery SQL -statements. +SQLite3). The SQL statement functions with the same contraints of dsquery SQL +statements. The SQL statement is defined as a YAML text blog. ## API Permissions diff --git a/dataset.1.md b/dataset.1.md index d5987340..ffed64f6 100644 --- a/dataset.1.md +++ b/dataset.1.md @@ -1,6 +1,6 @@ -%dataset(1) user manual | version 2.1.13 027b8ac +%dataset(1) user manual | version 2.1.13 b725721 % R. S. Doiel and Tom Morrell -% 2024-06-12 +% 2024-07-02 # NAME diff --git a/datasetd.1.md b/datasetd.1.md index 0edb4053..bc166e3d 100644 --- a/datasetd.1.md +++ b/datasetd.1.md @@ -62,12 +62,12 @@ dataset query : (optional) is map of query name to SQL statement. A POST is used to access -the query (i.e. a POST To the path "/api//query/") +the query (i.e. a POST To the path "`/api//query/`") The parameters submitted in the post are passed to the SQL statement. NOTE: Only dataset collections using a SQL store are supported. The SQL needs to conform the SQL dialect of the store being used (e.g. MySQL, Postgres, -SQLite3). The SQL statement functions with the same contrainst of dsquery SQL -statements. +SQLite3). The SQL statement functions with the same contraints of dsquery SQL +statements. The SQL statement is defined as a YAML text blog. ## API Permissions diff --git a/dsimporter.1.md b/dsimporter.1.md index 3ca1f9c2..8f364fca 100644 --- a/dsimporter.1.md +++ b/dsimporter.1.md @@ -1,6 +1,6 @@ -%dsimporter(1) dataset user manual | version 2.1.13 027b8ac +%dsimporter(1) dataset user manual | version 2.1.13 b725721 % R. S. Doiel and Tom Morrell -% 2024-06-12 +% 2024-07-02 # NAME diff --git a/dsquery.1.md b/dsquery.1.md index ab02d1a2..29e68d7e 100644 --- a/dsquery.1.md +++ b/dsquery.1.md @@ -1,6 +1,6 @@ -%dsquery(1) dataset user manual | version 2.1.13 027b8ac +%dsquery(1) dataset user manual | version 2.1.13 b725721 % R. S. Doiel and Tom Morrell -% 2024-06-12 +% 2024-07-02 # NAME diff --git a/version.go b/version.go index 06825170..b4236e98 100644 --- a/version.go +++ b/version.go @@ -9,10 +9,10 @@ const ( Version = "2.1.13" // ReleaseDate, the date version.go was generated - ReleaseDate = "2024-06-12" + ReleaseDate = "2024-07-02" // ReleaseHash, the Git hash when version.go was generated - ReleaseHash = "027b8ac" + ReleaseHash = "b725721" LicenseText = ` Copyright (c) 2022, Caltech All rights not granted herein are expressly From b5fc871f1a132a50460cd78835aabfefced97c0d Mon Sep 17 00:00:00 2001 From: "R. S. Doiel" Date: Fri, 5 Jul 2024 10:02:50 -0700 Subject: [PATCH 3/4] prep for v2.1.14 release, doc fixes, updated modules --- CITATION.cff | 2 +- Makefile | 11 ++++++ about.md | 4 +-- api_test.go | 3 +- codemeta.json | 2 +- dataset.1.md | 6 ++-- datasetd.1.md | 4 +-- dsimporter.1.md | 4 +-- dsquery.1.md | 4 +-- go.mod | 10 +++--- go.sum | 84 +++++---------------------------------------- installer.sh | 2 +- libdataset/Makefile | 10 ++++-- sqlstore.go | 2 +- version.go | 6 ++-- 15 files changed, 54 insertions(+), 100 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 6e5d917e..77d9a1a6 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -22,6 +22,6 @@ maintainers: orcid: "https://orcid.org/0000-0001-9266-5146" repository-code: "https://github.com/caltechlibrary/dataset" -version: 2.1.13 +version: 2.1.14 license-url: "https://data.caltech.edu/license" keywords: [ "GitHub", "metadata", "data", "software", "json" ] diff --git a/Makefile b/Makefile index 0249abc0..a14ef325 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,8 @@ ifeq ($(OS), Windows) EXT = .exe endif +EXT_WEB = .wasm + DIST_FOLDERS = bin/* man/* build: version.go $(PROGRAMS) man CITATION.cff about.md installer.sh @@ -193,6 +195,15 @@ dist/Linux-armv7l: @cd dist && zip -r $(PROJECT)-v$(VERSION)-Linux-armv7l.zip LICENSE codemeta.json CITATION.cff *.md $(DIST_FOLDERS) @rm -fR dist/bin +# WASM code build is experimental, Python maybe able to load WASM code via wasmer-python, https://github.com/wasmerio/wasmer-python +# This would let me avoid having at have seperate machines to build a libdataset C-shared library. +dist/js-wasm: + @mkdir -p dist/bin + @for FNAME in $(PROGRAMS); do env GOOS=js GOARCH=wasm go build -o dist/bin/$$FNAME$(EXT_WEB) cmd/$$FNAME/*.go; done + @cd dist && zip -r $(PROJECT)-v$(VERSION)-js-wasm.zip LICENSE codemeta.json CITATION.cff *.md $(DIST_FOLDERS) + @rm -fR dist/bin + + distribute_docs: if [ -d dist ]; then rm -fR dist; fi mkdir -p dist diff --git a/about.md b/about.md index 14f78044..25b64240 100644 --- a/about.md +++ b/about.md @@ -14,7 +14,7 @@ authors: orcid: "https://orcid.org/0000-0001-9266-5146" repository-code: "https://github.com/caltechlibrary/dataset" -version: 2.1.13 +version: 2.1.14 license-url: "https://data.caltech.edu/license" keywords: [ "GitHub", "metadata", "data", "software", "json" ] @@ -23,7 +23,7 @@ keywords: [ "GitHub", "metadata", "data", "software", "json" ] About this software =================== -## dataset 2.1.13 +## dataset 2.1.14 ### Authors diff --git a/api_test.go b/api_test.go index d9e7ca01..842aebb0 100644 --- a/api_test.go +++ b/api_test.go @@ -955,8 +955,9 @@ Client testings starts in %s (s = seconds) // Send our web service into the back ground so we can run // a client test. + debug := false go func() { - if err := RunAPI(appName, fName); err != nil { + if err := RunAPI(appName, fName, debug); err != nil { t.Errorf("Expected API to setup and run, %s", err) } }() diff --git a/codemeta.json b/codemeta.json index e1530e14..e4ed521f 100644 --- a/codemeta.json +++ b/codemeta.json @@ -9,7 +9,7 @@ "codeRepository": "https://github.com/caltechlibrary/dataset", "issueTracker": "https://github.com/caltechlibrary/dataset/issues", "license": "https://data.caltech.edu/license", - "version": "2.1.13", + "version": "2.1.14", "author": [ { "@type": "Person", diff --git a/dataset.1.md b/dataset.1.md index ffed64f6..18a3b68c 100644 --- a/dataset.1.md +++ b/dataset.1.md @@ -1,6 +1,6 @@ -%dataset(1) user manual | version 2.1.13 b725721 +%dataset(1) user manual | version 2.1.12 856ffcd % R. S. Doiel and Tom Morrell -% 2024-07-02 +% 2024-06-12 # NAME @@ -114,6 +114,6 @@ implements. dataset keys my_objects.ds ~~~ -dataset 2.1.13 +dataset 2.1.12 diff --git a/datasetd.1.md b/datasetd.1.md index bc166e3d..d804ab9b 100644 --- a/datasetd.1.md +++ b/datasetd.1.md @@ -1,4 +1,4 @@ -%datasetd (1) user manual | verion 2.1.13 {release_hash}" +%datasetd (1) user manual | verion 2.1.12 {release_hash}" % R. S. Doiel % {release_date} @@ -222,6 +222,6 @@ In the shell session where datasetd is running press "ctr-C" to terminate the service. -datasetd 2.1.13 +datasetd 2.1.12 diff --git a/dsimporter.1.md b/dsimporter.1.md index 8f364fca..2894235c 100644 --- a/dsimporter.1.md +++ b/dsimporter.1.md @@ -1,6 +1,6 @@ -%dsimporter(1) dataset user manual | version 2.1.13 b725721 +%dsimporter(1) dataset user manual | version 2.1.12 856ffcd % R. S. Doiel and Tom Morrell -% 2024-07-02 +% 2024-06-12 # NAME diff --git a/dsquery.1.md b/dsquery.1.md index 29e68d7e..ad688e5e 100644 --- a/dsquery.1.md +++ b/dsquery.1.md @@ -1,6 +1,6 @@ -%dsquery(1) dataset user manual | version 2.1.13 b725721 +%dsquery(1) dataset user manual | version 2.1.12 856ffcd % R. S. Doiel and Tom Morrell -% 2024-07-02 +% 2024-06-12 # NAME diff --git a/go.mod b/go.mod index c19b87b9..e1b58859 100644 --- a/go.mod +++ b/go.mod @@ -1,24 +1,26 @@ -module github.com/caltechlibrary/dataset/v2 +module github.com/caltechlibrary/dataset -go 1.22 +go 1.22.5 require ( + github.com/caltechlibrary/dataset/v2 v2.1.13 github.com/caltechlibrary/dotpath v0.0.4 github.com/caltechlibrary/dsv1 v0.0.0-20220817192039-7c2741c5699d github.com/caltechlibrary/pairtree v1.0.3 github.com/caltechlibrary/semver v0.0.0-20220817184719-a504da2d5c6a github.com/glebarez/go-sqlite v1.22.0 - github.com/go-sql-driver/mysql v1.6.0 + github.com/go-sql-driver/mysql v1.8.1 github.com/lib/pq v1.10.9 + gopkg.in/yaml.v3 v3.0.1 ) require ( + filippo.io/edwards25519 v1.1.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/google/uuid v1.5.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect golang.org/x/sys v0.15.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/libc v1.37.6 // indirect modernc.org/mathutil v1.6.0 // indirect modernc.org/memory v1.7.2 // indirect diff --git a/go.sum b/go.sum index 87fbf975..c90409a4 100644 --- a/go.sum +++ b/go.sum @@ -1,109 +1,43 @@ +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/caltechlibrary/dataset/v2 v2.1.13 h1:ocV9N9azynu5Eio4M2dqydoeQzf/GHsyDeZPKSmwQqw= +github.com/caltechlibrary/dataset/v2 v2.1.13/go.mod h1:no8LwpJEqiBjed3nHbH/mBPK9pt/dN0hr3eDfkqFP9w= github.com/caltechlibrary/dotpath v0.0.4 h1:ghc3XZefLPDhQnUo9oXqvz8vfh52QOE0BjK5qOD9RQU= github.com/caltechlibrary/dotpath v0.0.4/go.mod h1:rAu0NPuhTaEa9szxXq92x/JmMmedjsEEdHl5uTxzzs0= github.com/caltechlibrary/dsv1 v0.0.0-20220817192039-7c2741c5699d h1:SGz3rTkjsp/8tEkFXTRHaJxqyeeDiL210QD69Bn7bd0= github.com/caltechlibrary/dsv1 v0.0.0-20220817192039-7c2741c5699d/go.mod h1:ajUo9ZOowgXjLfDXeUdMmJit9CZyHUzgaPIHUh9TBcg= -github.com/caltechlibrary/pairtree v1.0.2 h1:zcsFibPW7tBvjOvbxHzkE1CIPm0BxUCfQrLCa+bB5qc= -github.com/caltechlibrary/pairtree v1.0.2/go.mod h1:VZdWqmXgJ+tMxM37n/W+CjS8CQVPus+0ReFdRL10AS4= github.com/caltechlibrary/pairtree v1.0.3 h1:ykaydbmdyI1Doszaw0rvScKSXcU7HbotCQpNTlotX7s= github.com/caltechlibrary/pairtree v1.0.3/go.mod h1:7jeP5TyT9ilM+TTRklwrIbUWI/uGuQFm06vrhmgcS5U= github.com/caltechlibrary/semver v0.0.0-20220817184719-a504da2d5c6a h1:3q6ct6FfFDF2dEiW06Ran7iEOZ4d9HBiMbkqJUOO2oU= github.com/caltechlibrary/semver v0.0.0-20220817184719-a504da2d5c6a/go.mod h1:LxzDpCilL3QqjL8qdirgmlo8riDkSFNsTALfIYYyQtE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/glebarez/go-sqlite v1.18.1 h1:w0xtxKWktqYsUsXg//SQK+l1IcpKb3rGOQHmMptvL2U= -github.com/glebarez/go-sqlite v1.18.1/go.mod h1:ydXIGq2M4OzF4YyNhH129SPp7jWoVvgkEgb6pldmS0s= github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc= -github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= +github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= -github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220405052023-b1e9470b6e64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= -modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= -modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= -modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= -modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= -modernc.org/libc v1.16.19 h1:S8flPn5ZeXx6iw/8yNa986hwTQDrY8RXU7tObZuAozo= -modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= modernc.org/libc v1.37.6 h1:orZH3c5wmhIQFTXF+Nt+eeauyd+ZIt2BX6ARe+kD+aw= modernc.org/libc v1.37.6/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1 h1:ij3fYGe8zBF4Vu+g0oT7mB06r8sqGWKuJu1yXeR4by8= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.1.1 h1:bDOL0DIDLQv7bWhP3gMvIrnoFw+Eo6F7a2QK9HPDiFU= -modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.18.1 h1:ko32eKt3jf7eqIkCgPAeHMBXw3riNSLhl2f3loEF7o8= -modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ= modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= -modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= diff --git a/installer.sh b/installer.sh index 4c627c5f..f6087f36 100755 --- a/installer.sh +++ b/installer.sh @@ -4,7 +4,7 @@ # Set the package name and version to install # PACKAGE="dataset" -VERSION="2.1.13" +VERSION="2.1.14" GIT_GROUP="caltechlibrary" RELEASE="https://github.com/$GIT_GROUP/$PACKAGE/releases/tag/v$VERSION" diff --git a/libdataset/Makefile b/libdataset/Makefile index 866ab6a4..7ef953e2 100644 --- a/libdataset/Makefile +++ b/libdataset/Makefile @@ -52,6 +52,7 @@ clean: @if [ -f "$(LIB_NAME)-amd64.so" ]; then rm "$(LIB_NAME)-amd64.so"; fi @if [ -f "$(LIB_NAME)-arm64.so" ]; then rm "$(LIB_NAME)-arm64.so"; fi @if [ -f "$(LIB_NAME).h" ]; then rm "$(LIB_NAME).h"; fi + @if [ -f "$(LIB_NAME)-js.wasm" ]; then rm "$(LIB_NAME)-js.wasm"; fi @if [ -d "dist" ]; then rm -fR dist; fi @if [ -d "testout" ]; then rm -fR testout; fi @@ -62,7 +63,12 @@ save: if [ "$(msg)" != "" ]; then git commit -am "$(msg)"; else git commit -am "Quick Save"; fi git push origin $(BRANCH) -release: $(LIB_NAME)$(EXT) +# WASM code build is experimental, Python maybe able to load WASM code via wasmer-python, https://github.com/wasmerio/wasmer-python +# This would let me avoid having at have seperate machines to build a libdataset C-shared library. +wasm: $(LIB_NAME).go + env CGO_ENABLED=1 GOOS=js GOARCH=wasm go build -o $(LIB_NAME)-js.wasm $(LIB_NAME).go + +release: js-wasm $(LIB_NAME)$(EXT) mkdir -p dist/man/man3 cp ../codemeta.json dist/ cp ../CITATION.cff dist/ @@ -73,7 +79,7 @@ release: $(LIB_NAME)$(EXT) go build -buildmode=c-shared -o "$(LIB_NAME)$(EXT)" "$(LIB_NAME).go" cp -v $(LIB_NAME)$(EXT) dist/ cp -v $(LIB_NAME).h dist/ - cd dist && zip $(LIB_NAME)-v$(VERSION)-$(OS)-$(ARCH).zip $(LIB_NAME)$(EXT) $(LIB_NAME).h codemeta.json CITATION.cff README.md LICENSE INSTALL.md + cd dist && zip $(LIB_NAME)-v$(VERSION)-$(OS)-$(ARCH).zip $(LIB_NAME)$(EXT) $(LIB_NAME).h $(LIB_NAME)-js.wasm codemeta.json CITATION.cff README.md LICENSE INSTALL.md .FORCE: diff --git a/sqlstore.go b/sqlstore.go index 25aa8665..dd034b0e 100644 --- a/sqlstore.go +++ b/sqlstore.go @@ -33,9 +33,9 @@ import ( // Database specific drivers _ "github.com/glebarez/go-sqlite" + _ "github.com/go-sql-driver/mysql" _ "github.com/lib/pq" - //_ "github.com/jackc/pgx/v4" ) const ( diff --git a/version.go b/version.go index b4236e98..9de1bbec 100644 --- a/version.go +++ b/version.go @@ -6,13 +6,13 @@ import ( const ( // Version number of release - Version = "2.1.13" + Version = "2.1.14" // ReleaseDate, the date version.go was generated - ReleaseDate = "2024-07-02" + ReleaseDate = "2024-07-05" // ReleaseHash, the Git hash when version.go was generated - ReleaseHash = "b725721" + ReleaseHash = "de0c18a" LicenseText = ` Copyright (c) 2022, Caltech All rights not granted herein are expressly From 6534b5ccc189512839eb7a4b181f24b0a50468f7 Mon Sep 17 00:00:00 2001 From: "R. S. Doiel" Date: Fri, 5 Jul 2024 10:08:49 -0700 Subject: [PATCH 4/4] commiting to main --- TODO.html | 32 +++++++++++++++++- about.html | 2 +- dataset.1.html | 2 +- datasetd.1.html | 24 +++++++------ pagefind/fragment/unknown_3668bc5.pf_fragment | Bin 0 -> 1254 bytes pagefind/fragment/unknown_525e9ea.pf_fragment | Bin 0 -> 488 bytes pagefind/fragment/unknown_f418af2.pf_fragment | Bin 0 -> 2345 bytes pagefind/index/unknown_8016302.pf_index | Bin 0 -> 36809 bytes pagefind/index/unknown_a8aaf94.pf_index | Bin 0 -> 21544 bytes pagefind/index/unknown_dae077a.pf_index | Bin 0 -> 36382 bytes pagefind/pagefind-entry.json | 2 +- .../pagefind.unknown_bd67d8a783f9f0d.pf_meta | Bin 0 -> 740 bytes version.go | 2 +- 13 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 pagefind/fragment/unknown_3668bc5.pf_fragment create mode 100644 pagefind/fragment/unknown_525e9ea.pf_fragment create mode 100644 pagefind/fragment/unknown_f418af2.pf_fragment create mode 100644 pagefind/index/unknown_8016302.pf_index create mode 100644 pagefind/index/unknown_a8aaf94.pf_index create mode 100644 pagefind/index/unknown_dae077a.pf_index create mode 100644 pagefind/pagefind.unknown_bd67d8a783f9f0d.pf_meta diff --git a/TODO.html b/TODO.html index b59b7884..7cfa77a1 100644 --- a/TODO.html +++ b/TODO.html @@ -235,6 +235,13 @@

Next (prep for v2.1.1)

Someday, Maybe

    +
  • +
      +
    • this would let our JSON collections support explicit JSON structures +as well as ad-hoc JSON objects
    • +
  • +datasetd +
      +
    • +
        +
      • See my notes on my text oreinted web experiment, +yaml2webform.go
      • +
      • Forms could be render into the htdocs auto-magically saving +development effort
      • +
      • The same forms could then be used server side for validation based +on descriptors and JavaScript converted to WASM code
      • +
    • +
    • +
    +
diff --git a/about.html b/about.html index c0fa927a..f98e9225 100644 --- a/about.html +++ b/about.html @@ -24,7 +24,7 @@

About this software

-

dataset 2.1.13

+

dataset 2.1.14

Authors

  • R. S. Doiel
  • diff --git a/dataset.1.html b/dataset.1.html index 33f1ff80..3e7c4b8f 100644 --- a/dataset.1.html +++ b/dataset.1.html @@ -130,7 +130,7 @@

    EXAMPLES

    dataset delete my_objects.ds "345" dataset keys my_objects.ds -

    dataset 2.1.13

    +

    dataset 2.1.12