unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Philip Kaludercic <philipk@posteo.net>
To: Niklas Eklund <niklas.eklund@posteo.net>
Cc: emacs-devel@gnu.org
Subject: Re: Add zuul.el package to ELPA
Date: Tue, 30 Aug 2022 22:11:43 +0000	[thread overview]
Message-ID: <87edwx755s.fsf@posteo.net> (raw)
In-Reply-To: <87pmgh1pbf.fsf@posteo.net> (Niklas Eklund's message of "Tue, 30 Aug 2022 19:52:52 +0000")

Niklas Eklund <niklas.eklund@posteo.net> writes:

>> I believe if you used compat, you can reduce the minimal version of
>> Emacs down to 26.1, and the only hard dependency appears to be
>> project.el?
>
> I wasn't familiar with the compat library. But if I have a dependency to
> project.el which package-lint tells me I need to have Emacs 28.1 for, is
> the proper way to add project to Package-Requires to circumvent the
> need? Should I then do the same for e.g. seq or does compat provide
> functionality for that library?

No, compat does not automatically add other dependencies.  If you need
some other core package that is also available from ELPA, you will need
to add the dependency to the "Package-Requires" list yourself.

But I have noticed that compat is missing `text-property-search-forward'
and `text-property-search-backward'.  If you are interested in using
compat, I've already implemented the code and could publish a release
with these functions added.

>> I'd also recommend using more specific custom types for your user
>> options.  See (elisp) Composite Types.
>
> Thanks for the suggestion, I wasn't aware about these composite types!

This is also useful since the new `setopt' macro can use this for
type-checking!

>> It also appears you should be able to use defconst and defvar-local in
>> your private variable section.
>
> defvar-local I didn't know about.
>
>> Keywords (:foo) do not have to be quoted to prevent evaluation.
>>
>> I believe, but I might be mistaken, that it is advised to require rx in
>> a `eval-when-compile' block.
>
> Make sense.
>
>> (mapconcat #'identity ...) should do the same as `string-join'
>
> Yeah this becomes clearer.
>
>> Defining a map like zuul-log-mode-map is usually done using defvar
>>
>>     (defvar foo-map
>>       (let ((map (make-sparse-keymap)))
>>         (define-key map ...)
>>         ...
>>         map))
>
> I have taken your suggestions and made them into the following commits:
> - Add defvar to zuul-log-mode-map
> - Replace mapconcat with string-join
> - Require rx at compilation
> - Use defconst and defvar-local in private vars
> - Use composite types for defcustom variables
> https://git.sr.ht/~niklaseklund/zuul.el/log
>
> /Niklas
>
>>> The package allows users to access build logs from the Zuul,
>>> https://zuul-ci.org/, CI system. Users uses the completion interface of
>>> Emacs to select a specific build and a buffer is then opened with the
>>> build log.
>>>
>>> The package utilizes Emacs compilation mode to navigate between errors
>>> in the logs. It also lets the user configure where projects can be found
>>> on the local machine so that navigating to the source code of an error
>>> works, even though the absolute path might not be found on the local
>>> host.
>>>
>>> /Niklas Eklund
>>>
>>> From ed4201c73aa66b21b040169009dddb636ab76048 Mon Sep 17 00:00:00 2001
>>> From: Niklas Eklund <niklas.eklund@posteo.net>
>>> Date: Mon, 29 Aug 2022 20:26:35 +0200
>>> Subject: [PATCH] * elpa-packages (zuul): New package
>>>
>>> ---
>>>  elpa-packages | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/elpa-packages b/elpa-packages
>>> index 4ae12a26ca..5ab182f93b 100644
>>> --- a/elpa-packages
>>> +++ b/elpa-packages
>>> @@ -810,4 +810,8 @@
>>>   ("yasnippet-classic-snippets" :url nil)
>>>   ("zones"		:url nil)  ;https://www.emacswiki.org/emacs/zones.el
>>>   ("ztree"		:url "https://github.com/fourier/ztree")
>>> + ("zuul"		:url "https://git.sr.ht/~niklaseklund/zuul.el"
>>> +  :news "CHANGELOG.org"
>>> +  :readme "README.md"
>>> +  :auto-sync t)
>>>   )



  reply	other threads:[~2022-08-30 22:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-29 18:37 Add zuul.el package to ELPA Niklas Eklund
2022-08-30  9:02 ` Philip Kaludercic
2022-08-30 19:52   ` Niklas Eklund
2022-08-30 22:11     ` Philip Kaludercic [this message]
2022-08-31  9:25       ` Niklas Eklund
2022-08-31  9:54         ` Niklas Eklund
2022-08-31 11:09           ` Philip Kaludercic
2022-08-31 11:44             ` Niklas Eklund
2022-08-31 11:57               ` Philip Kaludercic
2022-08-31 12:08                 ` Philip Kaludercic
2022-08-31 12:47                   ` Niklas Eklund
2022-08-31 12:44                 ` Niklas Eklund
2022-08-31 14:43                   ` Philip Kaludercic
2022-08-30 14:22 ` Stefan Monnier
2022-08-30 16:59   ` Niklas Eklund

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87edwx755s.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=emacs-devel@gnu.org \
    --cc=niklas.eklund@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).