[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master e875a03 4/7: Improved contributing section in documentatio
From: |
Ian Dunn |
Subject: |
[elpa] master e875a03 4/7: Improved contributing section in documentation |
Date: |
Sun, 11 Nov 2018 15:04:51 -0500 (EST) |
branch: master
commit e875a03af1cfd2cfc6b6672244d8a9c61cdc4783
Author: Ian Dunn <address@hidden>
Commit: Ian Dunn <address@hidden>
Improved contributing section in documentation
* org-edna.org (Installation and Setup): Removed compilation instructions.
(Finder Cache): New section documenting cache setup.
(Working with EDE): New section about EDE.
(Compiling Edna): New section about compiling Edna.
(Testing Edna): New section on how to test Edna.
(Before Sending Changes): Moved out of "development"
(Developing with Bazaar): Moved out of "development"
(Development): Removed.
(Changelog): Updated.
---
org-edna.info | 322 ++++++++++++++++++++++++++++++++++++++++++----------------
org-edna.org | 152 ++++++++++++++++++++++++---
2 files changed, 373 insertions(+), 101 deletions(-)
diff --git a/org-edna.info b/org-edna.info
index 33b6708..fde1e6e 100644
--- a/org-edna.info
+++ b/org-edna.info
@@ -76,6 +76,7 @@ Actions
Advanced Features
+* Finder Cache:: Making the finders work faster
* Conditions:: More than just DONE headings
* Consideration:: Only some of them
* Conditional Forms:: If/Then/Else
@@ -102,11 +103,16 @@ Extending Edna
Contributing
* Bugs::
-* Development::
+* Working with EDE:: And all its quirks
+* Compiling Edna:: How to compile Edna
+* Testing Edna:: Ensuring Edna works the way we think she will
+* Before Sending Changes:: Follow these instructions before sending us
anything
+* Developing with Bazaar:: How to use this strange VCS
* Documentation:: Improving the documentation
Changelog
+* 1.0beta7: 10beta7.
* 1.0beta6: 10beta6.
* 1.0beta5: 10beta5.
* 1.0beta4: 10beta4.
@@ -184,13 +190,12 @@ org 9.0.5
From Source:
bzr branch https://bzr.savannah.gnu.org/r/org-edna-el/ org-edna
- make -C org-edna compile autoloads
After that, add the following to your init file (typically .emacs):
;; Only necessary if installing from source
(add-to-list 'load-path "/full/path/to/org-edna/")
- (load "/path/to/org-edna/org-edna-autoloads.el")
+ (require 'org-edna)
;; Always necessary
(org-edna-load)
@@ -1056,13 +1061,39 @@ Advanced Features
* Menu:
+* Finder Cache:: Making the finders work faster
* Conditions:: More than just DONE headings
* Consideration:: Only some of them
* Conditional Forms:: If/Then/Else
* Setting the Properties:: The easy way to set BLOCKER and TRIGGER
-File: org-edna.info, Node: Conditions, Next: Consideration, Up: Advanced
Features
+File: org-edna.info, Node: Finder Cache, Next: Conditions, Up: Advanced
Features
+
+Finder Cache
+============
+
+Some finders, ‘match’ in particular, can take a long time to run.
+Oftentimes, this can make it unappealing to use Edna at all, especially
+with long checklists.
+
+ The finder cache is one solution to this. To enable it, set
+‘org-edna-finder-use-cache’ to non-nil. This can be done through the
+customization interface, or manually with ‘setq’.
+
+ When enabled, the cache will store the results of every finder form
+for a configurable amount of time. This timeout is controlled by
+‘org-edna-finder-cache-timeout’. The cache is also invalidated if any
+of the results are invalid, which can happen if their target files have
+been closed.
+
+ For example, if there are several entries in a checklist that all use
+the form ‘match("daily")’ as part of their trigger, the results of that
+form will be cached. When the next item is marked as DONE, the results
+will be searched for in cache, not recomputed.
+
+
+File: org-edna.info, Node: Conditions, Next: Consideration, Prev: Finder
Cache, Up: Advanced Features
Conditions
==========
@@ -1441,11 +1472,15 @@ We are all happy for any help you may provide.
* Menu:
* Bugs::
-* Development::
+* Working with EDE:: And all its quirks
+* Compiling Edna:: How to compile Edna
+* Testing Edna:: Ensuring Edna works the way we think she will
+* Before Sending Changes:: Follow these instructions before sending us
anything
+* Developing with Bazaar:: How to use this strange VCS
* Documentation:: Improving the documentation
-File: org-edna.info, Node: Bugs, Next: Development, Up: Contributing
+File: org-edna.info, Node: Bugs, Next: Working with EDE, Up: Contributing
Bugs
====
@@ -1459,10 +1494,111 @@ There are two ways to submit bug reports:
caused the bug, with as much context as possible.
-File: org-edna.info, Node: Development, Next: Documentation, Prev: Bugs,
Up: Contributing
+File: org-edna.info, Node: Working with EDE, Next: Compiling Edna, Prev:
Bugs, Up: Contributing
+
+Working with EDE
+================
+
+Our build system uses EDE. EDE can be a little finicky at times, but we
+feel the benefits, namely package dependency handling and Makefile
+generation, outweigh the costs.
+
+ One of the issues that many will likely encounter is the error
+“Corrupt file on disk”. This is most often due to EDE not loading all
+its subprojects as needed. If you find yourself dealing with this error
+often, place the following in your .emacs file:
+
+ ;; Target types needed for working with edna
+ (require 'ede/proj-elisp)
+ (require 'ede/proj-aux)
+ (require 'ede/proj-misc)
+
+ These are the three target types that edna uses: elisp for
+compilation and autoloads; aux for auxiliary files such as
+documentation; and misc for tests.
+
+ When creating a new file, EDE will ask if you want to add it to a
+target. Consult with one of the edna devs for guidance, but usually
+selecting “none” and letting one of us handle it is a good way to go.
+
+
+File: org-edna.info, Node: Compiling Edna, Next: Testing Edna, Prev:
Working with EDE, Up: Contributing
+
+Compiling Edna
+==============
+
+To compile Edna, you’ve got to have EDE create the Makefile first. Run
+the following in your Emacs instance to generate the Makefile:
+
+ M-x ede-proj-regenerate
+
+ This will create the Makefile and point it to the correct version of
+Org. The targets are as follows:
+
+compile
+ Compiles the code. This should be done to verify that everything
+ will compile, as ELPA requires this.
+autoloads
+ Creates the autoloads file. This should also run without problems,
+ so it’s a good idea to check this one as well.
+check
+ Runs the tests in ‘org-edna-tests.el’.
+
+ To run any target, call ‘make’:
+
+ make compile autoloads
+
+ The above command compiles Edna and generates the autoloads file.
+
+
+File: org-edna.info, Node: Testing Edna, Next: Before Sending Changes,
Prev: Compiling Edna, Up: Contributing
+
+Testing Edna
+============
+
+There are two ways to test Edna: the command-line and through Emacs.
+
+ The command-line version is simple, and we ask that you do any final
+testing using this method. This is how we periodically check to verify
+that new versions of Org mode haven’t broken Edna. It uses the
+Makefile, which is generated with EDE. See *note Compiling Edna:: for
+how to do that. Once you have, run ‘make check’ on the command line.
+
+ Edna tests are written using ‘ERT’, the Emacs Regression Testing
+framework. In order to use it interactively in Emacs, the following
+must be done:
+
+ 1. Load ‘org-edna-tests.el’
+ 2. Run ‘M-x ert-run-tests-interactively’
+ 3. Select which tests to run, or just the letter “t” to run all of
+ them.
+
+ Results are printed in their own buffer. See the ERT documentation
+for more details.
+
+
+File: org-edna.info, Node: Before Sending Changes, Next: Developing with
Bazaar, Prev: Testing Edna, Up: Contributing
+
+Before Sending Changes
+======================
+
+There are a few rules to follow:
+
+ • Verify that any new Edna keywords follow the appropriate naming
+ conventions
+ • Any new keywords should be documented
+ • We operate on headings, not headlines
+ • Use one word in documentation to avoid confusion
+ • Make sure your changes compile
+ • Run ’make check’ to verify that your mods don’t break anything
+ • Avoid additional or altered dependencies if at all possible
+ • Exception: New versions of Org mode are allowed
+
+
+File: org-edna.info, Node: Developing with Bazaar, Next: Documentation,
Prev: Before Sending Changes, Up: Contributing
-Development
-===========
+Developing with Bazaar
+======================
If you’re new to bazaar, we recommend using Emacs’s built-in VC package.
It eases the overhead of dealing with a brand new VCS with a few
@@ -1478,19 +1614,8 @@ Emacs, this is C-h r m Introduction to VC RET).
Then, use ‘org-edna-submit-bug-report’ and attach “file-name.txt”.
We can then merge that into the main development branch.
- There are a few rules to follow:
-
- • Verify that any new Edna keywords follow the appropriate naming
- conventions
- • Any new keywords should be documented
- • We operate on headings, not headlines
- • Use one word to avoid confusion
- • Run ’make check’ to verify that your mods don’t break anything
- • Avoid additional or altered dependencies if at all possible
- • Exception: New versions of Org mode are allowed
-
-File: org-edna.info, Node: Documentation, Prev: Development, Up:
Contributing
+File: org-edna.info, Node: Documentation, Prev: Developing with Bazaar, Up:
Contributing
Documentation
=============
@@ -1511,6 +1636,7 @@ Changelog
* Menu:
+* 1.0beta7: 10beta7.
* 1.0beta6: 10beta6.
* 1.0beta5: 10beta5.
* 1.0beta4: 10beta4.
@@ -1518,7 +1644,21 @@ Changelog
* 1.0beta2: 10beta2.
-File: org-edna.info, Node: 10beta6, Next: 10beta5, Up: Changelog
+File: org-edna.info, Node: 10beta7, Next: 10beta6, Up: Changelog
+
+1.0beta7
+========
+
+Biggest change here is the cache.
+
+ • Added cache to the finders to improve performance
+
+ • Updated documentation to include EDE
+
+ • Added testing and compiling documentation
+
+
+File: org-edna.info, Node: 10beta6, Next: 10beta5, Prev: 10beta7, Up:
Changelog
1.0beta6
========
@@ -1610,72 +1750,78 @@ Big release here, with three new features.
Tag Table:
Node: Top225
-Node: Copying3693
-Node: Introduction4515
-Node: Installation and Setup5463
-Node: Basic Operation6256
-Node: Blockers8107
-Node: Triggers8393
-Node: Syntax8655
-Node: Basic Features9345
-Node: Finders9648
-Node: ancestors11413
-Node: children12007
-Node: descendants12417
-Node: file12939
-Node: first-child13688
-Node: ids13948
-Node: match14609
-Node: next-sibling15247
-Node: next-sibling-wrap15504
-Node: olp15818
-Node: org-file16230
-Node: parent16875
-Node: previous-sibling17073
-Node: previous-sibling-wrap17334
-Node: relatives17613
-Node: rest-of-siblings21234
-Node: rest-of-siblings-wrap21519
-Node: self21868
-Node: siblings22029
-Node: siblings-wrap22266
-Node: Actions22570
-Node: Scheduled/Deadline23312
-Node: TODO State26887
-Node: Archive27255
-Node: Chain Property27575
-Node: Clocking27858
-Node: Property28270
-Node: Priority30457
-Node: Tag31026
-Node: Effort31243
-Node: Advanced Features31632
-Node: Conditions32016
-Node: done32631
-Node: headings32795
-Node: todo-state33171
-Node: variable-set33427
-Node: has-property33856
-Node: re-search34125
-Node: Negating Conditions34485
-Node: Consideration34872
-Node: Conditional Forms36441
-Node: Setting the Properties39097
-Node: Extending Edna40181
-Node: Naming Conventions40671
-Node: Finders 141132
-Node: Actions 141494
-Node: Conditions 141953
-Node: Contributing42839
-Node: Bugs43390
-Node: Development43742
-Node: Documentation44895
-Node: Changelog45340
-Node: 10beta645548
-Node: 10beta545808
-Node: 10beta446195
-Node: 10beta346448
-Node: 10beta246887
+Node: Copying4093
+Node: Introduction4915
+Node: Installation and Setup5863
+Node: Basic Operation6587
+Node: Blockers8438
+Node: Triggers8724
+Node: Syntax8986
+Node: Basic Features9676
+Node: Finders9979
+Node: ancestors11744
+Node: children12338
+Node: descendants12748
+Node: file13270
+Node: first-child14019
+Node: ids14279
+Node: match14940
+Node: next-sibling15578
+Node: next-sibling-wrap15835
+Node: olp16149
+Node: org-file16561
+Node: parent17206
+Node: previous-sibling17404
+Node: previous-sibling-wrap17665
+Node: relatives17944
+Node: rest-of-siblings21565
+Node: rest-of-siblings-wrap21850
+Node: self22199
+Node: siblings22360
+Node: siblings-wrap22597
+Node: Actions22901
+Node: Scheduled/Deadline23643
+Node: TODO State27218
+Node: Archive27586
+Node: Chain Property27906
+Node: Clocking28189
+Node: Property28601
+Node: Priority30788
+Node: Tag31357
+Node: Effort31574
+Node: Advanced Features31963
+Node: Finder Cache32411
+Node: Conditions33450
+Node: done34086
+Node: headings34250
+Node: todo-state34626
+Node: variable-set34882
+Node: has-property35311
+Node: re-search35580
+Node: Negating Conditions35940
+Node: Consideration36327
+Node: Conditional Forms37896
+Node: Setting the Properties40552
+Node: Extending Edna41636
+Node: Naming Conventions42126
+Node: Finders 142587
+Node: Actions 142949
+Node: Conditions 143408
+Node: Contributing44294
+Node: Bugs45160
+Node: Working with EDE45517
+Node: Compiling Edna46601
+Node: Testing Edna47470
+Node: Before Sending Changes48451
+Node: Developing with Bazaar49138
+Node: Documentation49879
+Node: Changelog50335
+Node: 10beta750564
+Node: 10beta650842
+Node: 10beta551118
+Node: 10beta451505
+Node: 10beta351758
+Node: 10beta252197
End Tag Table
diff --git a/org-edna.org b/org-edna.org
index 31240c9..6e6c35f 100644
--- a/org-edna.org
+++ b/org-edna.org
@@ -70,7 +70,6 @@ From Source:
#+BEGIN_SRC shell
bzr branch https://bzr.savannah.gnu.org/r/org-edna-el/ org-edna
-make -C org-edna compile autoloads
#+END_SRC
After that, add the following to your init file (typically .emacs):
@@ -78,7 +77,7 @@ After that, add the following to your init file (typically
.emacs):
#+BEGIN_SRC emacs-lisp
;; Only necessary if installing from source
(add-to-list 'load-path "/full/path/to/org-edna/")
-(load "/path/to/org-edna/org-edna-autoloads.el")
+(require 'org-edna)
;; Always necessary
(org-edna-load)
@@ -874,6 +873,30 @@ Sets the effort of all targets according to VALUE:
:PROPERTIES:
:CUSTOM_ID: advanced
:END:
+** Finder Cache
+:PROPERTIES:
+:CUSTOM_ID: cache
+:DESCRIPTION: Making the finders work faster
+:END:
+
+Some finders, ~match~ in particular, can take a long time to run. Oftentimes,
+this can make it unappealing to use Edna at all, especially with long
+checklists.
+
+The finder cache is one solution to this. To enable it, set
+~org-edna-finder-use-cache~ to non-nil. This can be done through the
+customization interface, or manually with ~setq~.
+
+When enabled, the cache will store the results of every finder form for a
+configurable amount of time. This timeout is controlled by
+~org-edna-finder-cache-timeout~. The cache is also invalidated if any of the
+results are invalid, which can happen if their target files have been closed.
+
+For example, if there are several entries in a checklist that all use the form
+~match("daily")~ as part of their trigger, the results of that form will be
+cached. When the next item is marked as DONE, the results will be searched for
+in cache, not recomputed.
+
** Conditions
:PROPERTIES:
:CUSTOM_ID: conditions
@@ -1238,6 +1261,9 @@ git clone git://orgmode.org/org-mode.git
#+END_SRC
** Bugs
+:PROPERTIES:
+:CUSTOM_ID: bugs
+:END:
There are two ways to submit bug reports:
@@ -1247,7 +1273,110 @@ There are two ways to submit bug reports:
When submitting a bug report, be sure to include the Edna form that caused the
bug, with as much context as possible.
-** Development
+** Working with EDE
+:PROPERTIES:
+:CUSTOM_ID: ede
+:DESCRIPTION: And all its quirks
+:END:
+
+Our build system uses EDE. EDE can be a little finicky at times, but we feel
+the benefits, namely package dependency handling and Makefile generation,
+outweigh the costs.
+
+One of the issues that many will likely encounter is the error "Corrupt file on
+disk". This is most often due to EDE not loading all its subprojects as
needed.
+If you find yourself dealing with this error often, place the following in your
+.emacs file:
+
+#+begin_src emacs-lisp
+;; Target types needed for working with edna
+(require 'ede/proj-elisp)
+(require 'ede/proj-aux)
+(require 'ede/proj-misc)
+#+end_src
+
+These are the three target types that edna uses: elisp for compilation and
+autoloads; aux for auxiliary files such as documentation; and misc for tests.
+
+When creating a new file, EDE will ask if you want to add it to a target.
+Consult with one of the edna devs for guidance, but usually selecting "none"
+and letting one of us handle it is a good way to go.
+
+** Compiling Edna
+:PROPERTIES:
+:CUSTOM_ID: compiling
+:DESCRIPTION: How to compile Edna
+:END:
+To compile Edna, you've got to have EDE create the Makefile first. Run the
+following in your Emacs instance to generate the Makefile:
+
+#+begin_example
+M-x ede-proj-regenerate
+#+end_example
+
+This will create the Makefile and point it to the correct version of Org. The
+targets are as follows:
+
+- compile :: Compiles the code. This should be done to verify that everything
+ will compile, as ELPA requires this.
+- autoloads :: Creates the autoloads file. This should also run without
+ problems, so it's a good idea to check this one as well.
+- check :: Runs the tests in ~org-edna-tests.el~.
+
+To run any target, call ~make~:
+
+#+begin_src shell
+make compile autoloads
+#+end_src
+
+The above command compiles Edna and generates the autoloads file.
+
+** Testing Edna
+:PROPERTIES:
+:CUSTOM_ID: testing
+:DESCRIPTION: Ensuring Edna works the way we think she will
+:END:
+
+There are two ways to test Edna: the command-line and through Emacs.
+
+The command-line version is simple, and we ask that you do any final testing
+using this method. This is how we periodically check to verify that new
+versions of Org mode haven't broken Edna. It uses the Makefile, which is
+generated with EDE. See [[#compiling][Compiling Edna]] for how to do that.
Once you have, run
+~make check~ on the command line.
+
+Edna tests are written using ~ERT~, the Emacs Regression Testing framework. In
+order to use it interactively in Emacs, the following must be done:
+
+1. Load ~org-edna-tests.el~
+2. Run ~M-x ert-run-tests-interactively~
+3. Select which tests to run, or just the letter "t" to run all of them.
+
+Results are printed in their own buffer. See the ERT documentation for more
+details.
+
+** Before Sending Changes
+:PROPERTIES:
+:CUSTOM_ID: commit_checklist
+:DESCRIPTION: Follow these instructions before sending us anything
+:END:
+
+There are a few rules to follow:
+
+- Verify that any new Edna keywords follow the appropriate naming conventions
+- Any new keywords should be documented
+- We operate on headings, not headlines
+ - Use one word in documentation to avoid confusion
+- Make sure your changes compile
+- Run 'make check' to verify that your mods don't break anything
+- Avoid additional or altered dependencies if at all possible
+ - Exception: New versions of Org mode are allowed
+
+** Developing with Bazaar
+:PROPERTIES:
+:CUSTOM_ID: bzr_dev
+:DESCRIPTION: How to use this strange VCS
+:END:
If you're new to bazaar, we recommend using Emacs's built-in VC package. It
eases the overhead of dealing with a brand new VCS with a few standard
commands.
@@ -1265,16 +1394,6 @@ $ bzr send -o file-name.txt
Then, use ~org-edna-submit-bug-report~ and attach "file-name.txt". We can then
merge that into the main development branch.
-There are a few rules to follow:
-
-- Verify that any new Edna keywords follow the appropriate naming conventions
-- Any new keywords should be documented
-- We operate on headings, not headlines
- - Use one word to avoid confusion
-- Run 'make check' to verify that your mods don't break anything
-- Avoid additional or altered dependencies if at all possible
- - Exception: New versions of Org mode are allowed
-
** Documentation
:PROPERTIES:
:CUSTOM_ID: docs
@@ -1292,7 +1411,14 @@ making any changes:
:DESCRIPTION: List of changes by version
:END:
** 1.0beta7
+Biggest change here is the cache.
+
- Added cache to the finders to improve performance
+
+- Updated documentation to include EDE
+
+- Added testing and compiling documentation
+
** 1.0beta6
Lots of parsing fixes.
- [elpa] master updated (4ce0ed8 -> 7294b59), Ian Dunn, 2018/11/11
- [elpa] master de3f6fa 2/7: Bumped version, Ian Dunn, 2018/11/11
- [elpa] master e7ec6a8 1/7: Implemented finder cache, Ian Dunn, 2018/11/11
- [elpa] master 9c48be8 3/7: Updated tests for new form expansion, Ian Dunn, 2018/11/11
- [elpa] master 26b0a6e 6/7: Added documentation about using a timeout for cache, Ian Dunn, 2018/11/11
- [elpa] master 71ee9f6 5/7: Added tests for cache, Ian Dunn, 2018/11/11
- [elpa] master e875a03 4/7: Improved contributing section in documentation,
Ian Dunn <=
- [elpa] master 7294b59 7/7: Merge commit '26b0a6e6fb03fe4b895bb03972bbb0d80ce2e8e3', Ian Dunn, 2018/11/11