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

Ginkgo version 1.0.0 release #222

Closed
34 of 36 tasks
tcojean opened this issue Feb 12, 2019 · 16 comments · Fixed by #294
Closed
34 of 36 tasks

Ginkgo version 1.0.0 release #222

tcojean opened this issue Feb 12, 2019 · 16 comments · Fixed by #294

Comments

@tcojean
Copy link
Member

tcojean commented Feb 12, 2019

This issue is here to track the creation of the first Ginkgo release, which could be version 1.0.0 if we can get several CUDA conversions.

I created a milestone to track the release process, I added every issue and PR that we want for the release to this milestone. If you want something in particular to be part of this release, add an issue and add it to the release milestone. Currently there is:

TODO

@gflegar
Copy link
Member

gflegar commented Feb 12, 2019

Some notes:

  • what do we do with the OMP kernels? AFAIK, trying to use the block-Jacobi preconditioner on OMP executor will result in the NotImplemented exception. Are we allowing this exception in the release version, or should we have a policy that such exception are not allowed?
  • somewhat related is Full support for custom datatypes #53: trying to compile Ginkgo with a custom datatype will result in NotImplemented for some operations - the full list is in the issue (may not be updated). Do we consider this a problem?
  • you may want to check out the description of the Gitflow workflow, especially the release branches part, for a description how the release should be handled. In particular, there should be no need to "freeze" Ginkgo, as the release dos not take over the develop branch.
  • what do we do with the doxygen documentation? It's not very useful the way it looks now - it needs some introduction, and some sort of organized TOC by topics - what we currently have is just an index of various parts. Some parts are also missing, as the current setup only shows documented namespaces, classes, and their members. Since none of the namespaces have any documentation, there's no docs generated for any of the standalone functions (such as read, write, clone, lend, give, share, etc.).
  • just a technical note: even though the master branch can be fast-forwarded to the final release commit, I would still force git to generate a new merge commit, just to have a better visual indication that this is a release when looking at Ginkgo's tree.
  • another thing for the list: make sure that the CI system generates the docs on the correct link (that would probably be https://ginkgo-project.github.io/ginkgo/doc/1.0.0)

@tcojean
Copy link
Member Author

tcojean commented Feb 12, 2019

Note on documentation, I did hesitate to add #76 to this milestone... It should not be too long to fix but is much needed.

@tcojean
Copy link
Member Author

tcojean commented Feb 12, 2019

Thanks @gflegar for the comments. The gitflow is helpful for managing the release efforts in terms of commits. I will add this to the wiki page I am currently writing. I think the release process itself can be quite fast if we have a correct setup for testing and doing the packaging (let's say a day at most), so I think merging the fixes directly to develop and agreeing on not merging any new PR until we are done with actually pushing the release to the world should be enough. What do you think?

I also want to mention that both Github and Gitlab facilitate the release process. Here are the respective pages: Github release page and Gitlab release page.

@tcojean
Copy link
Member Author

tcojean commented Feb 12, 2019

  • On OpenMP kernels, it depends what we aim to support as part of this release. Either we say in the release notes we have a full OpenMP implementation but its quality is not guaranteed, in which case we have to implement all NotImplemented kernels, or we explicitly note what is not there (both as a release note and I guess a known issue in that case).
  • On Full support for custom datatypes #53, I would have a similar approach. Either we say we have full support for custom value types, or we say we have backend support but not all kernels and formats allow its use yet (the user could still use it as part of its own class).

I want to mention that the task Compile a list of functionalities present in the future release. is actually a very important (and hard, and long) one. Maybe we should split it into several subtasks.

I agree on the having an explicit merge commit in the master branch and the documentation issue. I will note this down.

@tcojean
Copy link
Member Author

tcojean commented Feb 12, 2019

#174 could also be a good candidate for the release. It's warnings so it's fine if they stay, but better if they are gone.

@tcojean
Copy link
Member Author

tcojean commented Feb 12, 2019

I created a wiki page with the instructions I could think of for the release process. Feel free to contribute. There may be multiple typos...

@tcojean
Copy link
Member Author

tcojean commented Feb 13, 2019

@ginkgo-project/developers I would like to collect everyone's thoughts on the following issues we rose with @gflegar.

@hartwiganzt
Copy link
Collaborator

On the OMP issue: there are in total about 25 NOT_IMPLEMENTED in the omp branch. I would say: let's copy complete those - in the worst case with the reference implementation and some note saying that this still needs to be parallelized.

@tcojean
Copy link
Member Author

tcojean commented Feb 14, 2019

Note from the discussions, we're not doing #53 as it seems like it would take too much time. But we will try to fix all the other problems listed here.

@gflegar
Copy link
Member

gflegar commented Feb 28, 2019

I guess we are delaying this? The deadline is tomorrow, and there are quite a few open issues in this milestone.

@tcojean
Copy link
Member Author

tcojean commented Feb 28, 2019

Yes, the deadline was a loose tentative one. Looks like we will have to postpone it, hopefully not by much.

@yhmtsai
Copy link
Member

yhmtsai commented Mar 2, 2019

Do we implement all spmv for all matrix formats on all executors?
Maybe use for loop to make it work first?

@hartwiganzt
Copy link
Collaborator

I don't think that makes too much sense, having all formats for all executors. I feel: we obviously need the reference executor for all formats, and if there is a format selected that is not supported by the executor, we fall back to the reference executor. Is that a reasonable path forward?

@yhmtsai
Copy link
Member

yhmtsai commented Mar 4, 2019

I mean the operation apply to multiple vectors of coo, csr, dense, ell hybrid and sellp on all executor.
The following are the status of formats

  1. have implementations and tests
    • coo, csr, dense, ell, hybrid, sellp on reference executor
    • coo, ell, sellp on cuda executor
    • dense on omp executor
  2. have implementations but don't have tests
    • hybrid and dense on cuda executor
    • coo, csr, ell, sellp on omp executor
  3. don't have implementations
    • csr on cuda executor

@hartwiganzt
Copy link
Collaborator

I now understand - sorry.
I guess it would be good to close the gaps... for now, a loop might be acceptable.

@tcojean
Copy link
Member Author

tcojean commented Mar 5, 2019

Thanks for the notification @yhmtsai and for already fixing a part of that. I put this in a new issue (#253) to track this separately.

@thoasm thoasm mentioned this issue Mar 14, 2019
@ginkgo-bot ginkgo-bot pinned this issue Apr 16, 2019
This was referenced Apr 16, 2019
tcojean added a commit that referenced this issue Apr 18, 2019
This is the first release of Ginkgo, version 1.0.0.

For more details about this release access the [release notes](https://github.com/ginkgo-project/ginkgo/releases/tag/v1.0.0).

### Content
+ The version number is updated to 1.0.0 everywhere;
+ In addition, the versions present in some example output is removed as they are not necessary for understanding what the output of each example looks like. This also prevents mistakes in version numbering in the future.
+ Improve examples documentation
+ Improve containers and CI configuration for documentation generation
+ Use `steady_clock` instead of `system_clock`.

### Extra information
+ The [full pipeline](https://gitlab.com/ginkgo-project/ginkgo-public-ci/pipelines/56943511) was run for this branch.
+ The documentation was generated and is accessible [here](https://ginkgo-project.github.io/ginkgo/doc/release/1.0.0/).
+ The PDF version of the documentation is accessible [here](https://ginkgo-project.github.io/ginkgo/doc/pdf/release/1.0.0.pdf).
+ The CDash data can be accessed [here](https://my.cdash.org/index.php?project=Ginkgo+Project).
+ All coverage information is also available [here](https://codecov.io/gh/ginkgo-project/ginkgo/branch/release%2F1.0.0).

Closes #222
Closes #293
Related PR #294
@tcojean tcojean unpinned this issue Apr 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants