# Évaluation:
# Consigne:
Vous devez, en groupe de 6 ou 7 étudiants choisir une code base parmi celle proposées:
Vue.js, frontend javascript framework: https://github.com/vuejs/vue
Vous devez ensuite réaliser une étude de la codebase choisie, pour en extraire un maximum de connaissance sur l'équipe qui l'a produite et maintenue et sur la perception du monde de l'entreprise. Vous restituerez la connaissance extraite sous la forme d'un document au format markdown, en citant (idéalement avec un lien) les éléments qui vous permettent de déduire les éléments que vous proposez. Indiquez également votre démarche, elle a au moins autant de valeur que les déduction réalisées.
Bon courage,
# Authors
**Anatole Lamarque**, **Gustave Geffroy**, **Jean-Adrien Ducastaing** and **Louis Holleville**.
# The project
A good start to analyze this project is to study what the project is, why it exists and how it exists.
Vue has as an objective to be __the__ Javascript framework. It aims to be:
- approchable
- versatile
- performant
- maintainable
- testable
It also aims to be progressive and reusable. Meaning that any script could be plugged to an existing project on choosen parts.
The project exists since 2014 and was initially conceived as an lightweight alternative to AngularJS.
It has known three majors realease and a total of 250 releases. Most of the releases are hotfixes of minor releases.
Minor releases are very well structured and part of a roadmap. They are composed of several issues discussed by the community and monitored in a 'RFC' (see bellow).
The major 2 improves performances with optimization of rendering (compilation and server-side improvments)
The major 3 highly improves performances (throught imports optimizations) and ensure compatibily with TypeScript, among other changes.
We can note that performance is always at stake in this project, as it aims to be lightweigth and performant.

On this graph, we are seeing the timelapse between the specified action and the refresh of the page. Vue tends to be performant on common operations.
Another goal of this project is to be approachable for developers and the API seems to be one of the difficulties here. As the components tends to increase, the documentation/knowledge of a project does so. But for large projects, it becomes a challenge to keep in touch. Vue tries to simplify all of that, such as with the composition of API (Vue3.0). We can observe that a certain number of the issues of the project are also linked to the management of APIs.
# Organisation (according to Governance Document)
Another way to analyze with project is to study its workflow. How does this project work? Who is involved and how?
> The governance is based on the which a rather autocratic governance model where the "dictator" have always the final word, there is only two other hierarchical layers: the core team (where some member are more powerful than others and can be qualified of "lieutenants") who can directly edit the codebase and manage the pull requests and the mass which must submit pull requests to contribute.
### Project Lead
Evan You ([@yx990803](http://github.com/yyx990803)) - founder.
Has the final say in all aspects. Sets the strategic objectives of the project.
> He basically owns the [entire codebase](https://github.com/vuejs/vue/graphs/contributors)
### Core team
Act as experts, focused on specific aspects of the project. They have no authority but influence. They have the lead's ear, and their responsability is to ensure that the lead is aware of the community's needs.
> Nb: That said, core team members have more rights than said: they have the authority on RFC processes for example.
> Also @posva, seems to be way more than a core team member despite being officially focused on very specific subjects. He's present everywhere and the [second most active contributor](https://github.com/vuejs/rfcs/graphs/contributors) after @yx990803 on RFC processes
| Name | Pseudo | Core focus |
|--------------------|------------------------|--------------------------------------------------------|
| Damian Dulisz | [@shentao](https://github.com/shentao) | news.vuejs.org (community/web)|
| Kia King Ishii | [@kiaking](https://github.com/kiaking) | vuex (flux library)|
| Linusborg | [@LinusBorg](https://github.com/LinusBorg) | vuejs/* |
| Yosuke Ota | [@ota-meshi](https://github.com/ota-meshi) | eslint-plugin-vue (code quality inspection) |
| Jinjiang | [@jinjiang](https://github.com/jinjiang) | cn.vuejs.org (community/web), vue-docs-zh-cn (documentation/translation) |
| Pine Wu | [@octref](https://github.com/octref) | vetur (tooling integration for VS Code) |
| Phan An | [@phanan](https://github.com/phanan) | vuejs.org (community/web) |
| Sodatea | [@sodatea](https://github.com/sodatea) | vue-cli (cli interface), vue-loader (modular component loader) |
| Sarah Drasner | [@sdras](https://github.com/sdras) | vuejs.org (community/web) |
| ULIVZ | [@ulivz](https://github.com/ulivz) | vuepress (Vue.js-based static website generator) |
| GU Yiling | [@Justineo](https://github.com/Justineo) | vue (core library), cn.vuejs.org (community/web) |
| Eduardo | [@posva](https://github.com/posva) | vuefire (Firebase bindings), vue-router (routing library). |
| Katashin | [@ktsn](https://github.com/ktsn) | vuex (flux library), vue-class-component (typescript decorator for class-style component) |
| Natalia Tepluhina | [@NataliaTepluhina](https://github.com/NataliaTepluhina) | vuejs.org (community/web), vue-cli (cli interface) |
| Ben Hong | [@bencodezen](https://github.com/bencodezen) | vuejs.org (community/web), vuepress (Vue.js static website generator), vuejs/events (community) |
| Michał Sajnóg | [@michalsnik](https://github.com/michalsnik) | eslint-plugin-vue (code quality inspection), vue-devtools (browser extension) |
| Rahul Kadyan | [@znck](https://github.com/znck) | rollup-plugin-vue (misc), vue-issue-helper (community/web) |
..
### Community partners
They enrich the projects ecosystem.
One interesting fact about partners is that there is a platinium china sponsors. Looking furthing this way, we figured out that the china community on this project is really present. One more interesting thing is that on major announcements from Evan You, some of the bad reactions and discussions of the directions are issued from this community. An hypothesis on this behavior may be that these actors may be trying to push the future of the project in their direction.
### Contributors
They report and/or fix bugs, add features, write documentation, identify requirements, etc...
### Users
The evangelize about the project, inform about the project's strength and weaknesses.
### Decision making process
They use an RFC lifecycle inspired process. In short, they start a discussion on a dedicated repository, if the core team accepts the feature, the associated pull request on the code repository is merged.
### Mergin process
Every PR must have a templated description.
## Vision
After analysing RFC processes such as this one ([RFC #228](https://github.com/vuejs/rfcs/pull/228)) and the architecure of the project. It might be that the overall community trend is leading the project to become an augmentation of javascript, the compiler becoming more and more complex, and syntactic sugar becoming heavier and heavier.
However there seems to be a resistance to this philosophy amongst the contributors.
The description of the project and some RFC discussions like this one ([RFC #39](https://github.com/vuejs/rfcs/pull/39)) tend to show that performances is critical and extremely important to the community.
# Conclusion
The project is very interesting for its community aspect led by a guru. We have a community with lots of ideas, some are considered, others are not. The development of the project is very structured and the community is invited to participate in order to achieve the objectives. The most deserving ones have the possibility of integrating the core-team, even if this position is not really existing and only the closed circle of Evan You really has the power.