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

Release 1.3 #1314

Merged
merged 15 commits into from Mar 30, 2019
  •  
  •  
  •  
50 changes: 25 additions & 25 deletions CONTRIBUTING.md
@@ -1,15 +1,15 @@
# Contributing to senaite.core

Third-party contributions are essential for keeping `senaite.core` continuously
improving. We simply cannot access the huge number of platforms and myriad
configurations for running `senaite.core`. We want to keep it as easy as
possible to contribute changes that get things working in your environment.
There are a few guidelines that we need contributors to follow so that we can
Third-party contributions are essential for keeping `senaite.core` continuously
improving. We simply cannot access the huge number of platforms and myriad
configurations for running `senaite.core`. We want to keep it as easy as
possible to contribute changes that get things working in your environment.
There are a few guidelines that we need contributors to follow so that we can
have a chance of keeping on top of things.

The following is a set of guidelines for contributing to senaite.core, which is
hosted in the [SENAITE Organization](https://github.com/senaite) on GitHub.
These are just guidelines, not rules. Use your best judgment, and feel free to
The following is a set of guidelines for contributing to senaite.core, which is
hosted in the [SENAITE Organization](https://github.com/senaite) on GitHub.
These are just guidelines, not rules. Use your best judgment, and feel free to
propose changes to this document in a [pull request](#how-to-submit-a-pull-request).

## Code of Conduct
Expand Down Expand Up @@ -63,21 +63,21 @@ contribute to the source code.
https://github.com/senaite/senaite.core/fork). This will copy the whole
`senaite.core` repository to your personal account.

3. Then, go to your favourite working folder in your computer and clone your
3. Then, go to your favourite working folder in your computer and clone your
forked repository by typing (replacing ```YOUR_USERNAME``` by
the actual username of your GitHub account):

$ git clone https://github.com/YOUR_USERNAME/senaite.core

4. Your forked repository https://github.com/YOUR_USERNAME/senaite.core will
receive the default name of `origin`. You can also add the original
4. Your forked repository https://github.com/YOUR_USERNAME/senaite.core will
receive the default name of `origin`. You can also add the original
`senaite.core` repository, which is usually called `upstream`:

$ cd senaite.core
$ git remote add upstream https://github.com/senaite/senaite.core.git

To verify the new upstream repository you have specified for your fork, type
`git remote -v`. You should see the URL for your fork as `origin`, and the URL
To verify the new upstream repository you have specified for your fork, type
`git remote -v`. You should see the URL for your fork as `origin`, and the URL
for the original repository as `upstream`:

```
Expand All @@ -99,15 +99,15 @@ $ git pull upstream master
```

Now you can do changes, add files, do commits (please take a look at
[how to write good commit messages](https://chris.beams.io/posts/git-commit/)!)
[how to write good commit messages](https://chris.beams.io/posts/git-commit/)!)
and push them to your repository:

```
$ git push origin my_feature
```

If there have been new pushes to the `master` branch of the `upstream`
repository since the last time you pulled from it, you might want to put your
repository since the last time you pulled from it, you might want to put your
commits on top of them (this is mandatory for pull requests):

```
Expand All @@ -129,7 +129,7 @@ pros and cons between doing a `gir rebase` or `git merge`. Good documentation on
this regard can be found in the [Atlassian's Merging vs. Rebasing tutorial](
https://www.atlassian.com/git/tutorials/merging-vs-rebasing).

Note this `git rebase` or `git merge` is required for keeping your branch
Note this `git rebase` or `git merge` is required for keeping your branch
aligned with the latest code from the repos. The incorporation of your work into
`master` through a Pull Request will always be done using `git merge`.

Expand All @@ -141,15 +141,15 @@ GitHub repository, switch to your `my_feature` branch, and click the
_**Pull Request**_ button, which will do all the work for you. Ensure the
comparison is done with the `master` branch unless you forked from another one.

Once a pull request is sent, the Developer Team will review the set of changes,
Once a pull request is sent, the Developer Team will review the set of changes,
discuss potential modifications, and even push follow-up commits if necessary.

Some things that will increase the chance that your pull request is accepted:

* Write tests.
* Follow [Plone's Python styleguide](https://docs.plone.org/develop/styleguide/python.html).
* Write a descriptive and detailed summary. Please consider that reviewing pull
requests is hard, so include as much information as possible to make your
requests is hard, so include as much information as possible to make your
pull request's intent clear.
* Do not address multiple bugfixes or features in the same Pull Request.
* Include whitespace and formatting changes in discrete commits.
Expand All @@ -161,17 +161,17 @@ For more details about Git usage, please check out Chapters 1 and 2 from

## Contributing with new ideas

All suggestions and proposals are welcome. We strongly believe that the
feedback of the community is an important asset to make a better project. With
the aim to get the most of these contributions, but without interfering with
the undergoing work regarding to issues and Pull Requests, we've created a
All suggestions and proposals are welcome. We strongly believe that the
feedback of the community is an important asset to make a better project. With
the aim to get the most of these contributions, but without interfering with
the undergoing work regarding to issues and Pull Requests, we've created a
[Community discussion board](
https://community.senaite.org). This is the right place if
https://community.senaite.org). This is the right place if
you are willing to discuss about new ideas, further steps or improvements.

If you want to keep in touch with the community members and up-to-date
If you want to keep in touch with the community members and up-to-date
with the latest discussions, please join to the [Gitter community channel](
https://gitter.im/senaite/Lobby).

If you want to stay informed about senaite at easy pace, don't forget
If you want to stay informed about senaite at easy pace, don't forget
to subscribe to our [users list](https://sourceforge.net/projects/senaite/lists/senaite-users)
16 changes: 11 additions & 5 deletions CONTRIBUTORS.rst
Expand Up @@ -7,33 +7,37 @@ Contributions to master, excluding merge commits, sorted by number of
contributions descending.

- Campbell McKellar-Basset, rockfruit@users.noreply.github.com
- Jordi Puiggené, jpuiggene@naralabs.com
- Jordi Puiggené, jp@naralabs.com
- Pau Soliva, psoliva@naralabs.com
- Ramon Bartl, rb@ridingbytes.com
- Nihad Mammadli, 1992.nihad@gmail.com
- Anneline Sweetname, anneline@bikalabs.com
- Juan Gallostra, jgallostra@naralabs.com
- Juan Gallostra, juangallostra@users.noreply.github.com
- Godfrey Leibbrandt, godfrey@bikalabs.com
- Mike Metcalfe, mike@metcalfe.co.za
- Jurie-Jan Botha, juriejanbotha@gmail.com
- Inus Scheepers, inus@bikalabs.com
- Lunga Baliwe, lunga001@gmail.com
- Inus Scheepers, inus@bikalabs.com
- Oliver Roch, oliver.roch@d9t.de
- Alexander Karlsson, ak.zylinx@gmail.com
- Anton Feun, anton@satides.co.za
- Jayadeep Karnati, karnatijayadeep@gmail.com
- Lemoene, lemoene@bikalabs.com
- Dhruv Khattar, dhruv@khattarindia.com
- witekdev, witekdev@gmail.com
- Anderson Smith, andersonsmith183@gmail.com
- Javis Sullivan, javissullivan@gmail.com
- Pieter van der Merwe, pieter_vdm@debortoli.com.au
- Anderson Smith, andersonsmith183@gmail.com
- Jean Jordaan, jean.jordaan@gmail.com
- MoffatMore, 12894381+MoffatMore@users.noreply.github.com
- krishan Chopra, krishanchopra61@yahoo.in
- jpsinghgoud, jaipal.singh@research.iiit.ac.in
- Stefan Gruber, s.gruber@liscon.de
- Aleksandr Melnikov, aleksandr.melnikov@limelyte.com
- Henrique Chehad, hchehad@gmail.com
- jpsinghgoud, jaipal.singh@research.iiit.ac.in
- goelakash, goelakash93@gmail.com
- Manav Batra, manavbatra@outlook.com
- mimishons, shoniwam@nmrl.org.zw


Translators
Expand Down Expand Up @@ -134,5 +138,7 @@ Translators
- yuan314159, yuan314159@gmail.com, Chinese (China) (zh_CN)
- Cheng Jin, 17067405@qq.com, Chinese (China) (zh_CN)
- Inus Scheepers, inus@animatica.co.za, Chinese (China) (zh_CN)
- prosper wang, prosperwang@163.com, Chinese (China) (zh_CN)
- Rui Tang, bio.nanoparticle@gmail.com, Chinese (Taiwan) (zh_TW)
- Matthew Tsui, mtsui@app2one.com, Chinese (Taiwan) (zh_TW)
- Liz Sung, lesliesong@gmail.com, Chinese (Taiwan) (zh_TW)
26 changes: 13 additions & 13 deletions README.rst
@@ -1,16 +1,10 @@
.. raw:: html
.. image:: https://raw.githubusercontent.com/senaite/senaite.core/master/static/logo_pypi.png
:target: https://github.com/senaite/senaite.core
:alt: senaite.core
:height: 128px

<div align="center">
<h1>
<a href="https://github.com/senaite/senaite.core">
<div>
<img src="https://raw.githubusercontent.com/senaite/senaite.core/master/static/senaite-logo.png" alt="senaite.core" height="64" />
</div>
</a>
</h1>
</div>

— **SENAITE.CORE**: *Open Source LIMS Core based on the CMS Plone*
*Open Source LIMS Core based on the CMS Plone*
==============================================

.. image:: https://img.shields.io/pypi/v/senaite.core.svg?style=flat-square
:target: https://pypi.python.org/pypi/senaite.core
Expand All @@ -30,6 +24,12 @@
.. image:: https://img.shields.io/github/contributors/senaite/senaite.core.svg?style=flat-square
:target: https://github.com/senaite/senaite.core/blob/master/CONTRIBUTORS.rst

.. image:: https://img.shields.io/badge/Built%20with-%E2%9D%A4-red.svg
:target: https://github.com/senaite/senaite.core

.. image:: https://img.shields.io/badge/Made%20for%20SENAITE-%E2%AC%A1-lightgrey.svg
:target: https://www.senaite.com


Introduction
============
Expand Down Expand Up @@ -79,7 +79,7 @@ Feedback and support
License
=======

**SENAITE.CORE** Copyright (C) 2018 Senaite Foundation
**SENAITE.CORE** Copyright (C) 2018-2019 Senaite Foundation

This software, henceforth "SENAITE.CORE" is an add-on for the
`Plone CMS <https://plone.org/>`_ and a derivative work of BIKA LIMS.
Expand Down
63 changes: 42 additions & 21 deletions RELEASE_NOTES.rst
Expand Up @@ -6,19 +6,40 @@ Update from 1.2.9 to 1.3.0

**IMPORTANT: Plan the upgrade with enough time**

Version 1.3.0 is not a hotfixes release, so this update comes with a lot of
changes that require additional care when planning the update. If you have your
own add-on, please review the changes to see beforehand if some parts of your
add-on need to be modified.

Amongst these changes, the refactoring of Workflows logic will have a huge
impact on how long this update will require for its completion.

To reduce the time for the upgrade to complete, we suggest the following tips:

- Do a backup of both your code and the database before proceed.

- Try to have as much analyses in verified state as possible.
Version 1.3.0 is not a hotfix release, it rather comes with a lot of changes
that require additional care when planning the update. If you have your own
add-on, please review the changes to check beforehand if some parts of your
add-on require modifications.

This update will take long (up to 5h for instances with large amounts of data).
Therefore, is recommended to plan and allocate enough resources for the process
to complete beforehand. For big databases, RAM is a critical factor to be
considered before upgrading. Worth to mention that the following tips are
strongly recommended before proceeding with the upgrade:

- Do a zeopack
- Do a backup of both your code and database
- Try to have as much analyses in verified/published statuses as possible
- Stop unnecessary applications and services that may consume RAM
- Start with a clean log file

Most of the base code has been refactored keeping in mind the following
objectives:

- Less complexity: less code, better code
- High test coverage: lower chance of undetected bugs
- Boost performance: better experience, with no delays
- Improve security: rely on Zope's security policies
- Code responsibility: focus on core functionalities and let other add-ons to
deal with the rest (`senaite.lims`, `senaite.core.listing`, etc.)

Besides of this refactoring, this version also comes with a myriad of new
functionalities and enhancements: full-fledged sample partitions, reinvented
listings and results entry, new adapters for extensibility, etc.

Version 1.3 is the result of hard, but exciting work at same time. Four months
of walking through valleys of tears and fighting hydras. Four exciting months to
be proud of.


Update from 1.2.8 to 1.2.9
Expand All @@ -28,17 +49,17 @@ Update from 1.2.8 to 1.2.9
This update might take long depending on the number of Analyses, Analysis
Requests and Samples registered in the system:

- Role mappings updated for Analaysis Requests and Samples (rejection)
https://github.com/senaite/senaite.core/pull/1041
- Role mappings updated for Analaysis Requests and Samples (rejection)
https://github.com/senaite/senaite.core/pull/1041

- Recatalog of invalidated/retest Analysis Requests (invalidation)
https://github.com/senaite/senaite.core/pull/1027
- Recatalog of invalidated/retest Analysis Requests (invalidation)
https://github.com/senaite/senaite.core/pull/1027

- Reindex and recatalog of getDueDate for Analysis Requests
https://github.com/senaite/senaite.core/pull/1051
- Reindex and recatalog of getDueDate for Analysis Requests
https://github.com/senaite/senaite.core/pull/1051

- Reindex of getDueDate for Analyses
https://github.com/senaite/senaite.core/pull/1032
- Reindex of getDueDate for Analyses:
https://github.com/senaite/senaite.core/pull/1032

- Workflow: `retract_ar` transition has been renamed to `invalidate`
https://github.com/senaite/senaite.core/pull/1027
Expand Down
22 changes: 18 additions & 4 deletions bika/__init__.py
@@ -1,9 +1,23 @@
# This file is part of Bika LIMS
# -*- coding: utf-8 -*-
#
# Copyright 2011-2016 by it's authors.
# Some rights reserved. See LICENSE.txt, AUTHORS.txt.
# This file is part of SENAITE.CORE.
#
# SENAITE.CORE is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright 2018-2019 by it's authors.
# Some rights reserved, see README and LICENSE.

# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
Expand Down
19 changes: 16 additions & 3 deletions bika/lims/__init__.py
@@ -1,9 +1,22 @@
# -*- coding: utf-8 -*-
#
# This file is part of SENAITE.CORE
# This file is part of SENAITE.CORE.
#
# Copyright 2018 by it's authors.
# Some rights reserved. See LICENSE.rst, CONTRIBUTORS.rst.
# SENAITE.CORE is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright 2018-2019 by it's authors.
# Some rights reserved, see README and LICENSE.

import logging
import warnings
Expand Down
19 changes: 16 additions & 3 deletions bika/lims/adapters/__init__.py
@@ -1,6 +1,19 @@
# -*- coding: utf-8 -*-
#
# This file is part of SENAITE.CORE
# This file is part of SENAITE.CORE.
#
# Copyright 2018 by it's authors.
# Some rights reserved. See LICENSE.rst, CONTRIBUTORS.rst.
# SENAITE.CORE is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, version 2.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright 2018-2019 by it's authors.
# Some rights reserved, see README and LICENSE.