On 26/01/19 19:52, Justin W. Flory wrote:
Hi Clement, thanks for this detailed feedback.

I agree focusing on CI/CD and improving development environment
instructions is helpful and a good goal for the hackfest; I'm replying
in-line with some other thoughts.

On 1/17/19 3:39 AM, Clement Verna wrote:
Hi Justin,

I am replying here to your IRC questions :-)

So I think that indeed setting up basic CI/CD and maybe a container
based development environment would be a good start.
The Infra team is meeting next week in Brno and one item of the long
agenda we have is to move applications to Openshift so maybe we will
have the time to do that for badges. This would allow to use a much
nicer workflow.

Running Tahrir/Badges in OpenShift would be awesome. I saw some commits
from Randy this week. Was there any success on running Badges in OpenShift?

About migrating to another framework, I think this is an hard task (I
don't know much of the tahrir code base tho) since it usually mean you
need someone that knows well the current code base and framework and
that also knows well the new framework this sounds difficult for me.
Although as I mentioned in the council ticket, the technology stack
does not sound very appealing for someone that wishes to learn new
skills or develop existing one which is one of the main factor for
people to dedicate time to help maintain a Opens Source project.

All that to say that I think that for your FAD you should focus on
adding new feature, I would choose maybe 1 or 2 features that are
really longed for and try to break them down in smaller items so that
you have kind of plan to develop them.

I agree.

You could write something like that

Technical work breakdow :

# Development Environment setup

## Create container environment to run application locally
(application, database, etc ..)
## Document how to use the container base development environment
## Add basic test framework and make it possible to run test in the
container environment
## Add code linting, code formatting checks, etc ...
## Configure Travis CI or CentOS CI to run tests and checks

I think this is achievable for a hackfest. In #fedora-badges, Sayan and
I were discussing this. Vagrant is set up already for Tahrir. I am
curious of the value in migrating to a container-based environment from
Vagrant.

If migrating to a container environment from Vagrant offered benefits to
how Badges is deployed (in addition to lower overhead for a dev
environment), I think it would be worthwhile?
For development environment I recommend to stick with Vagrant instead of container. It's simpler and easier for maitaining. I actually tried to move two of my projects from Vagrant to containers, but there are still things, that aren't that easy to manage in container (like running systemd services).

# Feature Development

## Implement ticket number X using Test Driven Development
### Create new page template
### Create new HTTP enpoint to serve the new page template

## Implement ticket number XX using Test Driven Development
### Investigate and document how YYY feature works
### Add new feature to YYY
....

Using TDD is a nice way to start adding test to the application, you
also imaging doing some pair programming if that work well during the
FAD that can be a nice way to on-board new contributor inviting them
to a pair-programming TDD session.

This approach makes sense too. Some of the work we want to do is to
identify and prioritize which features to focus on.

Hope that helps, I ll try to push for us to move badges to openshift
next week so that should make things a little easier later on to
deploy changes to staging and production :-)

Thanks for your helpful feedback and support!



_______________________________________________
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org