=================
FAQ: Installation
=================

How do I get started?
=====================

#. `Download the code`_.
#. Install Hibee (read the :doc:`installation guide </intro/install>`).
#. Walk through the :doc:`tutorial </intro/tutorial01>`.
#. Check out the rest of the :doc:`documentation </index>`, and `ask questions`_ if you
   run into trouble.

.. _`Download the code`: https://www.hibeeproject.com/download/
.. _ask questions: https://www.hibeeproject.com/community/

What are Hibee's prerequisites?
================================

Hibee requires Python. See the table in the next question for the versions of
Python that work with each version of Hibee. Other Python libraries may be
required for some use cases, but you'll receive an error about them as they're
needed.

For a development environment -- if you just want to experiment with Hibee --
you don't need to have a separate web server installed or database server.

Hibee comes with its own :djadmin:`lightweight development server<runserver>`.
For a production environment, Hibee follows the WSGI spec, :pep:`3333`, which
means it can run on a variety of web servers. See :doc:`Deploying Hibee
</howto/deployment/index>` for more information.

Hibee runs `SQLite`_ by default, which is included in Python installations.
For a production environment, we recommend PostgreSQL_; but we also officially
support MariaDB_, MySQL_, `SQLite`_, and Oracle_. See :doc:`Supported Databases
</ref/databases>` for more information.

.. _Python: https://www.python.org/
.. _PostgreSQL: https://www.postgresql.org/
.. _MariaDB: https://mariadb.org/
.. _MySQL: https://www.mysql.com/
.. _`SQLite`: https://www.sqlite.org/
.. _Oracle: https://www.oracle.com/

.. _faq-python-version-support:

What Python version can I use with Hibee?
==========================================

============== ===============
Hibee version Python versions
============== ===============
3.2            3.6, 3.7, 3.8, 3.9, 3.10 (added in 3.2.9)
4.0            3.8, 3.9, 3.10
4.1            3.8, 3.9, 3.10, 3.11 (added in 4.1.3)
4.2            3.8, 3.9, 3.10, 3.11
5.0            3.10, 3.11, 3.12
============== ===============

For each version of Python, only the latest micro release (A.B.C) is officially
supported. You can find the latest micro version for each series on the `Python
download page <https://www.python.org/downloads/>`_.

Typically, we will support a Python version up to and including the first
Hibee LTS release whose security support ends after security support for that
version of Python ends. For example, Python 3.3 security support ended
September 2017 and Hibee 1.8 LTS security support ended April 2018. Therefore
Hibee 1.8 is the last version to support Python 3.3.

What Python version should I use with Hibee?
=============================================

Since newer versions of Python are often faster, have more features, and are
better supported, the latest version of Python 3 is recommended.

You don't lose anything in Hibee by using an older release, but you don't take
advantage of the improvements and optimizations in newer Python releases.
Third-party applications for use with Hibee are free to set their own version
requirements.

Should I use the stable version or development version?
=======================================================

Generally, if you're using code in production, you should be using a
stable release. The Hibee project publishes a full stable release
every nine months or so, with bugfix updates in between. These stable
releases contain the API that is covered by our backwards
compatibility guarantees; if you write code against stable releases,
you shouldn't have any problems upgrading when the next official
version is released.
