From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: Package suggestion[nongnu]: Gnosis =?utf-8?B?KM6zzr3hv7bPg865?= =?utf-8?B?z4Ip?= Date: Sat, 17 Aug 2024 17:37:52 +0000 Message-ID: <87sev3yrrj.fsf@posteo.net> References: <87h6jdpts9.fsf@thanosapollo.org> <87h6jal96l.fsf@posteo.net> <87wms5fjjs.fsf@thanosapollo.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16289"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Thanos Apollo Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Aug 17 19:38:53 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sfNO9-00042j-8w for ged-emacs-devel@m.gmane-mx.org; Sat, 17 Aug 2024 19:38:53 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sfNNI-0000sA-JP; Sat, 17 Aug 2024 13:38:00 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sfNNH-0000rp-SI for emacs-devel@gnu.org; Sat, 17 Aug 2024 13:37:59 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sfNNF-0002QY-43 for emacs-devel@gnu.org; Sat, 17 Aug 2024 13:37:59 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id CDFA3240103 for ; Sat, 17 Aug 2024 19:37:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1723916274; bh=LDTL5dgbaayhb5h2c7ITVWouW4RPkkCr0XXX95jAqr4=; h=From:To:Cc:Subject:Autocrypt:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:Content-Transfer-Encoding:From; b=IbjdRVq6jCo++4rfPuPzvmly6pqp76i10zqrOUkPPHiR+hMplgDS0N8lScnJMLmZU kSjPZ2ThH9xo4+zsVInIuT9hMaxA91lMR0c6WtY6X4jxhLzBzGCrX/7BF3P5SgFkmv W5IyeGsYjHyCQg5A3xbVvvDWT2jaPE+aqOpW2eB3q4L6WmaKfqioV5ZajAH9e8ImDs ZbhXayfBBokOlO1h70kpC/+B96sKtBUY1iZoz/g5CQekN4CKBZKypY88vs7zV6WxLl nde/yjJQUV73zoktJjfAjhd7lmCcoN4EMpaeuTlvIqKq45eGeAxp3zLAGzdRc9BOpy VtrHZQjA1buqg== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4WmR0151Gpz6txp; Sat, 17 Aug 2024 19:37:53 +0200 (CEST) In-Reply-To: <87wms5fjjs.fsf@thanosapollo.org> (Thanos Apollo's message of "Fri, 19 Jan 2024 16:45:35 +0200") Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM OpenPGP: id=philipk@posteo.net; url="https://keys.openpgp.org/vks/v1/by-email/philipk@posteo.net"; preference=signencrypt Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:322869 Archived-At: Sorry for the delay, trying to clean up my inbox. Thanos Apollo writes: > Philip Kaludercic writes: >> >> Here area few comments in form of a diff (this is NOT a patch): > > [...] > > Thank you for your suggestions, they've been really helpful. > > I got confused and thought emacsql was included in nongnu elpa, but it's = only > available only in nongnu-devel. That has since changed. > Is there any alternative that it's recommended instead of emacsql for a > package to interact with an sqlite databases? (Except triples) > > > I've refactored a couple important parts of gnosis to take into an > account future extensibility, even by 3rd party packages. Example: > > (defvar gnosis-note-types '(MCQ Cloze Basic Double y-or-n) > "Gnosis available note types.") >=20=20=20 > (defun gnosis-add-note (type) > "Create note(s) as TYPE interactively." > (interactive (list (completing-read "Type: " gnosis-note-types nil t))) > (when gnosis-testing > (unless (y-or-n-p "You are using a testing environment! Continue?") > (error "Aborted"))) > (let ((func-name (intern (format "gnosis-add-note-%s" (downcase type)))= )) > (if (fboundp func-name) > (funcall func-name) > (message "No such type.")))) >=20=20=20=20=20=20=20 > (defun gnosis-review-note (id) > "Start review for note with value of id ID." > (when (gnosis-suspended-p id) > (message "Suspended note with id: %s" id) > (sit-for 0.3)) ;; this should only occur in testing/dev cases > (let* ((type (gnosis-get 'type 'notes `(=3D id ,id))) > (func-name (intern (format "gnosis-review-%s" (downcase type))))) > (if (fboundp func-name) > (progn > (with-current-buffer (switch-to-buffer (get-buffer-create "*gno= sis*")) > (gnosis-mode) > (funcall func-name id))) > (error "Malformed note type: '%s'" type)))) > > Adding new note types should be a trivial task now. > > I hadn't really used emacs without vertico and was unaware of how > different completing-read user interactions actually are. I will be > making adjustments for that wherever possible. Thanos Apollo writes: > Philip Kaludercic writes: > >> Thanos Apollo writes: >> >>> Philip Kaludercic writes: > > [...] > >>> Is there any alternative that it's recommended instead of emacsql for a >>> package to interact with an sqlite databases? (Except triples) >> >> If you require at least Emacs 29, then you could fall back onto the >> built-in SQLite support. >> > > Thanks for the feedback, FYI I'm rewriting this with the built in > sqlite & adding new features. Personally, I've found it much easier to > work with the built in sqlite, since I can import items from other > arbitrary databases that I've been using before. > > I'm also refactoring instances that use completing-read with > read-multiple-choice. > > I will be contacting you when this package has a new stable version that > is ready to be considered for inclusion in nongnu elpa. Thanos Apollo writes: > Philip Kaludercic writes: > > > [...] >> If you want to, we can add the package right now as long as you add a >> -git, -rc, -alpha suffix or any of the other pseudo-version strings >> specified in `version-regexp-alist'. That will instruct the ELPA build >> server to not distribute the package on the main archive, until you bump >> a release removing any "negative" version. Then you don't have to wait >> for someone to respond to your message again. > > This sounds ideal, I have pushed a 0.2.0-alpha version, which is the > only tagged release available on , > to avoid unexpected issues. > > > Thank you, > > From 92c89f9bb3dd63fa3e81f22d34d6ab456e4eeb34 Mon Sep 17 00:00:00 2001 > From: Thanos Apollo > Date: Tue, 23 Jan 2024 01:22:53 +0200 > Subject: [PATCH] * elpa-packages (gnosis): New package > > --- > elpa-packages | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/elpa-packages b/elpa-packages > index 9032331c31..068ccb04c3 100644 > --- a/elpa-packages > +++ b/elpa-packages > @@ -282,6 +282,10 @@ > (git-modes :url "https://github.com/magit/git-modes" > :ignored-files ("LICENSE" ".mailmap")) >=20=20 > + (gnosis :url "https://git.thanosapollo.org/gnosis" > + :doc "doc/gnosis.texi" > + :ignored-files ("LICENSE")) > + > (gnu-apl-mode :url "https://github.com/lokedhs/gnu-apl-mode" > ;; :doc "texi/gnu-apl-mode.texi" ; the manual is currently empty > :ignored-files ("Makefile")) > --=20 > 2.43.0 Thanos Apollo writes: > Philip Kaludercic writes: > > > [...] >> >> I notice that you have .texi and .info files in your repository. IIUC >> these are generated from the .org file, right? If that is so, you can >> get rid of the generated files and instead let the ELPA build server >> prepare these from the .org file for you. >> >>> + :ignored-files ("LICENSE")) >> >> It would be preferable, if you could track the files you wish not to >> distribute in the package in a .elpaignore file within your repository, >> that we don't need to update nongnu.git for any change. >> > > Oh, this is convenient, thank you. > > I've applied the requested changes: > # .elpaignore > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > doc/gnosis.org > LICENSE > Makefile -> Includes Makefile, not sure if that's desired > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > # Makefile > Note: Exports /doc/gnosis.org as .texi AND as .info, this makes it > easier for me, I hope it's not an issue. > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > .POSIX: > .PHONY: all compile test clean > .SUFFIXES: .el .elc > > EMACS =3D emacs > ORG :=3D doc/gnosis.org > TEXI :=3D doc/gnosis.texi > INFO :=3D doc/gnosis.info > > ELFILES =3D $(wildcard *.el) > BYTEC =3D $(ELFILES:.el=3D.elc) > > all: compile $(TEXI) > > compile: $(BYTEC) > > $(TEXI): $(ORG) > $(EMACS) --batch \ > --load org \ > --eval "(with-current-buffer (find-file \"$(ORG)\") (org-texinfo-export= -to-texinfo) (org-texinfo-export-to-info) (save-buffer))" \ > --kill > > clean: > rm -f $(BYTEC) > rm -f $(TEXI) $(INFO) > > .el.elc: > $(EMACS) -Q --batch -L . -f batch-byte-compile $< > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > FYI I tried building nongnu elpa to create a new patch for gnosis, but > after cloning the repo: > > =3D=3D=3D=3D=3D=3D=3D=3D > $ make What I usually do is --8<---------------cut here---------------start------------->8--- $ make {fetch,build}/gnosis emacs --batch -Q -l admin/elpa-admin.el \ -f elpaa-batch-pkg-spec-make-dependencies .pkg-descs.mk Source file =E2=80=98/home/phi/Source/emacs/lisp/emacs-lisp/package.el=E2= =80=99 newer than byte-compiled file; using older file emacs --batch -l admin/elpa-admin.el -f elpaa-batch-fetch-and-show "gnosis" Source file =E2=80=98/home/phi/Source/emacs/lisp/emacs-lisp/package.el=E2= =80=99 newer than byte-compiled file; using older file Fetching updates for gnosis... New package gnosis hasn=E2=80=99t been pushed to origin yet emacs --batch -l /home/phi/Source/nongnu/admin/elpa-admin.el \ -f elpaa-batch-make-one-package gnosis Source file =E2=80=98/home/phi/Source/emacs/lisp/emacs-lisp/package.el=E2= =80=99 newer than byte-compiled file; using older file Cloning branch gnosis: +refs/heads/*:refs/remotes/origin/* Preparing worktree (new branch 'elpa/gnosis') HEAD is now at fe019d58f2 dashboard: Display overdue notes. =3D=3D=3D=3D=3D=3D=3D=3D Building tarball archive-devel/gnosis-0.4.0.0.2024= 0811.200740.tar... Source file =E2=80=98/home/phi/Source/emacs/lisp/vc/diff-mode.el=E2=80=99 n= ewer than byte-compiled file; using older file ######## Built new package archive-devel/gnosis-0.4.0.0.20240811.200740.tar! =3D=3D=3D=3D=3D=3D=3D=3D Building tarball archive/gnosis-0.4.0.tar... ######## Built new package archive/gnosis-0.4.0.tar! --8<---------------cut here---------------end--------------->8--- As you can see, it went through. But you haven't commited the .elpaignore file, so the files are still included. Either way, I have applied the modified patch and pushed the change to nongnu.git. You can add the .elpaignore file any time you want, as long as you eventually bump the version tag in the main file. Sorry again for the delay! > git remote add --no-tags -ft elpa-admin \ > gnu-elpa https://git.savannah.gnu.org/git/emacs/elpa.git > Updating gnu-elpa > remote: Counting objects: 1679, done. > remote: Compressing objects: 100% (776/776), done. > remote: Total 1679 (delta 798), reused 1628 (delta 787) > Receiving objects: 100% (1679/1679), 444.55 KiB | 730.00 KiB/s, done. > Resolving deltas: 100% (798/798), done. > From https://git.savannah.gnu.org/git/emacs/elpa > * [new branch] elpa-admin -> gnu-elpa/elpa-admin > git worktree add -b elpa-admin admin gnu-elpa/elpa-admin > Preparing worktree (new branch 'elpa-admin') > branch 'elpa-admin' set up to track 'gnu-elpa/elpa-admin'. > HEAD is now at 897fef4a23 * elpa-admin.el (elpaa--core-files): Simplify > ln -s admin/GNUmakefile ./ > ln -s admin/elpa-manifest.scm manifest.scm > > $ make build-all # I got the following error: > > Opening output file: No such file or directory, > /home/thanos/Dev/emacs-lisp/nongnu/archive/archive-contents make: *** > [GNUmakefile:25: build-all] Error 255 > =3D=3D=3D=3D=3D=3D=3D=3D --=20 Philip Kaludercic on peregrine