Skip to content
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

[meta] Roadmap #210

Closed
2 of 13 tasks
leostera opened this issue Oct 8, 2018 · 15 comments
Closed
2 of 13 tasks

[meta] Roadmap #210

leostera opened this issue Oct 8, 2018 · 15 comments
Labels

Comments

@leostera
Copy link
Collaborator

leostera commented Oct 8, 2018

Why. There's quite a few things ongoing/planned at the moment but there isn't very good visibility of what's next or dependencies across tasks. Grouping issues by milestones and resolving dependencies enables mainly 3 things:

  1. current contributors can focus their efforts independently and efficiently,
  2. new contributors get a clear picture of what they can jump on, and
  3. odoc can communicate with stakeholders uniformly about what to expect in the near future

I talked to @aantron about this and he suggested using the Wiki when I proposed using Github Projects. In the past I've talked about this with @rizo as well, and recently with @ryyppy. Either way, I'll start this issue to discuss and we can move things to either tool.

Proposal. Here's some milestones with their respective issues/prs; dependencies are not by list order but indicated in each item.


Milestone: Reason/BuckleScript-ready

Brief. Cut a release that is distributed in npm and lays the foundation for promoting odoc as the primary documentation tool for the Javascript side of the ecosystem.

Milestone: Better Usability

Brief. Improve readability and accessibility of content in generated docs and in odoc's documentation itself by including common documentation features and facilitating guides for writing good documentation.

Milestone: Better Interop

Brief. Define a standard interoperability mechanism to allow other features to be built outside of the core of odoc.


That said, these milestones are not written in stone, the issues lists are definitely not exhaustive, and a release might as well cut horizontally across these milestones.

Thoughts?

cc/ @aantron @rizo @ryyppy @pmetzger @dbuenzli @grabbou

@ryyppy ryyppy added the meta label Oct 8, 2018
@dbuenzli
Copy link
Contributor

dbuenzli commented Oct 8, 2018

Thoughts?

I think the basics of the tool should rather be first settled down --- I had to stop working on my odig rewrite because basically most of the driving commands are broken (see my recent issues).

Besides in general I would rather work on stabilizing a markup, especially on the problems that have been there for ages which haven't progressed for a year now and resolving the regressions that the nth rewrite of the markup seems to have introduced.

@lpw25
Copy link
Contributor

lpw25 commented Oct 8, 2018

Thoughts?

I would suggest that including some bug-fixing would be a good idea. At Jane Street we still use original odoc -- including adding new features to it rather than here -- because this new version can't read our code base without crashing. #108 and #178 would be a good start.

It also might be good to put the fixes needed to the model somewhere on a road map. I wrote a full description of both how the model should work and what changes are needed to get there for OCamllabs when they were considering addressing this issue. I believe that work is currently on hold but that it is intended to be started up again in the not-too-distant future. For context, these fixes -- which involve rewriting some larger parts of the model -- are required before libraries like core_kernel will look readable.

@grabbou
Copy link

grabbou commented Oct 8, 2018

Thoughts?

This looks very promising to me. I am still relatively new to the codebase, but I am happy to help as much as possible. We are already using odoc extensively in bs-react-native and want to provide a first-class documentation to ease the on boarding experience to bare minimum.

That said, I am really happy to see the list of issues focused on improving overall user experience.

@rizo
Copy link
Collaborator

rizo commented Oct 8, 2018

I wrote a full description of both how the model should work and what changes are needed to get there

@lpw25 is this description available somewhere for contributors?

@lpw25
Copy link
Contributor

lpw25 commented Oct 8, 2018

is this description available somewhere for contributors?

Probably not. If you have somewhere sensible to put it, I'm happy to put it there.

@aantron
Copy link
Contributor

aantron commented Oct 9, 2018

@lpw25 Would the odoc wiki work?

@aantron
Copy link
Contributor

aantron commented Oct 9, 2018

Thanks for grouping the issues, @Ostera. I turned the milestones from this issue into projects in the repo: https://github.com/ocaml/odoc/projects.

Releases will cut across the projects, because we want to be able to release without completing everything, and some projects will span a long time. I created a 1.3.0 milestone for now, and put only #129 into it, because @ryyppy would like to address that issue, and I don't personally want to block the release on anything else.

We should probably add some links to projects and milestones to the README and/or CONTRIBUTING.md.

@leostera
Copy link
Collaborator Author

leostera commented Oct 9, 2018

Happy to see 1.3.0 go out ASAP with @ryyppy's fixes! I'll update the projects with the briefs from this issue so it's easier for other people to see what they are about.

@dbuenzli: Besides in general I would rather work on stabilizing a markup
@lpw25: I would suggest that including some bug-fixing would be a good idea

Can I begin by bucketing them in a LongTerm/Stability/Scalability project and we can take it from there?

aantron added a commit that referenced this issue Oct 9, 2018
aantron added a commit that referenced this issue Oct 17, 2018
Part of #210.

[skip ci]
@aantron
Copy link
Contributor

aantron commented Oct 17, 2018

Ok, I added an initial draft roadmap to CONTRIBUTING,md, and linked it from the README.

Rather than being lists of specific issues, it is more "thematic" in nature, with sections Project status, General direction, Not supported in the near term, Releases, and Issue organization. We can start adding detail about specific plans to this, or just open milestones.

For me personally, right now, the General direction section is sufficient for finding things to work on and staying on track, meanwhile it's hard to know ahead of time who will want to work on what, when, and how much, so I hesitate to schedule specific issues, rather than just putting them in projects. I understand that other people might have a different view of this, so please discuss.

We can use assignments to prevent people working on the same thing. However, keeping track of this hasn't been a problem yet, so this may be a premature concern. Still, if you have access and are going to work on an issue, please assign yourself :)

I created 1.3.1 for the next release, which will probably be a bugfix release. If we end up merging a feature, we'll rename to 1.4.0.

I don't know if it's better to move the roadmap elsewhere, so please discuss.

cc @Ostera @rizo @dbuenzli @lpw25 @trefis @ryyppy

aantron added a commit that referenced this issue Oct 17, 2018
Part of #210.

[skip ci]
@dbuenzli
Copy link
Contributor

Regarding "not supported in the near term" I think you could have been a little bit more subtle than that, but anyways. Here are a few notes:

  1. There's nothing complex in supporting theming and @rizo (thanks!) already has done most of the work.
  2. I don't see why odig compatibility should not be on the roadmap while bsb or dune should. odoc is just a tool to be driven by build systems and that's the way it should be developed. Besides I want to stress again that there's nothing special needed in odig beyond what a good build system needs.
  3. I will have to ask you to remove the statement that odoc is in beta. It has been working pretty well for many people since at least 1.1. This project should not be treated as beta software but as a tool whose outputs are used by many users every day which should be treated with respect. It's not because you maybe have not been using it that it is beta.
  4. I strongly disagree with the idea that the markup should not be stabilized, the latter has a big impact on the linking structure of the docsets and we don't want to break the links of the hundreds of docsets that are being published online on each odoc release. Stabilizing the linking structure and markup should be a priority.

Regarding 2. I would also like to remind you that odig is currently the only way to get a reasonable cross-linked set of API documentation for packages accross the whole OCaml eco-system. It is also the only way to thoroughly document the opam switch you are working in for your project and this across documentation artefacts (readme, changelogs, API refs, etc.). By explictely leaving it out and showing contempt for it you are doing a disservice to the OCaml community.

I think there should be a wake up call here: odoc is no longer in beta and hasn't been for a very long time now. It is a working tool with users which should gradually be improved.

@lpw25
Copy link
Contributor

lpw25 commented Oct 18, 2018

The main thing missing from the "General Direction" is the original use case for which odoc was designed and built. That is being able to run it over the installed contents of a group of packages to generate documentation for them. The build system integration is less important than that use case because you can already use ocamldoc for your own packages -- it is documenting an cross-linked set of packages for which odoc was created.

There are two implementations of this use case -- one is odig and the other is internal to Jane Street -- both of which were broken by the latest release. I think this use case needs to be explicitly recognized and supported in the road map. It doesn't require much more than what the build system integration does -- just a more relaxed approach to errors and a commitment to never require source files for building documentation -- and it is a prerequisite for the long term goal of online opam documentation.

@lpw25
Copy link
Contributor

lpw25 commented Nov 20, 2018

@lpw25 Would the odoc wiki work?

Do you mean the Github wiki for this repo? It's not currently enabled but I'd be happy to put these descriptions there once it is.

@aantron
Copy link
Contributor

aantron commented Nov 20, 2018

Yes. IIRC I disabled it at some point during the discussion. I've re-enabled it now.

@lpw25
Copy link
Contributor

lpw25 commented Dec 17, 2018

Somehow I missed your reply. I've just put the two documents up on the wiki, with a quick find-replace of "doc-ock" with "the model" so that it makes more sense with the new code layout.

@github-actions
Copy link

github-actions bot commented May 1, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@github-actions github-actions bot added the stale label May 1, 2020
@github-actions github-actions bot closed this as completed May 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants