anse1 / emacs-libpq

An Emacs 25 module for accessing postgres via libpq.
GNU General Public License v3.0
22 stars 3 forks source link

Try to submit module to GNU Emacs #12

Open gnusupport opened 5 years ago

gnusupport commented 5 years ago

Could you please submit your module for inclusion into GNU Emacs?

It works well, so why not submit it directly to inclusion into GNU Emacs?

https://lists.gnu.org/archive/html/help-gnu-emacs/

anse1 commented 5 years ago

I didn't think there was widespread enough interest in a postgres client interface to consider getting something upstream in the first place. Also, I'm afraid the current module form is probably not the right format to do that. After all, the module interface was designed to allow independent distribution, and the lack of any modules being shipped with emacs seems to confirm that.

@marsam appears to have experimented with getting it distributed via ELPA? I don't see any modules already in ELPA, though - is it even possible to distribute modules with the current ELPA infrastructure?

Another blocker might be that the FSF needs copyright assignments to get things into either emacs or ELPA. I do have an assignment on file, but not sure @marsam does…

gnusupport commented 5 years ago

If there is or not, does not matter. But this module is making wonders. I am managing my database with this module and helm. I have personal contact management or CRM system to manage with this module. It iwll create impact.

I suggest that you try to include it into GNU Emacs by writing to the list.

Yes FSF needs copyright assignments, why not.

gnusupport commented 3 years ago

I am making application based on emacs-libpq and asking on emacs-devel how to include module as such. I would have several applications to be submitted to ELPA based on this module.

One application is like hyperlink management in tabular mode, that is so much similar to browsing something like gopher, it could browse from server to server all by using PostgreSQL, it is similar to augment from Engelbart.

Other applications would be like invoice and other customer management systems, marketing, mailings, and similar.

anse1 commented 3 years ago

Thanks for the nice words. I also got requests via other channels and it seems there is more demand for this module than I anticipated. I also read rumors that there are already some packages in ELPA that include C code. I just merged a pull request from @tgbugs in that direction, but I need to read up more on the ELPA machinery...

I was hoping @marsam could confirm he has files with the FSF for contributions to Emacs and its extensions. But maybe it can still be argued his was a minor contribution and thus okay without a copyright assignment on file.

marsam commented 3 years ago

Hi, sorry for the delay. I don't have a copyright assignment yet, I'll try to get one tonight.

gnusupport commented 3 years ago

You can look into emacs-vterm module how they made it that module is installable and that it builds and compiles the software.

It would be so great to have PostgreSQL module in GNU ELPA, that people can develop various applications. I have some of them.

You may write to emacs-devel AT gnu.org mailing list and make any questions about that.

gnusupport commented 3 years ago

Any progress?

Do you need help?

gnusupport commented 3 years ago

@marsam please send email to emacs-devel AT gnu.org and you will get copyright assignment form. That is message I have got today from there.

marsam commented 3 years ago

Sorry for the delay. The past week, Craig from gnu kindly guided me through the process. I already sent my signed assignment form to assign AT gnu.org, and IIUC I've to wait to FSF to sign it.

I don't want to block the release in elpa. If you can place my contributions as minor, and okay without a copyright assignment, please go ahead.

gnusupport commented 3 years ago

That is such a great news to hear Mario!

I cannot place that, maybe I can help with checks for the package and then you will do it. You may read Tips in the Emacs Lisp manual.

It will open a spectrum of applications to be served straight from main Emacs.

marsam commented 3 years ago

I just received my copyright assignment :)

gnusupport commented 3 years ago

That is great news. What is next step?

anse1 commented 3 years ago

GNU Support writes:

Thank you very much ^^

That is great news. What is next step?

I did look at how emacs-vterm distributes their module via ELPA in the meantime. They just invoke their cmake based build when the module is not available while loading the package. I am surprised that ELPA itself doesn't have any module awareness...

While this is more ad-hoc than I expected I guess I'll just arrange that. Maybe adding autoconf to reduce the risk that people have to adjust the Makefile when installing from elpa. If that's done, I'll do the coming-out thing mentioned in the ELPA docs.

gnusupport commented 3 years ago

You may start now as sooner you start you will get support on emacs-devel to polish better.

Please just start.

gnusupport commented 3 years ago

Is there anything left to include it? I would like to help on this I just don't know how. It will greatly enhance Emacs and cause many new modules to come into ELPA. I have already several candidates.

gnusupport commented 3 years ago

See video here: https://open.tube/videos/watch/822b0367-d6d1-456f-a592-9b078d69cead

I could submit then modules for example, for invoice making, address book, DB backed version control system, SMS mass communication, and so on.

marsam commented 3 years ago

That looks really nice. I am going to work on this issue in this weekend :)

monnier commented 2 years ago

I'd like to add this to GNU ELPA. AFAICT all the contributors have signed copyright paperwork, and I assume you understand and agree that it implies getting copyright paperwork from all future contributors before you can accept their code.

Any objection? [ There will be a few technical things to adjust to make the package easier to install, but ... one step at a time. ]

tgbugs commented 2 years ago

No objections here. Happy to help in any way.

monnier commented 2 years ago

No objections here. Happy to help in any way.

Great. Then:

tgbugs commented 2 years ago

Could you clarify which URL is the official upstream?

Yes. It is anse1. At the time pq.el didn't exist on anse1 so I used the url to point to my fork. I will submit a PR with the correction along with the other bits mentioned here.

monnier commented 2 years ago

Tom Gillespie [2022-02-14 13:08:15] wrote:

Could you clarify which URL is the official upstream? Yes. It is anse1. At the time pq.el didn't exist on anse1 so I used the url to point to my fork. I will submit a PR with the correction along with the other bits mentioned here.

Great, please also adjust the copyright lines to say that the copyright has been transferred to the FSF, i.e. replace the "Copyright ... by Tom Gillespie" with something like:

;; Copyright (C) 2020-2022  Free Software Foundation, Inc.

for pq.el. Also please add the copyright+license blurb at the beginning of pq-core.c.

[ Next will be figuring out how to make it easy for the user to compile the module. Also, it'd be nice to add support for bignums, available since Emacs-27. ]

tgbugs commented 2 years ago

I've adjusted the copyright and added the copyright and blurb to pq-core.c. I'm not going to be of much use getting the bignum support implemented. IIRC from this thread @anse1 had taken a look at how to build the module an a more if it was not found. It looks like emacs-zmq might provide inspiration in addition to vterm? https://github.com/nnicandro/emacs-zmq/blob/master/zmq.el#L659-L693

monnier commented 2 years ago

I've adjusted the copyright and added the copyright and blurb to pq-core.c.

I see this is still waiting in the pull request. Anything blocking it?

tgbugs commented 2 years ago

I think we are just waiting on @anse1 at this point.

anse1 commented 2 years ago

Tom Gillespie writes:

I think we are just waiting on @anse1 at this point.

merged.

monnier writes:

[ Next will be figuring out how to make it easy for the user to compile the module. Also, it'd be nice to add support for bignums, available since Emacs-27. ]

I'll try to look into the former next week. I made a separate issue #22 for the bignum-support.

thanks, andreas

monnier commented 2 years ago

Andreas Seltenreich [2022-02-25 03:20:34] wrote:

Tom Gillespie writes:

I think we are just waiting on @anse1 at this point. merged.

Thanks. The resulting tarball should appear shortishly at

http://elpa.gnu.org/devel/pq.html

But I'll note a few more cosmetic issues that should be fixed:

I'll try to look into the former next week. I made a separate issue #22 for the bignum-support.

Thanks, I'll try to find some time to look at the "automate the module build" packaging issue.

monnier commented 2 years ago

But I'll note a few more cosmetic issues that should be fixed:

  • test.el is too generic a name. I currently marked it as excluded from the tarball, but for those who install directly from Git it would still be good to rename it, for example to pq-test.el.

  • test.el and pq-core.c lack a proper copyright and license (GPLv3+) header.

  • pg_type.h should come with some license information, maybe just an SPDX line.

These still need to be fixed.

I'll try to look into the former next week. I made a separate issue #22 for the bignum-support. Thanks, I'll try to find some time to look at the "automate the module build" packaging issue.

Could you try the patch below see if it works for you?

    Stefan

diff --git a/.gitignore b/.gitignore index 9f8c20a9e2..2c16467025 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ *.so

*

+*.elc +/pq-autoloads.el +/pq-pkg.el

diff --git a/pq-compile.el b/pq-compile.el new file mode 100644 index 0000000000..574aa4c0bc --- /dev/null +++ b/pq-compile.el @@ -0,0 +1,61 @@ +;;; pq-compile.el --- Compile the pq-core module -- lexical-binding: t; -- + +;; Copyright (C) 2022 Free Software Foundation, Inc. + +;; Author: Stefan Monnier @.***> +;; Keywords: + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see https://www.gnu.org/licenses/. + +;;; Commentary: + +;; + +;;; Code: + +(defvar pq--compile-directory

-;; Author: Tom Gillespie +;; Author: Tom Gillespie @.***> ;; URL: https://github.com/anse1/emacs-libpq ;; Version: 0.01 ;; Package-Requires: ((emacs "25")) @@ -26,7 +26,25 @@

;;; Code:

-(if t (require 'pq-core)) +(require 'pq-core nil t) ;Don't signal an error if the module is absent. + +;; Try and compile the `pq-core' module when we compile the PQ package. +(eval-when-compile

monnier commented 2 years ago

Ping?

tgbugs commented 2 years ago

Will take a look.

tgbugs commented 2 years ago

pq-compile works for me! With regard to the copyright header in pq-core.c I can't seem to find anything wrong? Pull request opened with @monnier's patches and the other fixes. https://github.com/anse1/emacs-libpq/pull/23

monnier commented 2 years ago

Indeed, the copyright&license header of pq-core.c was already fixed by:

commit cb47fcf76967d73d635560911131de5a944930b6
Author: Tom Gillespie <tgbugs@gmail.com>
Date:   Mon Feb 14 13:55:54 2022 -0800

Sorry 'bout that.