<commit_before>===========================
OpenStack Program Ecosystem
===========================


Lifecycle of a new Program
==========================

.. image:: ./_assets/04-01-lifecycle1.png

----

External
========


.. image:: ./_assets/04-02-lifecycle.png

- Idea
- Gather a community
- Alternate implementations
- Stackforge
- File an OpenStack incubation request

----

Incubated
=========

.. image:: ./_assets/04-03-lifecycle.png

- Fill the gap with graduation requirements
- Align with the OpenStack way
- Two development milestones
- Migrate to the openstack/* namespace
- Graduation review

----

Integrated
==========

.. image:: ./_assets/04-04-lifecycle.png

- Cannot graduate in the middle of a cycle
- Follow a full cycle as an integrated project

----

Core (or What is OpenStack)
===========================

- DefCore initiative, sponsored by the Board of Directors
- Currently work in progress for qualifying APIs

----

Stackforge
==========

.. image:: ./_assets/04-05-stackforge.png

- Gerrit code review
- Jenkins continuous integration
- Git repository
- IRC bots, pypi uploads...

----

What is Stackforge for
======================

.. image:: ./_assets/04-06-stackforge.png

- Maintain related unofficial projects
- Same tools and procedures used by the main projects

----

How to add a project to Stackforge
==================================

.. image:: ./_assets/04-07-stackforge.png


----

Exercise
========<commit_msg>upstream cleanup 04<commit_after>===========================
OpenStack Program Ecosystem
===========================

.. rst-class:: colright

|  <teacher name>
|  <date>

Lifecycle of a new Program
==========================

.. image:: ./_assets/04-01-lifecycle1.png
  :width: 100%

External
========

.. image:: ./_assets/04-02-lifecycle.png
  :width: 100%

- Idea
- Gather a community
- Alternate implementations
- Stackforge
- File an OpenStack incubation request

Incubated
=========

.. image:: ./_assets/04-03-lifecycle.png
  :width: 100%

- Fill the gap with graduation requirements
- Align with the OpenStack way
- Two development milestones
- Migrate to the openstack/* namespace
- Graduation review

Integrated
==========

.. image:: ./_assets/04-04-lifecycle.png
  :width: 100%

- Cannot graduate in the middle of a cycle
- Follow a full cycle as an integrated project

Core (or What is OpenStack)
===========================

- DefCore initiative, sponsored by the Board of Directors
- Currently work in progress for qualifying APIs

Stackforge
==========

.. image:: ./_assets/04-05-stackforge.png
  :width: 100%

- Gerrit code review
- Jenkins continuous integration
- Git repository
- IRC bots, pypi uploads...

What is Stackforge for
======================

.. image:: ./_assets/04-06-stackforge.png
  :width: 100%

- Maintain related unofficial projects
- Same tools and procedures used by the main projects

How to add a project to Stackforge
==================================

.. image:: ./_assets/04-07-stackforge.png
  :width: 100%

Exercise
========
{'fraction_non_alphanumeric': 0.22544495715227422, 'fraction_numerical': 0.026697429136453527, 'mean_word_length': 3.7496087636932707, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1457058', 'n_tokens_mistral': 968, 'n_tokens_neox': 835, 'n_words': 289}