[openstack-dev] [Fuel] PTL Candidacy

2016-03-15 Thread Vladimir Kozhukalov
Hi all,

I'd like to announce my candidacy to be Fuel PTL for the Newton cycle.
I've been a member of Fuel team since the very beginning of the project.
Fuel started as a proprietary deployment tool for OpenStack, but since
that we have been smothly moving towards being more and more open and
more and more community oriented. In the beginning of Mitaka cycle Fuel
was approved to become an official OpenStack project under Big Tent.
But being an offcial project is not enough. 95% of Fuel contributions
during Mitaka are from Mirantis [1].

Fuel is huge and it is hard for companies and individuals to catch
tendencies in Fuel project and thus it is hard for them to decide how,
what and why they could contribute. One of the biggest problems I see is
Fuel is not modular enough.

Some Fuel components have already been brought out of Fuel and now they
are fully independent. These are Bareon and Packetary. Bareon is a fork of
Fuel-agent and is to become a generic OS provisioning tool. It already has
third party contributions. Fuel is to switch to Bareon in Newton cycle.
Packetary is a former part of Fuel-mirror. It is to become a generic tool
to deal with DEB and RPM repositories and packages, so its use case
is much broader than Fuel.

Some current Fuel components are quite generic and thus they could
be brought out of Fuel project. For example, Shotgun is a tool for
collecting log files and commands output from an environment, but this
functionality could potentially be useful for other projects.
The same is about Network-checker.

Some Fuel components strictly depend on Fuel but their purpose is generic.
We could put some efforts to make these components fully data driven and
thus expand their use case. For example, Fuel-menu is a tool that provides
user configuration dialog. Why should it be Fuel specific? Could we make it
data driven and expand its use case? The same is about Fuel-virtualbox,
which
is just a set of configurable shell scripts that could be used for non-Fuel
virtualbox environments. Fuel-ostf also could be potentially used out of
Fuel.

Some Fuel components could potentially be substituted with generic community
tools. For example, Fuel-nailgun-agent is a discovery/inventory tool.
Ironic-inspector does the same. Ironic itself could be used as a power
management tool. Perhaps Neutron could be used for network allocation and
configuration. Anyway, we should put more efforts in integrating with
other OpenStack projects (i.e. avoid duplicating code as well as
functionality).

Besides, Fuel development process is feature driven. Contributors are
encouraged to merge changes that implement a feature but they are not
encouraged to think of how maintainable that change is and how it is
related to the component architecture. Last couple cycles we suffered a lot
when many features were to be merged by feature freeze. There were many
feature
freeze exceptions, we merged features that had not been tested well.

My suggestion for Newton cycle is to switch from feature driven approach
to component driven. All components should have dedicated teams that should
plan
components road map taking into account not only feature requests but also
tech
debt and components architecture. It is better when people are focused on
their
particular field like REST API, network configuration, OS provisioning, etc.
That is going to make feature planning more predictable, help to avoid
feature
freeze rush and increase the quality of code. Component teams
should also be responsible for thorough test coverage
(including functional and system/integration tests) and for
promotion of their components.

If we make Fuel components as much independent and generic as
possible, that will help us to expand component use cases and thus
to to attract third party contributors.

My primary goals for Newton cycle are:
1) Switch to component driven development approach
   (i.e. by-component teams, by-component releases)
2) Introduce by-component and cross-component functional testing
3) Attract third party contributors, so they contribute at least 10%

There are lots of things that I'd like to be implemented (integrating with
OpenStack packaging, UEFI support, torrent based OS provisioning,
OpenStack deployment from source code, power management, LCM, etc.)
but I'm going to rely on component teams opinions in such particular fields.

Thanks for reading. If you like the plan, please vote.

[1] http://stackalytics.com/?module=fuel-group&metric=commits


Vladimir Kozhukalov
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [fuel] PTL Candidacy

2015-09-28 Thread Dmitry Borodaenko
I'd like to announce my candidacy as Fuel PTL for the next cycle.

It is our very first election, so we are taking our time to make sure we
get everything right. We have extended the nomination period to
September 28 [0] to give Fuel contributors more time to learn about the
OpenStack governance process [1] and discuss how it is going to apply to
Fuel [2].

[0] https://wiki.openstack.org/wiki/Fuel/Elections_Fall_2015#Timeline
[1] https://wiki.openstack.org/wiki/Governance
[2] 
http://eavesdrop.openstack.org/meetings/fuel/2015/fuel.2015-09-24-16.02.log.html#l-91

Fuel is a large project with well defined component boundaries. Some of
these components are as large and as active as whole other OpenStack
projects [3]. To improve our ability to cope with code review, design
review, and dispute resolution, we're introducing a role of a Component
Lead for the two largest components, and a team structure policy [4]
that will help new contributors find the right people for each stage of
our development process: from discussing ideas to reaching consensus
about design to getting the implementation reviewed and merged.

[3] https://lwn.net/Articles/648610/
[4] https://review.openstack.org/225376

Electing a PTL is an important step towards more open governance,
development, and community collaboration. Still, it is only one step,
and while we have made significant progress this year, there is still a
lot of work to be done before we can meet all the requirements of
becoming an official OpenStack project [5].

[5] https://review.openstack.org/199232

Specifically, we need to eliminate code duplication with Puppet
OpenStack project, and bring all our git repositories in compliance with
the Project Testing Interface, before bringing our proposal to join the
Big Tent back to the attention of the Technical Committee.

I think that in the next six months we should focus on the following:

- Continue improving our collaboration with Puppet OpenStack project and
  complete the migration from local forked copies to reusing upstream
  Puppet modules with librarian-puppet-simple.

- Collaborate with other OpenStack projects, most importantly RPM and
  DEB Packaging, OpenStack Infrastructure, and Documentation.

- Implement PTI [6] for all Fuel components and get commits to all our
  repositories gated with unit tests (as well as functional and
  integration tests where possible) on OpenStack Infrastructure.

  [6] http://governance.openstack.org/reference/project-testing-interface.html

- Continue and expand modularization efforts on all levels for better
  reuse of Fuel components both internally and in other projects. Follow
  fuel-agent [7] as the first example of how to extract parts of
  fuel-web into self-sufficient sub-projects. Expand applicability of
  plugins [8], deployment tasks [9], and network templates [10] to make
  it easier to adapt Fuel for different use cases.

  [7] 
https://docs.mirantis.com/openstack/fuel/fuel-6.1/reference-architecture.html#fuel-agent
  [8] https://wiki.openstack.org/wiki/Fuel/Plugins
  [9] 
https://docs.mirantis.com/openstack/fuel/fuel-6.1/reference-architecture.html#task-based-deployment
  [10] https://blueprints.launchpad.net/fuel/+spec/templates-for-networking

- Expand Fuel developers documentation [11] and wiki [12], populate more
  of our component README files with information for contributors.
  Unsurprisingly, README.md in fuel-docs is a good example of that [13].

  [11] https://docs.fuel-infra.org/fuel-dev/
  [12] https://wiki.openstack.org/wiki/Fuel/How_to_contribute
  [13] https://github.com/stackforge/fuel-docs/blob/master/README.md

- Make our decision making process more transparent. We are already
  using fuel-specs repository [14] to discuss design specifications for
  Fuel bluprints, we should use openstack-dev and IRC more actively to
  include more people from OpenStack community in our technical
  discussions.

  [14] http://specs.fuel-infra.org/fuel-specs-master/

I have long advocated for more collaboration with the free software
community, and I strongly believe that paying close attention to
feedback from the community, encouraging new contributors, and building
a healthy and diverse community around Fuel is the best way to make Fuel
the awesomest OpenStack deployment tool for everyone.

[15] https://lists.launchpad.net/fuel-dev/msg00727.html

Thank you for your consideration,

-- 
Dmitry Borodaenko

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev