From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Org-mode release 7.01 Date: Mon, 19 Jul 2010 08:43:23 +0200 Message-ID: <4EED441F-C7A5-43DD-A3C1-3BF478BAAFD2@gmail.com> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=33329 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Oak4n-0003Yl-1C for emacs-orgmode@gnu.org; Mon, 19 Jul 2010 02:43:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Oak4k-0005Ae-Ls for emacs-orgmode@gnu.org; Mon, 19 Jul 2010 02:43:44 -0400 Received: from mail-ew0-f41.google.com ([209.85.215.41]:43885) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Oak4k-0005AO-B8 for emacs-orgmode@gnu.org; Mon, 19 Jul 2010 02:43:42 -0400 Received: by ewy28 with SMTP id 28so1355156ewy.0 for ; Sun, 18 Jul 2010 23:43:40 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode Mailinglist Hi everyone, I have just released version 7.01 of Org mode. This is a major release, and we have worked months on getting it together. Most important is of cause the complete integration of Org Babel into Org mode. Many thanks to Eric Schulte and Dan Davison who have worked tirelessly to make this happen. Thomas S. Dye gets credit here as well because he did a lot of work on documentation and function/variable docstrings. Also, I need to shout out my gratitude to the increasing number of volunteers in the project. John Wiegley's patchwork server has done wonders for streamlining the process of reviewing and applying patches. I have applied dozens of patches though this process, just in the last week. The issue tracker by David Maus has finally brought some structure into the stream of ideas and reports on this mailing list, at a moment when I was about to falter under the amount of work maintaining this project means for me. Frankly, right now I don't know how I would do things without David's competent and efficient help - he has effectively and silently become co-maintainer of this project. Below these tips above the waterline, there is an iceberg of contributions large and small by so many people. We have 54 people with FSF papers now, and more contributors of tiny patches. Also there are the volunteers that manage the mailing list, Worg, and the FAQ. I am truly humbled and made proud at the same time by each and every contribution that the Org mode projects receives. These contributions made Org mode the phenomenon it now is. Thanks, thanks, thanks! Enjoy! - Carsten P.S. If you are trying to find the 7.01 release on the master branch in the repository, you will not. The releases are now on a new branch, called "maint", which will contain only commits that are also releases. This will make it easier to make minor fixes to a release while development continues on the master branch. P.P.S. The feature freeze is over now. Changes in Version 7.01 ======================= Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~ Emacs 21 support has been dropped ================================== Do not use Org mode 7.xx with Emacs 21, use [version 6.36c] instead. [version 6.36c]: http://orgmode.org/org-6.36c.zip XEmacs support requires the XEmacs development version ======================================================= To use Org mode 7.xx with XEmacs, you need to run the developer version of XEmacs. I was about to drop XEmacs support entirely, but Michael Sperber stepped in and made changes to XEmacs that made it easier to keep the support. Thanks to Michael for this last-minute save. I had hoped to be able to remove xemacs/noutline.el from release 7 by moving it into XEmacs, but this is not yet done. Org-babel configuration changes ================================ Babel took the integration into Org-mode as an opportunity to do some much needed house cleaning. Most importantly we have simplified the enabling of language support, and cleared out unnecessary configuration variables -- which is great unless you already have a working configuration under the old model. The most important changes regard the /location/ and /enabling/ of Babel (both core functionality and language specific support). Babel: Babel is now part of the core of Org-mode, so it is now loaded along with the rest of Org-mode. That means that there is /no configuration/ required to enable the main Babel functionality. For current users, this means that statements like (require 'org-babel) or (require 'org-babel-init) that may by lying around in your configuration must now be removed. load path: Babel (including all language specific files -- aside from those which are located in the =contrib/= directory for reasons of licencing) now lives in the base of the Org-mode lisp directory, so /no additional directories/ need to be added to your load path to use babel. For Babel users this means that statements adding babel-specific directories to your load-path should now be removed from your config. language support: It is no longer necessary to require language specific support on a language-by-language basis. Specific language support should now be managed through the `org-babel-load-languages' variable. This variable can be customized using the Emacs customization interface, or through the addition of something like the following to your configuration (note: any language not mentioned will /not/ be enabled, aside from =emacs-lisp= which is enabled by default) (org-babel-do-load-languages 'org-babel-load-languages '((R . t) (ditaa . t) (dot . t) (emacs-lisp . t) (gnuplot . t) (haskell . nil) (ocaml . nil) (python . t) (ruby . t) (screen . nil) (sh . t) (sql . nil) (sqlite . t))) Despite this change it is still possible to add language support through the use of =require= statements, however to conform to Emacs file-name regulations all Babel language files have changed prefix from =org-babel-*= to =ob-*=, so the require lines must also change e.g. (require 'org-babel-R) should be changed to (require 'ob-R) We have eliminated the =org-babel-tangle-w-comments= variable as well as the two main internal lists of languages, namely - =org-babel-interpreters= and - =org-babel-tangle-langs= so any config lines which mention those variables, can/should be stripped out in their entirety. This includes any calls to the =org-babel-add-interpreter= function, whose sole purpose was to add languages to the =org-babel-interpreters= variable. With those calls stripped out, we may still in some cases want to associate a file name extension with certain languages, for example we want all of our emacs-lisp files to end in a =.el=, we can do this will the =org-babel-tangle-lang-exts= variable. In general you shouldn't need to touch this as it already has defaults for most common languages, and if a language is not present in org-babel-tangle-langs, then babel will just use the language name, so for example a file of =c= code will have a =.c= extension by default, shell-scripts (identified with =sh=) will have a =.sh= extension etc... The configuration of /shebang/ lines now lives in header arguments. So the shebang for a single file can be set at the code block level, e.g. #+begin_src clojure :shebang #!/usr/bin/env clj (println "with a shebang line, I can be run as a script!") #+end_src Note that whenever a file is tangled which includes a /shebang/ line, Babel will make the file executable, so there is good reason to only add /shebangs/ at the source-code block level. However if you're sure that you want all of your code in some language (say shell scripts) to tangle out with shebang lines, then you can customize the default header arguments for that language, e.g. ;; ensure this variable is defined defined (unless (boundp 'org-babel-default-header-args:sh) (setq org-babel-default-header-args:sh '())) ;; add a default shebang header argument (add-to-list 'org-babel-default-header-args:sh '(:shebang . "#!/bin/bash")) The final important change included in this release is the addition of new security measures into Babel. These measures are in place to protect users from the accidental or uninformed execution of code. Along these lines /every/ execution of a code block will now require an explicit confirmation from the user. These confirmations can be stifled through customization of the `org-confirm-babel-evaluate' variable, e.g. ;; I don't want to be prompted on every code block evaluation (setq org-confirm-babel-evaluate nil) In addition, it is now possible to remove code block evaluation form the C-c C-c keybinding. This can be done by setting the org-babel-no-eval-on-ctrl-c-ctrl-c variable to a non-nil value, e.g. ;; I don't want to execute code blocks with C-c C-c (setq org-babel-no-eval-on-ctrl-c-ctrl-c t) An additional keybinding has been added for code block evaluation, namely C-c C-v e. Whew! that seems like a lot of effort for a /simplification/ of configuration. New keys for TODO sparse trees =============================== The key =C-c C-v= is now reserved for Org Babel action. TODO sparse trees can still be made with =C-c / t= (all not-done states) and =C-c / T= (specific states). Customizable variable changes for DocBook exporter =================================================== To make it more flexible for users to provide DocBook exporter related commands, we start to use format-spec to format the commands in this release. If you use DocBook exporter and use it to export Org files to PDF and/or FO format, the settings of the following two customizable variables need to be changed: - =org-export-docbook-xslt-proc-command= - =org-export-docbook-xsl-fo-proc-command= Instead of using =%s= in the format control string for all arguments, now we use /three/ different format spec characters: - =%i=: input file argument - =%o=: output file argument - =%s=: XSLT stylesheet argument For example, if you set =org-export-docbook-xslt-proc-command= to java com.icl.saxon.StyleSheet -o %s %s /path/to/docbook.xsl in the past, now you need to change it to java com.icl.saxon.StyleSheet -o %o %i %s and set a new customizable variable called =org-export-docbook-xslt-stylesheet= to =/path/to/docbook.xsl=. Please check the documentation of these two variables for more details and other examples. Along with the introduction of variable =org-export-docbook-xslt-stylesheet=, we also added a new in-buffer setting called =#+XSLT:=. You can use this setting to specify the XSLT stylesheet that you want to use on a per-file basis. This setting overrides =org-export-docbook-xslt-stylesheet=. Details ~~~~~~~~ Org Babel is now part of the Org core ====================================== See [Org-babel configuration changes] for instructions on how to update your babel configuration. The most significant result of this change is that Babel now has documentation! It is part of Org-mode's documentation, see Chapter 14 [Working With Source Code]. The Babel keybindings are now listed in the refcard, and can be viewed from any Org-mode buffer by pressing =C-c C-v h=. In addition this integration has included a number of bug fixes, and a significant amount of internal code cleanup. [Org-babel configuration changes]: #ob-configuration-changes [Working With Source Code]: http://orgmode.org/manual/Working-with-source-code.html#Working-with-source-code The default capture system for Org mode is now called org-capture ================================================================== This replaces the earlier system org-remember. The manual only describes org-capture, but for people who prefer to continue to use org-remember, we keep a static copy of the former manual section [chapter about remember]. The new system has a technically cleaner implementation and more possibilities for capturing different types of data. See [Carsten's announcement] for more details. To switch over to the new system: 1. Run M-x org-capture-import-remember-templates RET to get a translated version of your remember templates into the new variable =org-capture-templates=. This will "mostly" work, but maybe not for all cases. At least it will give you a good place to modify your templates. After running this command, enter the customize buffer for this variable with M-x customize-variable RET org-capture-templates RET and convince yourself that everything is OK. Then save the customization. 2. Bind the command =org-capture= to a key, similar to what you did with org-remember: (define-key global-map "\C-cc" 'org-capture) If your fingers prefer =C-c r=, you can also use this key once you have decided to move over completely to the new implementation. During a test time, there is nothing wrong with using both system in parallel. [chapter about remember]: http://orgmode.org/org-remember.pdf [Carsten's announcement]: http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441 Implement pretty display of entities, sub-, and superscripts. ============================================================== The command =C-c C-x \= toggles the display of Org's special entities like =\alpha= as pretty unicode characters. Also, sub and superscripts are displayed in a pretty way (raised/lower display, in a smaller font). If you want to exclude sub- and superscripts, see the variable =org-pretty-entities-include-sub-superscripts=. Thanks to Eric Schulte and Ulf Stegeman for making this possible. Help system for finding entities ================================= The new command =M-x org-entities-help= creates a structured buffer that lists all entities available in Org. Thanks to Ulf Stegeman for adding the necessary structure to the internal entity list. New module to create Gantt charts ================================== Christian Egli's /org-taskjuggler.el/ module is now part of Org. He also wrote a [tutorial] for it. [tutorial]: http://orgmode.org/worg/org-tutorials/org-taskjuggler.php Refile targets can now be cached ================================= You can turn on caching of refile targets by setting the variable =org-refile-use-cache=. This should speed up refiling if you have many eligible targets in many files. If you need to update the cache because Org misses a newly created entry or still offers a deleted one, press =C-0 C-c C-w=. Enhanced functionality of the clock resolver ============================================= Here are the new options for the clock resolver: i/q/C-g Ignore this question; the same as keeping all the idle time. k/K Keep X minutes of the idle time (default is all). If this amount is less than the default, you will be clocked out that many minutes after the time that idling began, and then clocked back in at the present time. g/G Indicate that you \"got back\" X minutes ago. This is quite different from 'k': it clocks you out from the beginning of the idle period and clock you back in X minutes ago. s/S Subtract the idle time from the current clock. This is the same as keeping 0 minutes. C Cancel the open timer altogether. It will be as though you never clocked in. j/J Jump to the current clock, to make manual adjustments. For all these options, using uppercase makes your final state to be CLOCKED OUT. Thanks to John Wiegley for making these changes. A property value of "nil" now means to unset a property ======================================================== This can be useful in particular with property inheritance, if some upper level has the property, and some grandchild of it would like to have the default settings (i.e. not overruled by a property) back. Thanks to Robert Goldman and Bernt Hansen for suggesting this change. The problem with comment syntax has finally been fixed ======================================================= Thanks to Leo who has been on a year-long quest to get this fixed and finally found the right way to do it. Make it possible to protect hidden subtrees from being killed by =C-k= ======================================================================= This was a request by Scott Otterson. See the new variable =org-ctrl-k-protect-subtree=. New module org-mac-link-grabber.el =================================== This module allows to grab links to all kinds of applications on a mac. It is available in the contrib directory. Thanks to Anthony Lander for this contribution. LaTeX export: Implement table* environment for wide tables =========================================================== Thanks to Chris Gray for a patch to this effect. When cloning entries, remove or renew ID property ================================================== Thanks to David Maus for this change. - Carsten