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

provide information on citing pytest formally #3402

Closed
bsipocz opened this issue Apr 15, 2018 · 13 comments · Fixed by #3683
Closed

provide information on citing pytest formally #3402

bsipocz opened this issue Apr 15, 2018 · 13 comments · Fixed by #3683
Labels
good first issue easy issue that is friendly to new contributor status: help wanted developers would like help from experts on this topic type: docs documentation improvement, missing or needing clarification type: enhancement new feature or API change, should be merged into features branch type: proposal proposal for a new feature, often to gather opinions or design the API around the new feature

Comments

@bsipocz
Copy link
Contributor

bsipocz commented Apr 15, 2018

I wonder whether there is a way to formally cite pytest, is there a preferred way? Is there a DOI for it somewhere?

@pytestbot
Copy link
Contributor

GitMate.io thinks possibly related issues are #2838 (Contributing to pytest-dev), #2008 (docs error pytest.main), #1602 (pytest.print()), #1411 (Pytest stops), and #2258 (Unicode issues with pytest.fail).

@pytestbot pytestbot added platform: mac mac platform-specific problem type: question general question, might be closed after 2 weeks of inactivity labels Apr 15, 2018
@bsipocz bsipocz changed the title DOI for pytest DOI for pytest, preferred citation method Apr 15, 2018
@RonnyPfannschmidt
Copy link
Member

i would guess if there is a general way to cite opensource projects thats the way to use

@RonnyPfannschmidt RonnyPfannschmidt removed the platform: mac mac platform-specific problem label Apr 16, 2018
@obestwalter
Copy link
Member

hypothesis has a CITATION file in the root of their project for that purpose:

https://github.com/HypothesisWorks/hypothesis/blob/387f307b96bdf56a2aaca89260ec74e04108dc36/CITATION#L1-L19

@RonnyPfannschmidt
Copy link
Member

@obestwalter good find we should adopt that for pytest as well

@RonnyPfannschmidt RonnyPfannschmidt added type: enhancement new feature or API change, should be merged into features branch type: proposal proposal for a new feature, often to gather opinions or design the API around the new feature type: docs documentation improvement, missing or needing clarification and removed type: question general question, might be closed after 2 weeks of inactivity labels May 26, 2018
@RonnyPfannschmidt RonnyPfannschmidt changed the title DOI for pytest, preferred citation method provide information on citing pytest formally May 26, 2018
@RonnyPfannschmidt RonnyPfannschmidt added status: help wanted developers would like help from experts on this topic good first issue easy issue that is friendly to new contributor labels May 26, 2018
@orbingol
Copy link

I think you might want to check https://zenodo.org/

@caramelomartins
Copy link
Contributor

Hey,

If help is still wanted on this I can write something up.

Regards,
Hugo

@nicoddemus
Copy link
Member

Hi @caramelomartins, please go ahead. 👍

@caramelomartins
Copy link
Contributor

Okay, I'll do some research on the above mentioned options.

@caramelomartins
Copy link
Contributor

Using Zenodo or FigShare seems to be unnecessarily complex, in the sense that accounts will need to be managed and someone will have to own them. At the same time, emulating what hypothesis does seems to be fairly accepted throughout the academic community (it seems to also be the standard R way of doing it) [1] [2] [3].

So I'll take the initial suggestion by @obestwalter and create a CITATION for this purpose on the root of the project.

[1] https://www.software.ac.uk/blog/2016-10-06-encouraging-citation-software-introducing-citation-files
[2] https://academia.stackexchange.com/questions/9617/how-can-i-cite-software-documentations
[3] http://astrostatistics.psu.edu/su07/R/html/utils/html/citation.html

@bsipocz
Copy link
Contributor Author

bsipocz commented Jul 13, 2018

@caramelomartins - Yes, but what would you put in a CITATION? Isn't it both really, given a DOI is a more long term thing than the link to the docs/repo.

@caramelomartins
Copy link
Contributor

@bsipocz:

What would you put in a CITATION?

I would use the suggested format in which you create both a formal text-based citation you would like people to use as well as a Bibtex-based entry, so it can be used in reference managers with LaTeX. I would use the original author's name since, even in regards to copyright, his name is the only name that appears in full.

Isn't it both really, given a DOI is a more long term thing than the link to the docs/repo.

While I agree that a DOI is a long term solution, the fact is it is also more complex. You can get a free DOI (by using either Zenodo or FigShare, for example) but AFAIK you need to have an account there to submit upload data.


I'm not sure if it is feasible to have someone be the owner of that account and be responsible for it. The core maintainers (@nicoddemus, for example) should be able to let us know if they wish to use such a service or if having a CITATION, such as the examples I cited, would suffice.

@nicoddemus
Copy link
Member

I wouldn't know what is the best option, being years since last I wrote a scientific paper and needed citations.

Given that using the CITATION solution is being used by Hypothesis and is simpler, I would prefer that, unless @bsipocz says this wouldn't be sufficient for her needs.

@bsipocz
Copy link
Contributor Author

bsipocz commented Jul 14, 2018

@nicoddemus - Actually, a CITATION would be perfectly fine to cite it in papers. Originally I thought we would need the reference for the astropy v2.0 paper, but then most of the auxiliary work (e.g. our pytest plugins) didn't end up in the paper. So this is mostly for future use on my side.

@caramelomartins caramelomartins mentioned this issue Jul 14, 2018
5 tasks
nicoddemus added a commit that referenced this issue Jul 15, 2018
cmccandless referenced this issue in cmccandless/tools Jul 30, 2018
This PR updates [pytest](https://pypi.org/project/pytest) from **3.6.3** to **3.6.4**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.6.4
   ```
   =========================

Bug Fixes
---------

- Invoke pytest using ``-mpytest`` so ``sys.path`` does not get polluted by packages installed in ``site-packages``. (`742 &lt;https://github.com/pytest-dev/pytest/issues/742&gt;`_)


Improved Documentation
----------------------

- Use ``smtp_connection`` instead of ``smtp`` in fixtures documentation to avoid possible confusion. (`3592 &lt;https://github.com/pytest-dev/pytest/issues/3592&gt;`_)


Trivial/Internal Changes
------------------------

- Remove obsolete ``__future__`` imports. (`2319 &lt;https://github.com/pytest-dev/pytest/issues/2319&gt;`_)

- Add CITATION to provide information on how to formally cite pytest. (`3402 &lt;https://github.com/pytest-dev/pytest/issues/3402&gt;`_)

- Replace broken type annotations with type comments. (`3635 &lt;https://github.com/pytest-dev/pytest/issues/3635&gt;`_)

- Pin ``pluggy`` to ``&lt;0.8``. (`3727 &lt;https://github.com/pytest-dev/pytest/issues/3727&gt;`_)
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Repo: https://github.com/pytest-dev/pytest/issues
  - Homepage: http://pytest.org
</details>
jezdez referenced this issue in mozilla/telemetry-analysis-service Aug 14, 2018
This PR updates [pytest](https://pypi.org/project/pytest) from **3.6.2** to **3.7.1**.



<details>
  <summary>Changelog</summary>
  
  
   ### 3.7.1
   ```
   =========================

Bug Fixes
---------

- `3473 &lt;https://github.com/pytest-dev/pytest/issues/3473&gt;`_: Raise immediately if ``approx()`` is given an expected value of a type it doesn&#39;t understand (e.g. strings, nested dicts, etc.).


- `3712 &lt;https://github.com/pytest-dev/pytest/issues/3712&gt;`_: Correctly represent the dimensions of an numpy array when calling ``repr()`` on ``approx()``.

- `3742 &lt;https://github.com/pytest-dev/pytest/issues/3742&gt;`_: Fix incompatibility with third party plugins during collection, which produced the error ``object has no attribute &#39;_collectfile&#39;``.

- `3745 &lt;https://github.com/pytest-dev/pytest/issues/3745&gt;`_: Display the absolute path if ``cache_dir`` is not relative to the ``rootdir`` instead of failing.


- `3747 &lt;https://github.com/pytest-dev/pytest/issues/3747&gt;`_: Fix compatibility problem with plugins and the warning code issued by fixture functions when they are called directly.


- `3748 &lt;https://github.com/pytest-dev/pytest/issues/3748&gt;`_: Fix infinite recursion in ``pytest.approx`` with arrays in ``numpy&lt;1.13``.


- `3757 &lt;https://github.com/pytest-dev/pytest/issues/3757&gt;`_: Pin pathlib2 to ``&gt;=2.2.0`` as we require ``__fspath__`` support.


- `3763 &lt;https://github.com/pytest-dev/pytest/issues/3763&gt;`_: Fix ``TypeError`` when the assertion message is ``bytes`` in python 3.
   ```
   
  
  
   ### 3.7.0
   ```
   =========================

Deprecations and Removals
-------------------------

- `2639 &lt;https://github.com/pytest-dev/pytest/issues/2639&gt;`_: ``pytest_namespace`` has been deprecated.

  See the documentation for ``pytest_namespace`` hook for suggestions on how to deal
  with this in plugins which use this functionality.


- `3661 &lt;https://github.com/pytest-dev/pytest/issues/3661&gt;`_: Calling a fixture function directly, as opposed to request them in a test function, now issues a ``RemovedInPytest4Warning``. It will be changed into an error in pytest ``4.0``.

  This is a great source of confusion to new users, which will often call the fixture functions and request them from test functions interchangeably, which breaks the fixture resolution model.



Features
--------

- `2283 &lt;https://github.com/pytest-dev/pytest/issues/2283&gt;`_: New ``package`` fixture scope: fixtures are finalized when the last test of a *package* finishes. This feature is considered **experimental**, so use it sparingly.


- `3576 &lt;https://github.com/pytest-dev/pytest/issues/3576&gt;`_: ``Node.add_marker`` now supports an ``append=True/False`` parameter to determine whether the mark comes last (default) or first.


- `3579 &lt;https://github.com/pytest-dev/pytest/issues/3579&gt;`_: Fixture ``caplog`` now has a ``messages`` property, providing convenient access to the format-interpolated log messages without the extra data provided by the formatter/handler.


- `3610 &lt;https://github.com/pytest-dev/pytest/issues/3610&gt;`_: New ``--trace`` option to enter the debugger at the start of a test.


- `3623 &lt;https://github.com/pytest-dev/pytest/issues/3623&gt;`_: Introduce ``pytester.copy_example`` as helper to do acceptance tests against examples from the project.



Bug Fixes
---------

- `2220 &lt;https://github.com/pytest-dev/pytest/issues/2220&gt;`_: Fix a bug where fixtures overridden by direct parameters (for example parametrization) were being instantiated even if they were not being used by a test.


- `3695 &lt;https://github.com/pytest-dev/pytest/issues/3695&gt;`_: Fix ``ApproxNumpy`` initialisation argument mixup, ``abs`` and ``rel`` tolerances were flipped causing strange comparsion results.
  Add tests to check ``abs`` and ``rel`` tolerances for ``np.array`` and test for expecting ``nan`` with ``np.array()``


- `980 &lt;https://github.com/pytest-dev/pytest/issues/980&gt;`_: Fix truncated locals output in verbose mode.



Improved Documentation
----------------------

- `3295 &lt;https://github.com/pytest-dev/pytest/issues/3295&gt;`_: Correct the usage documentation of ``--last-failed-no-failures`` by adding the missing ``--last-failed`` argument in the presented examples, because they are misleading and lead to think that the missing argument is not needed.



Trivial/Internal Changes
------------------------

- `3519 &lt;https://github.com/pytest-dev/pytest/issues/3519&gt;`_: Now a ``README.md`` file is created in ``.pytest_cache`` to make it clear why the directory exists.
   ```
   
  
  
   ### 3.6.4
   ```
   =========================

Bug Fixes
---------

- Invoke pytest using ``-mpytest`` so ``sys.path`` does not get polluted by packages installed in ``site-packages``. (`742 &lt;https://github.com/pytest-dev/pytest/issues/742&gt;`_)


Improved Documentation
----------------------

- Use ``smtp_connection`` instead of ``smtp`` in fixtures documentation to avoid possible confusion. (`3592 &lt;https://github.com/pytest-dev/pytest/issues/3592&gt;`_)


Trivial/Internal Changes
------------------------

- Remove obsolete ``__future__`` imports. (`2319 &lt;https://github.com/pytest-dev/pytest/issues/2319&gt;`_)

- Add CITATION to provide information on how to formally cite pytest. (`3402 &lt;https://github.com/pytest-dev/pytest/issues/3402&gt;`_)

- Replace broken type annotations with type comments. (`3635 &lt;https://github.com/pytest-dev/pytest/issues/3635&gt;`_)

- Pin ``pluggy`` to ``&lt;0.8``. (`3727 &lt;https://github.com/pytest-dev/pytest/issues/3727&gt;`_)
   ```
   
  
  
   ### 3.6.3
   ```
   =========================

Bug Fixes
---------

- Fix ``ImportWarning`` triggered by explicit relative imports in
  assertion-rewritten package modules. (`3061
  &lt;https://github.com/pytest-dev/pytest/issues/3061&gt;`_)

- Fix error in ``pytest.approx`` when dealing with 0-dimension numpy
  arrays. (`3593 &lt;https://github.com/pytest-dev/pytest/issues/3593&gt;`_)

- No longer raise ``ValueError`` when using the ``get_marker`` API. (`3605
  &lt;https://github.com/pytest-dev/pytest/issues/3605&gt;`_)

- Fix problem where log messages with non-ascii characters would not
  appear in the output log file.
  (`3630 &lt;https://github.com/pytest-dev/pytest/issues/3630&gt;`_)

- No longer raise ``AttributeError`` when legacy marks can&#39;t be stored in
  functions. (`3631 &lt;https://github.com/pytest-dev/pytest/issues/3631&gt;`_)


Improved Documentation
----------------------

- The description above the example for ``pytest.mark.skipif`` now better
  matches the code. (`3611
  &lt;https://github.com/pytest-dev/pytest/issues/3611&gt;`_)


Trivial/Internal Changes
------------------------

- Internal refactoring: removed unused ``CallSpec2tox ._globalid_args``
  attribute and ``metafunc`` parameter from ``CallSpec2.copy()``. (`3598
  &lt;https://github.com/pytest-dev/pytest/issues/3598&gt;`_)

- Silence usage of ``reduce`` warning in Python 2 (`3609
  &lt;https://github.com/pytest-dev/pytest/issues/3609&gt;`_)

- Fix usage of ``attr.ib`` deprecated ``convert`` parameter. (`3653
  &lt;https://github.com/pytest-dev/pytest/issues/3653&gt;`_)
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Repo: https://github.com/pytest-dev/pytest/issues
  - Homepage: http://pytest.org
</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue easy issue that is friendly to new contributor status: help wanted developers would like help from experts on this topic type: docs documentation improvement, missing or needing clarification type: enhancement new feature or API change, should be merged into features branch type: proposal proposal for a new feature, often to gather opinions or design the API around the new feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants