What to do with senaite.core and senaite.lims

Hi friends, I’m a new Senaite user and I’m still learning about the tools.

My doubt is about installing Senaite…

Few days ago I have followed this guide https://www.senaite.com/docs/installation and everything and it worked correctly, but now with those 2 folders (Senaite.lims and senaite.core) I’m still not able to use Senaite in my local host.

I have already downloaded from git the “senaite.lims” and “senaite.core” folders from https://github.com/senaite/senaite.lims.git and github/senaite/senaite.core.git but I dont know what to do whit them. I have the plone already installed and it works fine.

I’m sorry if I forgot something, but I have read many topics in our community.

I have already installed the senaite by executing the ‘bootstrap.py’ and ‘buildout’ files inside the ‘senaite.core’ folder.

But now I want to know the difference between the ‘core’ and the ‘lims’. I got the same result at both, which one should I install in a server, push it to a git and make the changes I need?

SENAITE.CORE provides the core functionalities and entities used by SENAITE.LIMS.

It is intended to be imported automatically as a dependency of SENAITE.LIMS and other SENAITE products, and it should not be installed without the SENAITE.LIMS UI.

Hi @batista.lucas1501 and welcome to the community,

Your question implies two answers:

1. senaite.core vs senaite.lims

SENAITE LIMS follows Plone philosophy and its code is divided in several packages each of them providing specific features or functionalities for easy maintenance, code management and bug tracking. Or at least, this is the idea behind SENAITE modularity.

For example, from a functional point of view, senaite.core contains the core functionalities for a LIMS, including workflows, permissions, etc.

But the seniate.core package by itself does not bring the whole SENAITE LIMS software completely. There is another package called senaite.core.listing that provides a “ReactJS based listing tables” to render visual components for the system, such as “lists and tables” :laughing:.

There are optional packages that you only need to install in case you want the functionality. This is the case for SENAITE Storage.

What is senaite.lims then? senaite.lims package is a meta-package that wraps other packages in order to offer the SENAITE LIMS software:

You can have a look at the following setup.py piece from senaite.lims and see what packages are included and installed for senaite.lims:


SENAITE Health is also a meta package that includes senaite.lims and senaite.panic to bring a LIMS for health enviorements.

2. How to make changes to SENAITE?

Making changes to SENAITE official packages is a good starting point for practice. But, if you want to change/add SENAITE features for a productive system, it is better to create an addon and make changes there. If you were to make changes in the same SENAITE official packages, for example senaite.core, you would have trouble updating to every new version.

How to create an addon? Reading documentation below and having a look at small SENAITE packages such as senaite.databox or senaite.panic.

You can find some extra info here: Where to start learning the Senaite code?

And here:

Mastering Plone!
A beginner training + advanced training focused on Plone development, intended as a week training for people who are new to Plone.

10.1 HTML Page Templates (TAL), from The Zope2 Book
This chapter explains how TAL constructs work for the creation of .pt files (page templates) that are dynamically rendered to HTML. Useful to know how to create results reports templates.


These links have moved to
Mastering Plone! — Mastering Plone 1.2.5a documentation (Plone 4)
Mastering Plone 5 Development — Plone Training 2022 documentation (Plone 5)

Overview of plone trainings: Plone Training — Plone Training 2022 documentation
and GitHub - plone/training: Plone Trainings