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: [ELPA] New package: SachaC-news Date: Sat, 18 Nov 2023 21:10:24 +0000 Message-ID: <87zfzazs1r.fsf@posteo.net> References: <87o7fyix8e.wl-cnngimenez@disroot.org> <87leawq1ng.fsf@posteo.net> <875y1yrehf.wl-cnngimenez@disroot.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22558"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Christian Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Nov 18 22:10:59 2023 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 1r4Sah-0005cQ-Dn for ged-emacs-devel@m.gmane-mx.org; Sat, 18 Nov 2023 22:10:59 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r4SaI-0001EX-0A; Sat, 18 Nov 2023 16:10:34 -0500 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 1r4SaG-0001EL-Oi for emacs-devel@gnu.org; Sat, 18 Nov 2023 16:10:32 -0500 Original-Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r4SaD-0000Kt-GV for emacs-devel@gnu.org; Sat, 18 Nov 2023 16:10:32 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id D6A55240027 for ; Sat, 18 Nov 2023 22:10:25 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1700341825; bh=Qi6WPTY/2Reaon8DvPmBjKUW/mMcKJHnl/43bbjH1vE=; h=From:To:Cc:Subject:Autocrypt:Date:Message-ID:MIME-Version:From; b=WDQK5fXSUples+eLSDuFEaY06eyIWtln1rsXCgx+hy0Abi/eg1w5ypmE3dJL5pe10 4a6JfHKI7hVht0Yd1CAtXsjBOS2IVFFvKTXZyWpRtmLuv0lZG2OwgD9mQ/mXntVZyR +rgQMPQs6YDNJajjDcLuZpqqQCXkGYHAAsxBSnfFVFPD5EsRbfU2iwMzYN3jdtNZ8z ddY+TcReY935YxDJ3FkR745zqU2TijZaOY9uEHQQQ0lLz3gt63scHP/XSigX2HhKk9 QRjl4qJYX0h+6gkuNvNO/812KZ7OwfTwJgqApyhqFbsD1mi29H8KfatOmaIJAe99+7 NhkEh+yTWEFeg== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4SXmdF0BGTz6trs; Sat, 18 Nov 2023 22:10:24 +0100 (CET) In-Reply-To: <875y1yrehf.wl-cnngimenez@disroot.org> (Christian's message of "Sat, 18 Nov 2023 17:30:36 -0300") X-Hashcash: 1:20:231118:cnngimenez@disroot.org::bY2LdnsTJ7QrboSh:033i X-Hashcash: 1:20:231118:emacs-devel@gnu.org::ramNY1X3ikE1PMhT:5Fga 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 Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@posteo.net; helo=mout01.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_H5=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:312932 Archived-At: Christian writes: > Thanks Philip! > > I applied the diff to this commit: > > https://git.sr.ht/~cngimenez/sachac-news/commit/8263dbc7982f543f673172c4a60d4bb68a48c6f6 It appears you applied my comments as well? I should have made it clear, that my message just intended to propose some changes, demonstrate possible alternatives and raise some questions for us to discuss. > Cheers! > Christian. > > On Fri, 17 Nov 2023 04:28:35 -0300, Kaludercic wrote: >> >> [1 ] >> Christian writes: >> >> > Hi! >> > >> > I want to propose SachaC-news (or sachac-news.el if you like) >> > package to be included in ELPA. Its objective is to check for >> > Sacha Chua's news repository periodically, and to show the Org >> > file if there is a new commit with a new post in it. It has >> > some customizations too, such as folding specific sections >> > automatically, and desktop notifications via "notify-send". The >> > requirement is the git program to be installed on your system. >> > This information and its usage is at the README.org file at the >> > package repository: >> > >> > https://github.com/cnngimenez/sachac-news >> > >> > The code has been checked with byte-compile-file, and >> > flycheck configured with checkdoc and flycheck-package [1]. >> >> > They do not display any warnings up to commit d00e629, but tell >> > me if you find something to fix or any suggestions. >> >> I found a few things, here is a diff with some comments and suggestions: >> >> [2 ] >> diff --git a/sachac-news.el b/sachac-news.el >> index 8d67911..1f389b2 100644 >> --- a/sachac-news.el >> +++ b/sachac-news.el >> @@ -22,7 +22,6 @@ >> ;; You should have received a copy of the GNU General Public License >> ;; along with this program. If not, see . >> >> - >> ;;; Commentary: >> >> ;; Check periodically for new commits on Sacha Chua's news repository. >> @@ -58,29 +57,29 @@ >> >> ;;; Code: >> >> -(provide 'sachac-news) >> (require 'org-element) >> (require 'org-list) >> -(require 'cl-extra) >> +(require 'cl-lib) >> >> (defgroup sachac-news nil >> "Sacha Chua's Emacs news customizations." >> :group 'applications) >> >> -(defcustom sachac-news-git-command "git" >> +(defcustom sachac-news-git-command >> + (eval-when-compile >> + (require 'vc-git) >> + vc-git-program) >> "Path or git command name. >> >> Valid values are \"/usr/bin/git\" or \"git\" if it is in the current PATH." >> - :type 'string >> - :group 'sachac-news) ;; defcustom >> + :type 'string) ;; defcustom >> >> (defcustom sachac-news-fold-category-regexp-list '() >> "A list of regexp strings of the matching categories that should be folded. >> >> The function `sachac-news-fold-categories' use this variable to find >> categories that the user wants to hide." >> - :type '(repeat regexp) >> - :group 'sachac-news) ;; defcustom >> + :type '(repeat regexp)) ;; defcustom >> >> (defcustom sachac-news-alarm-sound-file >> "/usr/share/sounds/freedesktop/stereo/bell.oga" >> @@ -88,8 +87,7 @@ categories that the user wants to hide." >> If the value is nil or the file does not exists, the `ding' function is used. >> >> See `sachac-news-default-sound-alarm' function." >> - :type 'file >> - :group 'sachac-news) ;; defcustom >> + :type 'file) ;; defcustom >> >> (defcustom sachac-news-alarm-sound-programs >> '(("mpv" . "--really-quiet %s") >> @@ -100,22 +98,20 @@ programs is founded on the system, the `ding' function will be used. The >> first program founded is used. >> >> This variable is used by `sachac-news-default-sound-alarm' function." >> - :type '(alist :key-type string :value-type string) >> - :group 'sachac-news ) ;; defcustom >> + :type '(alist :key-type string :value-type string)) ;; defcustom >> >> (defcustom sachac-news-alarm-functions-hook >> '(sachac-news-default-notify-alarm >> sachac-news-default-sound-alarm) >> "The alarm functions. >> These functions are called when there are new news." >> - :type 'hook >> - :group 'sachac-news ) ;; defcustom >> + :type 'hook) ;; defcustom >> >> (defconst sachac-news-title-regexp >> "^\\*\\*[[:space:]]+[[:digit:]]+-[[:digit:]]+-[[:digit:]]+[[:space:]]+Emacs news" >> - "Regexp used to find news titles in the index.org file." ) ;; defconst >> + "Regexp used to find news titles in the index.org file.") ;; defconst >> >> -(defvar sachac-news-timer-setted-time 0 >> +(defvar sachac-news-timer-setted-time 0 ;perhaps mark these as internal: sachac-news--... >> "At what time the timer has been setted? >> See `sachac-news-set-timer'.") >> >> @@ -148,66 +144,67 @@ Else, this variable contains nil.") >> >> If USE-INDEX-ORG is t, then load the index.org file. Else, use the current >> buffer as if it is the index.org." >> - >> (if use-index-org >> (with-temp-buffer >> (insert-file-contents (sachac-news-git-index-org)) >> - (sachac-news-take-last-new nil) ) >> + (sachac-news-take-last-new nil)) >> (progn >> (goto-char (point-min)) >> (search-forward-regexp sachac-news-title-regexp) >> (let ((sachac-news-title (org-element-at-point))) >> (buffer-substring-no-properties >> (org-element-property :begin sachac-news-title) >> - (org-element-property :end sachac-news-title))))) ) >> + (org-element-property :end sachac-news-title)))))) >> >> -(defcustom sachac-news-data-directory (concat user-emacs-directory >> - "sachac/") >> +(defcustom sachac-news-data-directory >> + (locate-user-emacs-file "sachac") >> "Where is the data directory?" >> - :type 'directory >> - :group 'sachac-news) ;; defcustom >> + :type 'directory) ;; defcustom >> >> -(defcustom sachac-news-data-file "data.el" >> +(defcustom sachac-news-data-file "data.eld" >> "The configuration and data file. >> This is where the last updated date and other data is stored." >> - :type 'file >> - :group 'sachac-news) ;; defcustom >> + :type 'file) ;; defcustom >> >> (defcustom sachac-news-git-dirname "git" >> "The directory where the git repository should be cloned." >> - :type 'string >> - :group 'sachac-news) >> + :type 'string) >> >> +;; She publishes the news every week around the beginning, why check >> +;; every day? >> (defcustom sachac-news-update-hours-wait 24 >> "The amount of hours when the git clone/pull must wait before be called. >> >> Default is 24 hours. Only positive values should be used." >> - :type 'integer >> - :group 'sachac-news ) ;; defcustom >> + :type 'natnum >> + :group 'sachac-news) ;; defcustom >> >> (defun sachac-news-dir-git () >> "Return the complete git path." >> - (concat sachac-news-data-directory "/" sachac-news-git-dirname) ) >> + (expand-file-name sachac-news-git-dirname sachac-news-data-directory)) >> >> (defun sachac-news-dir-datafile () >> "Return the complete data file path." >> - (concat sachac-news-data-directory "/" sachac-news-data-file) ) >> - >> + (expand-file-name sachac-news-data-file sachac-news-data-directory)) >> >> (defun sachac-news-git-index-org () >> "Return the index.org path on the git directory." >> - (concat (sachac-news-dir-git) "/emacs-news/index.org") ) >> + (expand-file-name >> + "index.org" >> + (expand-file-name >> + "emacs-news" >> + (sachac-news-dir-git)))) >> >> (defun sachac-news--show-last-new-internal () >> "Show the last news. >> This is used after the update sentinel is executed. >> See `sachac-news-show-last-new'." >> - (let ((str (sachac-news-take-last-new t))) >> + (let ((str (sachac-news-take-last-new t))) ;unused! >> (with-current-buffer (get-buffer-create "*last-news*") >> (org-mode) >> >> - (delete-region (point-min) (point-max)) >> - (insert str) >> + (erase-buffer) >> + (insert "foo") >> >> (goto-char (point-min)) >> >> @@ -217,7 +214,7 @@ See `sachac-news-show-last-new'." >> (sachac-news-update-last-saved-title) >> (sachac-news-fold-categories)) >> >> - (display-buffer (current-buffer)))) ) >> + (display-buffer (current-buffer))))) >> >> (defun sachac-news-show-last-new-if-new () >> "Show the last new if there is a new title. >> @@ -241,16 +238,12 @@ see `sachac-news-update-hours-wait' variable." >> #'sachac-news--show-last-new-internal >> #'sachac-news--show-last-new-internal)) >> >> -;; >> -;; -------------------- >> -;; Last saved title >> -;; >> +;;; Last saved title >> >> (defun sachac-news-update-last-saved-title () >> "Save the last title into the data file." >> - >> (setq sachac-news-last-saved-title (sachac-news-get-last-title)) >> - (sachac-news-save-data) ) >> + (sachac-news-save-data)) >> >> (defun sachac-news-get-last-title (&optional use-current-buffer) >> "Get the first title founded in the current buffer. >> @@ -264,7 +257,7 @@ the last title. Else, if t, use the current buffer, but remember to call >> nil t) >> (with-temp-buffer >> (insert (sachac-news-take-last-new t)) >> - (sachac-news-get-last-title t))) ) >> + (sachac-news-get-last-title t)))) >> >> (defun sachac-news-is-there-new-title-p (&optional use-current-buffer) >> "According to the last save, return t when a new post is found. >> @@ -284,12 +277,9 @@ last news buffer. Else, open the index.org and retrieve the last news." >> >> (or (null sachac-news-last-saved-title) >> (not (string-equal last-title >> - sachac-news-last-saved-title)))) ) >> + sachac-news-last-saved-title))))) >> >> -;; >> -;; -------------------- >> -;; Data or config. load/save >> -;; >> +;;; Data or config. load/save >> >> (defun sachac-news-load-data () >> "Update variables which values are in the configuration file. >> @@ -305,7 +295,7 @@ important variables." >> (setq sachac-news-last-saved-title >> (alist-get 'last-saved-title expr)) >> ;; Return the expression loaded >> - expr))) ) >> + expr)))) >> >> (defun sachac-news-save-data () >> "Save some important variables into the data file. >> @@ -313,20 +303,17 @@ These variables can be loaded again with `sachac-news-load-data'." >> (with-temp-buffer >> (let ((data (list (cons 'last-update sachac-news-last-update) >> (cons 'last-saved-title sachac-news-last-saved-title)))) >> - (insert (prin1-to-string data)) >> - (write-file (sachac-news-dir-datafile)) >> - data)) ) >> + (prin1 data (current-buffer)) >> + (write-region nil nil (sachac-news-dir-datafile) nil 'silent) >> + data))) >> >> (defun sachac-news-load-data-if-needed () >> "If the data has not been loaded yet, load it." >> (unless sachac-news-data-loaded >> (sachac-news-load-data) >> - (setq sachac-news-data-loaded t)) ) >> + (setq sachac-news-data-loaded t))) >> >> -;; >> -;; -------------------- >> -;; Git clone/update >> -;; >> +;;; Git clone/update >> >> (defun sachac-news-update-last-update () >> "Update the `sachac-news-last-update' date with the current date." >> @@ -335,6 +322,7 @@ These variables can be loaded again with `sachac-news-load-data'." >> >> (defun sachac-news-update-time-str () >> "Return a string with the last time and the amount of time left." >> + ;; Perhaps format this in a temporary buffer, then return the buffer string? >> (format "Waiting time: %s hours >> -- Update -- >> Last time updated: %s >> @@ -361,19 +349,19 @@ Time left for automatic forced update: %s %s" >> (* sachac-news-update-hours-wait 60 60))) >> "No timer setted") >> (number-to-string (/ (sachac-news-get-update-time-left) 60)) >> - "minutes") ) >> + "minutes")) >> >> (defun sachac-news-get-update-wait-seconds () >> "Get the `sachac-news-update-hours-wait' in seconds." >> - (* sachac-news-update-hours-wait 60 60) ) >> + (* sachac-news-update-hours-wait 60 60)) >> >> (defun sachac-news-show-update-time () >> "Display the time left for the next update." >> (interactive) >> (sachac-news-load-data-if-needed) >> (if sachac-news-last-update >> - (message (sachac-news-update-time-str)) >> - (message "Git has not been called before.")) ) >> + (message "%s" (sachac-news-update-time-str)) >> + (message "Git has not been called before."))) >> >> (defun sachac-news-get-update-time-left () >> "Return the seconds left for the next scheduled update. >> @@ -384,7 +372,7 @@ been setted)." >> (if sachac-news-timer-setted-time >> (- (+ sachac-news-timer-setted-time (sachac-news-get-update-wait-seconds)) >> (time-convert (current-time) 'integer)) >> - 0) ) >> + 0)) >> >> (defun sachac-news-get-update-enable-time-left () >> "Return the seconds left for the next enabled update. >> @@ -398,7 +386,7 @@ loaded)." >> (if sachac-news-last-update >> (- (+ sachac-news-last-update (sachac-news-get-update-wait-seconds)) >> (time-convert (current-time) 'integer)) >> - 0) ) >> + 0)) >> >> (defun sachac-news-get-update-time-elapsed () >> "Return the seconds elapsed since the last update. >> @@ -408,19 +396,19 @@ Return the numbre of seconds after the maximum wait + 1 if >> (if sachac-news-last-update >> (- (time-convert (current-time) 'integer) >> sachac-news-last-update) >> - (+ (sachac-news-get-update-wait-seconds) 1)) ) >> + (+ (sachac-news-get-update-wait-seconds) 1))) >> >> (defun sachac-news-is-time-for-update-p () >> "Check if a day has passed since the last update." >> (if sachac-news-last-update >> (>= (sachac-news-get-update-time-elapsed) >> - (sachac-news-get-update-wait-seconds) ) >> - t) ) >> + (sachac-news-get-update-wait-seconds)) >> + t)) >> >> (defun sachac-news-create-dirs () >> "Create the needed directories to save data and the repository." >> (make-directory sachac-news-data-directory t) >> - (make-directory (sachac-news-dir-git) t) ) >> + (make-directory (sachac-news-dir-git) t)) >> >> (defun sachac-news--git-sentinel (_process event) >> "Git sentinel. >> @@ -454,19 +442,19 @@ FUNC-CALL-AFTER is a function called after the git process endend successfully." >> (when func-call-after >> (add-hook 'sachac-news--git-hook func-call-after)) >> (setq sachac-news--git-process >> - (if (file-exists-p (sachac-news-git-index-org)) >> - (start-process-shell-command "sachac-news-git-pull" >> + (let ((default-directory (expand-file-name "emacs-news" (sachac-news-dir-git)))) >> + ;; I am not sure what the point is there, but I suspect >> + ;; there should be a better way to do this using timers >> + ;; and vc-git. >> + (if (file-exists-p (sachac-news-git-index-org)) >> + (start-process-shell-command "sachac-news-git-pull" >> + "*sachac-news-git*" >> + (concat "sleep 60 ; " git-program " pull")) >> + (start-process-shell-command "sachac-news-git-clone" >> "*sachac-news-git*" >> - (concat >> - "cd " (sachac-news-dir-git) "/emacs-news ; sleep 60 ; " >> - git-program >> - " pull")) >> - (start-process-shell-command "sachac-news-git-clone" >> - "*sachac-news-git*" >> - (concat >> - "cd " (sachac-news-dir-git) "; sleep 60 ; " >> - git-program " clone https://github.com/sachac/emacs-news.git")))) >> - (set-process-sentinel sachac-news--git-process #'sachac-news--git-sentinel)) ) >> + (concat "sleep 60 ; " git-program " clone \ >> +https://github.com/sachac/emacs-news.git"))))) >> + (set-process-sentinel sachac-news--git-process #'sachac-news--git-sentinel))) >> >> >> (defun sachac-news-update-git (&optional force-update >> @@ -501,11 +489,11 @@ pull/clone." >> (when callback-if-no-update >> (funcall callback-if-no-update)))) >> ;; Git program not founded >> - (message "%s %s\n%s\n%s" >> - "The Git program has not been founded!" >> - "SachaC-news cannot download news without it!" >> - "Please install it in our system or customize the variable:" >> - "M-x customize-option sachac-news-git-command"))) ) >> + (message (substitute-command-keys >> + "The Git program has not been founded! \ >> +SachaC-news cannot download news without it! >> +Please install it in our system or customize the variable: ) >> +\\[customize-option] sachac-news-git-command"))))) >> >> (defun sachac-news-open-index-file () >> "Open the index.org file from the local repository. >> @@ -519,15 +507,10 @@ how the update is done." >> (sachac-news-update-git) >> (if (file-exists-p (sachac-news-git-index-org)) >> (find-file (sachac-news-git-index-org)) >> - (message "%s\n%s" >> - "Index file not found! Did something wrong happen?" >> - "See `sachac-news-update-git'.")) ) >> + (message "Index file not found! Did something wrong happen? >> +See `sachac-news-update-git'."))) >> >> - >> -;; >> -;; -------------------- >> -;; Folding categories >> -;; >> +;;; Folding categories >> >> (defun sachac-news-find-all-categories (category-regexps &optional org-element) >> "Match paragraph with the CATEGORY-REGEXPS regexp. >> @@ -554,7 +537,7 @@ Returns a list of org-element of type \\'item found in the index.org." >> (string-match-p category element)) >> category-regexps)) >> >> - parent)))) ) >> + parent))))) >> >> >> (defun sachac-news-fold-all-items (item-list) >> @@ -582,12 +565,9 @@ This function works on any Org file, even at the Emacs news' index.org." >> (let ((category-list (if category-regexp-list category-regexp-list >> sachac-news-fold-category-regexp-list))) >> (sachac-news-fold-all-items >> - (sachac-news-find-all-categories category-list))) ) >> + (sachac-news-find-all-categories category-list)))) >> >> -;; >> -;; -------------------- >> -;; Alarm >> -;; >> +;;; Alarm >> >> (defun sachac-news-default-notify-alarm () >> "The default alarm. >> @@ -596,7 +576,7 @@ Use the notify-send to send the alarm." >> (when program >> (shell-command (concat program >> " --app-name=\"Emacs: SachaC-news\"" >> - " \"Check the News!\"")))) ) >> + " \"Check the News!\""))))) >> >> (defun sachac-news-default-sound-alarm () >> "The default sound alarm. >> @@ -619,17 +599,14 @@ as fallback." >> (car program-data) >> (split-string >> (format (cadr program-data) sachac-news-alarm-sound-file))) >> - (ding t))) ) >> + (ding t)))) >> >> (defun sachac-news-run-alarm-if-needed () >> "Run the alarm hook functions if there is a new post ." >> (when (sachac-news-is-there-new-title-p) >> - (run-hooks 'sachac-news-alarm-functions-hook)) ) >> + (run-hooks 'sachac-news-alarm-functions-hook))) >> >> -;; >> -;; -------------------- >> -;; Timer >> -;; >> +;;; Timer >> >> (defun sachac-news-timer-function () >> "The function used by the timer." >> @@ -638,7 +615,7 @@ as fallback." >> (sachac-news-update-git t #'sachac-news-show-last-new-if-new) >> (sachac-news-run-alarm-if-needed) >> >> - (sachac-news-activate-timer) ) >> + (sachac-news-activate-timer)) >> >> >> (defun sachac-news-activate-timer () >> @@ -650,9 +627,9 @@ Set the timer for executing on `sachac-news-update-hours-wait' hours." >> (setq sachac-news-timer-setted-time (time-convert (current-time) 'integer)) >> (setq sachac-news-timer >> (run-at-time >> - (concat (number-to-string sachac-news-update-hours-wait) "hours") >> - nil >> - #'sachac-news-timer-function)) ) >> + (format "%d hours" sachac-news-update-hours-wait) >> + nil >> + #'sachac-news-timer-function))) >> >> (defun sachac-news-deactivate-timer () >> "Stop and cancel the timer." >> @@ -660,7 +637,7 @@ Set the timer for executing on `sachac-news-update-hours-wait' hours." >> (when (timerp sachac-news-timer) >> (cancel-timer sachac-news-timer) >> (setq sachac-news-timer nil)) >> - (setq sachac-news-timer-setted-time nil) ) >> + (setq sachac-news-timer-setted-time nil)) >> >> (defun sachac-news-timer-status () >> "Is the timer setted or not? >> @@ -668,8 +645,13 @@ Report the user about the timer status." >> (interactive) >> (if (timerp sachac-news-timer) >> (message "Timer is setted and running.") >> - (message "Timer is deactivated")) ) >> + (message "Timer is deactivated"))) >> + >> +;; Don't activate side effects while loading your package! Instruct >> +;; the users to add this to their init.el, so that one knows what is >> +;; going on. >> >> -(sachac-news-activate-timer) >> +;; (sachac-news-activate-timer) >> >> +(provide 'sachac-news) >> ;;; sachac-news.el ends here >> [3 ] >> >> > According to http://elpa.gnu.org/, and the README.org [2] file >> > linked there, it says to notify to this mail address as >> > first step. Also, it mentions other steps regarding pushing the >> > code and adding an entry on elpa-packages file. But, there is a >> > marker above indicating "OUTDATED" [3]. >> >> That should be addressed ^^ >> >> > Please, could you tell me if these steps are needed? >> > If they are not, how should I proceed? >> >> As soon as we sort out the above comments, I can take care of adding the >> package for you. >> >> > Cheers! >> > Christian Gimenez >> > >> > [1] https://github.com/purcell/flycheck-package >> > [2] https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/README >> > [3] The section states: "Text below this marker is OUTDATED and >> > still needs to be reviewed/rewritten!!" > > -- > > - Mastodon: @cnngimenez@mastodon.social > > ,= ,-_-. =. Utilice GPG: > ((_/)o o(\_)) * https://emailselfdefense.fsf.org/ > `-'(. .)`-' * Usando la terminal GNU/Linux: > \_/ $ gpg2 --search-keys 77A56F0DA5DD9E05 > -- Philip Kaludercic