-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include Org QL as a part of Org mode #409
Comments
Thanks, Ihor.
Sure, most of these are easily replaced: However, two tricky ones:
|
Adam Porter ***@***.***> writes:
> * Get rid of mandatory third-party dependencies (optional dependencies are ok)
Sure, most of these are easily replaced: `dash`, `f`, `s`, and `ov`.
However, two tricky ones:
1. `ts`: It makes timestamp-related code much easier in `org-ql`.
Emacs's timestamp-related libraries have improved somewhat since I
first released `ts`, but it still leaves a lot to be done by the
developer. I would hate to have to rewrite all of the code that uses
it in other terms. It's also a matter of convenience for users who
want to write their own functions to query with certain timestamps,
because manipulating timestamps without `ts` is much more awkward. Any
ideas?
May you summarize which functions in ts.el are absent in the Emacs'
timestamp library?
2. `org-super-agenda`: Obviously, the support for it is a convenience,
and basically just binds a variable, so that could be made optional.
But I'd like to keep the API clean and simple, and the UI the same.
For example, when I'm setting up a new `org-ql-search`, I almost
always choose an auto group from the completion; I wouldn't want that
to require an extra step.
Would it almost make sense to keep `org-ql-search` and
`org-ql-view` outside of Org.git, at least for a while? That is,
to only merge `org-ql.el`, the search backend, into Org. What do
you think?
Yes, that's actually what I had in mind.
Your rewrite of org-agenda is entirely different beast and we certainly
do not want to parallel (and, more importantly, incompatible)
implementations of org-agenda in the core.
Is `org-super-agenda` support necessary if we do not merge `org-ql-search`?
`org-ql-find` would be nice to have though. As a replacement for
`org-refile` completion interface, for example.
…--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
|
I feel like it's more a question of API. Everything that
FTR,
I don't think so, no.
Yes, I would like to upstream that as well. |
Adam Porter ***@***.***> writes:
> May you summarize which functions in ts.el are absent in the Emacs' timestamp library?
I feel like it's more a question of API. Everything that `ts` does
*could* be done without it, but many operations were very awkward and
confusing without it. Giving that up would mean not only making
`org-ql`'s code more awkward and complicated, but making it harder for
the user to pass in timestamps having been adjusted to their needs.
AFAIK, the following ts.el functions are used in org-ql:
- ts-now
- ts-apply
- ts-adjust
- ts-parse-fill
- ts-in (trivial)
- ts-parse-org
If not using ts structs, ts-apply, ts-adjust, and ts-parse-fill can be
easily implemented with the same API but returning internal Emacs time
representations.
What am I missing?
…--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
|
Of course, the API could be reimplemented in various ways. The One purpose of the The main purpose of Not that I would refuse to, but I would strongly prefer not to discard this beneficial API for use with Org QL. I would almost rather try to upstream some form of |
Adam Porter ***@***.***> writes:
Not that I would refuse to, but I would strongly prefer not to discard this beneficial API for use with Org QL. I would almost rather try to upstream some form of `ts` itself (if not the data structure, then the API, at least). That might not be an enjoyable process, though...
We cannot use non-optional libraries that are not a part of Emacs in Org
mode. The best we can do is include necessary libraries as a part of
Org, but that should be justified and should only be the last resort.
…--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
|
Yes, that's why I mentioned trying to upstream |
Adam Porter ***@***.***> writes:
Yes, that's why I mentioned trying to upstream `ts` into Emacs.
Do you need any help?
…--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
|
If you're willing to help with that idea, I'd gladly accept it. I hadn't given it a lot of thought recently, until now, but I think I would like to at least try to pursue that before taking it out of |
@yantar92 Also, regarding |
Adam Porter ***@***.***> writes:
e41fe90#diff-ecbc1aa90e9ff97a00b0b2aab1551bceee0c4d21993146bdcb1af4de31c9cac6R959
line is not accurate. Authors should not just contact ***@***.***,
but they should send a filled email form.
You may instead refer to https://orgmode.org/worg/org-contribute.html#copyright
…--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
|
Adam Porter ***@***.***> writes:
@yantar92 Also, regarding `ts`: Would it seem reasonable to you to try
to merge a version of Org QL that supported both Emacs native time
values and `ts` structs, i.e. one that has optional support for `ts`?
Obviously it could not depend on or require `ts` to be installed, but
providing the support optionally would allow the process to continue
without depending on the idea of adding some form of `ts` to Emacs.
Even if there is optional support for ts.el, we still need to implement
a fallback when ts is not available. That will involve adding the
equivalent functions right inside Org sources.
But if we have such functions inside Org source, what is the point
using ts library?
…--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
|
As discussed in https://old.reddit.com/r/emacs/comments/18frlq4/packages_that_you_would_like_to_be_in_emacs_core/kd3pran/, let's see how we merge Org QL (org-ql.el) into Org mode upstream.
Approximate checklist:
The text was updated successfully, but these errors were encountered: