miniff issueshttps://gitlab.kwant-project.org/qt/miniff/-/issues2021-04-21T15:23:52Zhttps://gitlab.kwant-project.org/qt/miniff/-/issues/36Add a landing page2021-04-21T15:23:52ZArtem PulkinAdd a landing pagehttps://gitlab.kwant-project.org/qt/miniff/-/issues/35CI downloads 800Mb of pytorch2021-03-31T15:57:47ZArtem PulkinCI downloads 800Mb of pytorchSee e.g. https://gitlab.kwant-project.org/qt/miniff/-/jobs/178727See e.g. https://gitlab.kwant-project.org/qt/miniff/-/jobs/178727https://gitlab.kwant-project.org/qt/miniff/-/issues/34Add flake8 to CI to check code compliance with PEP8 coding style2021-03-30T13:08:26ZNiket AgrawalAdd flake8 to CI to check code compliance with PEP8 coding styleDesired behavior is the following.
- Push to repository should be only successful if flake8 output does not complain.
- Merge request should be annotated with flake8 output, if any, upon submission, so that the contributor(s) can take no...Desired behavior is the following.
- Push to repository should be only successful if flake8 output does not complain.
- Merge request should be annotated with flake8 output, if any, upon submission, so that the contributor(s) can take notice and make necessary changes in case they didn't do that already.
Additionally, developers can use [pylint](http://pylint.pycqa.org/en/latest/) to identify code smells during development on their local environments.https://gitlab.kwant-project.org/qt/miniff/-/issues/33Display docs build status on repository via Read the Docs badge2021-03-24T16:39:00ZNiket AgrawalDisplay docs build status on repository via Read the Docs badgeThe documentation is built by Read the Docs upon each push to the master branch, but the final status is not indicated. This can be done by copying the docs passed/failed status badge URL from the project's read the docs account. More in...The documentation is built by Read the Docs upon each push to the master branch, but the final status is not indicated. This can be done by copying the docs passed/failed status badge URL from the project's read the docs account. More info [here](https://docs.readthedocs.io/en/stable/badges.html)https://gitlab.kwant-project.org/qt/miniff/-/issues/32Synchronize minimal package versions across different places2021-03-31T13:04:12ZArtem PulkinSynchronize minimal package versions across different placesThere are several places where package versions were specified:
1. ``environment.yml``
2. ``pyproject.toml``
3. ``.gitlab.ci``
4. ``requirements.txt``
5. condaThere are several places where package versions were specified:
1. ``environment.yml``
2. ``pyproject.toml``
3. ``.gitlab.ci``
4. ``requirements.txt``
5. condaNiket AgrawalNiket Agrawalhttps://gitlab.kwant-project.org/qt/miniff/-/issues/31Create a project handover documentation2021-03-30T09:16:38ZNiket AgrawalCreate a project handover documentationCreate a documentation for project handover purposes. This document will serve the purpose of a reference manual to the maintainer(s) of miniff. It shall provides the following information.
- Implementation and configuration details of ...Create a documentation for project handover purposes. This document will serve the purpose of a reference manual to the maintainer(s) of miniff. It shall provides the following information.
- Implementation and configuration details of certain aspects of the repository such as the documentation setup, versioning, packaging, CI and dependency management.
- Software development and maintenance workflow for miniff.
The aforementioned details will be captured in the Wiki of the miniff GitLab repositoryNiket AgrawalNiket Agrawalhttps://gitlab.kwant-project.org/qt/miniff/-/issues/30Remove patch version number pinning to facilitate receiving bug fixes for the...2021-03-09T09:37:17ZNiket AgrawalRemove patch version number pinning to facilitate receiving bug fixes for the packagesNot fixing the patch version number facilitates receiving bug fixes for individual packages by requirements.txt/env.yml and update the environment. The overall consistency is still maintained as the major and minor version numbers remain...Not fixing the patch version number facilitates receiving bug fixes for individual packages by requirements.txt/env.yml and update the environment. The overall consistency is still maintained as the major and minor version numbers remain fixed.Niket AgrawalNiket Agrawalhttps://gitlab.kwant-project.org/qt/miniff/-/issues/29Upload miniff on conda-forge2021-03-22T14:52:23ZNiket AgrawalUpload miniff on conda-forgeUpload miniff on conda-forgeUpload miniff on conda-forgehttps://gitlab.kwant-project.org/qt/miniff/-/issues/28Update installation instructions in README to include pip install miniff2021-02-23T09:53:42ZNiket AgrawalUpdate installation instructions in README to include pip install miniffNow that miniff is uploaded to PyPI, single command installation via pip, i.e., `pip install miniff` suffices for the end users who wish to install and use miniff, they need not set up a development environment explicitly which the curre...Now that miniff is uploaded to PyPI, single command installation via pip, i.e., `pip install miniff` suffices for the end users who wish to install and use miniff, they need not set up a development environment explicitly which the current README instructs to do. That is meant for developers who wish to contribute to miniff and is already covered in CONTRIBUTING.md.Niket AgrawalNiket Agrawalhttps://gitlab.kwant-project.org/qt/miniff/-/issues/27Add a changelog2021-02-15T13:25:27ZNiket AgrawalAdd a changelogAdd a changelog to keep an ordered history of changes in each version of miniffAdd a changelog to keep an ordered history of changes in each version of miniffNiket AgrawalNiket Agrawalhttps://gitlab.kwant-project.org/qt/miniff/-/issues/26Package name2021-02-15T11:03:37ZArtem PulkinPackage nameConsider changing the package name. Originally, `miniff` stands for a minimal implementation of force fields.
Current name positives:
- quite unique (we need a unique name for publishing)
- short enough (fewer typo possibilities)
negat...Consider changing the package name. Originally, `miniff` stands for a minimal implementation of force fields.
Current name positives:
- quite unique (we need a unique name for publishing)
- short enough (fewer typo possibilities)
negatives:
- does not represent the package: no reference to neural-network potentials
- not so easy to pronounce (transcription is a lot longer than the word itself)
This has to be closed before publishing the package.Artem PulkinArtem Pulkinhttps://gitlab.kwant-project.org/qt/miniff/-/issues/25Build docs in CI2021-01-25T16:17:36ZArtem PulkinBuild docs in CIArtem PulkinArtem Pulkinhttps://gitlab.kwant-project.org/qt/miniff/-/issues/24Migrate the read the docs webhook for documentation hosting to one of the gro...2021-01-25T11:26:42ZNiket AgrawalMigrate the read the docs webhook for documentation hosting to one of the group member's read the docs accountAt present, the webhook for continuous documentation build and hosting on read the docs (rtd) is temporarily configured under the rtd account of the DCC staff member. This needs to be migrated to the rtd account of one of the group membe...At present, the webhook for continuous documentation build and hosting on read the docs (rtd) is temporarily configured under the rtd account of the DCC staff member. This needs to be migrated to the rtd account of one of the group members.
Steps to perform the migration:
- Delete the existing rtd webhook in gitlab. To do this, go to Miniff Gitlab repository > Settings > Webhooks. At the bottom of the page you will see two project hooks, the first one is for the rtd documentation and needs to be removed by clicking on delete.
- Then, the miniff repository needs to be imported in your read the docs account. See instructions [here](https://docs.readthedocs.io/en/stable/intro/import-guide.html)
- A webhook needs to be created on the miniff gitlab repository for enabling automated build and update of documentation by rtd. See instructions [here](https://docs.readthedocs.io/en/stable/webhooks.html)
- By default, rtd tracks changes and builds the documentation on the master branch. You can test the webhook by triggering a build from the rtd web dashboard.Artem PulkinArtem Pulkinhttps://gitlab.kwant-project.org/qt/miniff/-/issues/23CI failing on master due to missing imports in test_optimization.py2021-01-22T14:04:16ZNiket AgrawalCI failing on master due to missing imports in test_optimization.pyCI is failing on latest master due to missing import statements in the file test_optimization.py.CI is failing on latest master due to missing import statements in the file test_optimization.py.https://gitlab.kwant-project.org/qt/miniff/-/issues/22Docs failing to build in master2021-01-25T11:25:50ZNiket AgrawalDocs failing to build in masterThe docs fail to build because the computing descriptor tutorial is no longer able to import UnitCell.
Steps to reproduce:
1. Clone miniff repostory, checkout master, step into the `docs/` directory and build the docs by executing `make...The docs fail to build because the computing descriptor tutorial is no longer able to import UnitCell.
Steps to reproduce:
1. Clone miniff repostory, checkout master, step into the `docs/` directory and build the docs by executing `make html`
```
cd miniff/docs/
make html
```
Below error is seen at the output.
```
~/dressing-up-ML-code/miniff/docs/design.rst:2: WARNING: Title underline too short.
Miniff Design Documentation
====================
~/dressing-up-ML-code/miniff/docs/design.rst:27: WARNING: Unexpected indentation.
~/dressing-up-ML-code/miniff/docs/design.rst:27: WARNING: Inline interpreted text or phrase reference start-string without end-string.
~/dressing-up-ML-code/miniff/docs/design.rst:30: WARNING: Block quote ends without a blank line; unexpected unindent.
Extension error:
Cell raised uncaught exception:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-6-4d95605925b0> in <module>
----> 1 from miniff.kernel import UnitCell, NeighborWrapper
2
3 cell = UnitCell(np.eye(3), r, 'a')
ImportError: cannot import name 'UnitCell' from 'miniff.kernel' (~/miniconda3/envs/dressingupmlcode/lib/python3.8/site-packages/miniff-0.1.0-py3.8-linux-x86_64.egg/miniff/kernel.py)
make: *** [Makefile:20: html] Error 2
```https://gitlab.kwant-project.org/qt/miniff/-/issues/21Baking (compiling) fast efficient functions during runtime2021-01-25T11:31:30ZArtem PulkinBaking (compiling) fast efficient functions during runtimeCurrently, bottleneck "potential" functions are compiled at the build time as a separate `_potentials` library. This may not be the optimal choice for those users who are willing to define their own potentials. Currently, they will have ...Currently, bottleneck "potential" functions are compiled at the build time as a separate `_potentials` library. This may not be the optimal choice for those users who are willing to define their own potentials. Currently, they will have to modify package sources and to re-compile it. Another option is to implement compiling during runtime taking simple potential expressions as the input and producing fast library functions as the output.
Function stub example:
```python
def build_potential(expression: str, inputs: Iterable, type: str, openmp: bool=True) -> Callable:
"""
Builds a potential or its gradient with the given expression.
Args:
expression: numerical formula of the potential in python formatting;
inputs: adjustable parameters of the potential;
type: the type of the potential ('potential-2-g' for example);
openmp: if True, makes a parallel function compiled against OpenMP;
Returns:
A function implementing this potential.
"""
# Assemble sources, compile and import the function
```https://gitlab.kwant-project.org/qt/miniff/-/issues/20Testing with different package versions2021-01-22T18:23:54ZArtem PulkinTesting with different package versionsIt is better to support a range of dependency versions and to test several version configurations in CI.It is better to support a range of dependency versions and to test several version configurations in CI.https://gitlab.kwant-project.org/qt/miniff/-/issues/19Implementing typical workflows2021-04-23T10:17:11ZArtem PulkinImplementing typical workflowsThe package requires putting things together into workflows which can be executed in CLI. Initial workflow implementation has been done with a1a42f8df7cbdaec6a59550b315985d07330c733. This issue is here to track additional features to be ...The package requires putting things together into workflows which can be executed in CLI. Initial workflow implementation has been done with a1a42f8df7cbdaec6a59550b315985d07330c733. This issue is here to track additional features to be implemented.
TODO:
- CLI
- workflow serializationhttps://gitlab.kwant-project.org/qt/miniff/-/issues/18OpenMP interfers with torch and may deadlock2021-01-07T16:35:21ZArtem PulkinOpenMP interfers with torch and may deadlockUsing OpenMP (``cyhon.prange``) with ``torch`` and ``multiprocessing.Pool`` deadlocks.
https://github.com/pytorch/pytorch/issues/17199
As a work-around I propose to not use OpenMP with ``Pool``. This is done through closing #17 and mak...Using OpenMP (``cyhon.prange``) with ``torch`` and ``multiprocessing.Pool`` deadlocks.
https://github.com/pytorch/pytorch/issues/17199
As a work-around I propose to not use OpenMP with ``Pool``. This is done through closing #17 and making OpenMP optional.https://gitlab.kwant-project.org/qt/miniff/-/issues/17Merge no-openmp branch2021-01-07T15:56:41ZArtem PulkinMerge no-openmp branch``no-openmp`` branch contains the package version without OpenMP parallelization. I think it is better if we provide both variants of kernel functions at runtime such that a single package version is maintained.``no-openmp`` branch contains the package version without OpenMP parallelization. I think it is better if we provide both variants of kernel functions at runtime such that a single package version is maintained.Artem PulkinArtem Pulkin