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

Comments

Projects
None yet
7 participants
@bsipocz
Copy link

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

This comment has been minimized.

Copy link

pytestbot commented Apr 15, 2018

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).

@bsipocz bsipocz changed the title DOI for pytest DOI for pytest, preferred citation method Apr 15, 2018

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Apr 16, 2018

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

@obestwalter

This comment has been minimized.

Copy link
Member

obestwalter commented May 26, 2018

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

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented May 26, 2018

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

@RonnyPfannschmidt RonnyPfannschmidt changed the title DOI for pytest, preferred citation method provide information on citing pytest formally May 26, 2018

@orbingol

This comment has been minimized.

Copy link

orbingol commented Jun 11, 2018

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

@caramelomartins

This comment has been minimized.

Copy link
Contributor

caramelomartins commented Jul 12, 2018

Hey,

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

Regards,
Hugo

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Jul 12, 2018

Hi @caramelomartins, please go ahead. 👍

@caramelomartins

This comment has been minimized.

Copy link
Contributor

caramelomartins commented Jul 12, 2018

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

@caramelomartins

This comment has been minimized.

Copy link
Contributor

caramelomartins commented Jul 13, 2018

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

This comment has been minimized.

Copy link
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

This comment has been minimized.

Copy link
Contributor

caramelomartins commented Jul 13, 2018

@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

This comment has been minimized.

Copy link
Member

nicoddemus commented Jul 13, 2018

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

This comment has been minimized.

Copy link
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 added a commit to caramelomartins/pytest that referenced this issue Jul 14, 2018

@caramelomartins caramelomartins referenced this issue Jul 14, 2018

Merged

[#3402] CITATION #3683

2 of 5 tasks complete

nicoddemus added a commit that referenced this issue Jul 15, 2018

cmccandless added a commit to cmccandless/tools that referenced this issue Jul 30, 2018

Update pytest to 3.6.4 (#22)
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 added a commit to mozilla/telemetry-analysis-service that referenced this issue Aug 14, 2018

Update pytest to 3.7.1 (#1247)
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
You can’t perform that action at this time.