Skip to content

Into the future ... #134

@HyperBrain

Description

@HyperBrain

Hi, I am the new maintainer of the serverless-webpack plugin.

First of all, I'd like to thank @thenikso and the team for the great project and
the tremendous work done. Without people like him, the OSS landscape
wouldn't be what it is today.

Initially I thought, that I would not have the time to take over the project,
but after some thinking, I came to the conclusion that the project has a huge
active and lovely community, and it's not me who really maintains the project,
but it's you, the community :-)

My goal is, to lead the project to an active state again (it is really worth it)
so that with help of us all, the project receives updates frequently, and has frequent,
stable releases that integrate the fixes and features.

I know that this cannot be done within a few days, so I created a rough roadmap and
put together some topics on how to proceed to get the engines running again as fast as
possible again.

Home sweet home

As @thenisko has no time anymore to take care of the project, the project will be moved
to a new home. The ETA for this is within the next few weeks. If it turns out, that I can
manage the project time-wise, I'll transfer it to my other projects like the serverless-aws-alias
plugin. I'll know about that within the next 2 weeks - if it does not work out, I'll try to
locate another appropriate org where it can live.

Releases

I will take care of releases and define milestones for the next releases
accordingly (so that everyone knows what will make it into which next release
depending on the impact, so that it stays SemVer compliant).

Versioning

The next released version will start with 2.0.0 (due to #83) and follow the SemVer pattern.
There is no reason to have versions declared as rc anymore -> there is already
a wide-spread use of the project.
This also makes it clear for every user if, and when, to switch to a new version without
the risk to break everything.

Milestones

I will create GitHub milestones for the upcoming releases (especially 2.0.0 now). Every PR or
task that we (the community) analyzed will be assigned to the milestones, as soon as it is clear
that it will be part of one of the next releases.

Next release

I'd like to release a new version as soon as possible. The release should only contain the stable
and verified fixes that are already available (see Open PRs). This is very important, as the project
is used in production environments and as no semver is in place until now, will eventually break
deployments if we include some risky stuff in the 2.0.0 release.

Open PRs

Currently there are 27 pull requests open. Some of them are already tested, some of them do
not solve the addressed problems completely, and some of them do not relate to any open issue.

For the very next release (that should be done asap) it is important that the open PRs are
analyzed as a very first step, so that all PRs that are viable (decision by the community) can be merged.

We all should work through the list of PRs and check if they are:

  • finished from an implementation perspective
  • solve the given problem as intended
  • are reviewed
  • are tested for side-effects and functionality

If you checked these points, please leave a comment in the PR, so that we can define the status
of the PR together, and decide if it will be part of the next immediate release. If so, I will
add the PR to the 2.0.0 milestone, so that we get an overview about what will and can be included.

Current master

Currently there is one merge in master #83 which is not yet released. It is the arbitrary webpack version support which is already used by many people. Naturally this will be part of the release.

Tags

I will add tags to each PR we discussed. PRs that are not viable for the 2.0.0 release will be
tagged accordingly and we should discuss them further and work on them to get them finished.

Open issues

There is also a bunch of open issues. The first priority is to address the open PRs to get
2.0.0 out asap. But there are still a lot of issues open, that do not have any reaction since
a long time.

The 2.0.0 should not contain fixes that are not yet available as PR! It is meant to release
a fresh updated version within the next week
. For the release following 2.0.0 (may it be 2.0.1
or 2.1.0 depending on the contained fixes) we have time to add solutions for existing but not already
solved issues.

We have to walk over the issues and try to check if the issues are valid issues, or if any information
is missing there. I will add tags to them accordingly, so that we see what needs to be done there or
delete them, if a discussion within the issue shows that it is not really a problem.

Code quality / Coverage

I will setup some mechanisms to make sure that quality issues or failing unit tests are catched
as early as possible. These should be setup within the next few weeks.

PR description template

The Serverless core framework implemente nice and useful templates for new issues and PRs. I will
integrate them into the project, as they are very helpful to make sure that issues have all needed
information to rate/analyze them from the beginning. For PRs they help to tell the status and remind
people of parts that are likely to be missed like documentation or unit tests.

Coveralls

Coveralls provides a very nice unit test code coverage tracking and warns you if any implementation
decreases the coverage (i.e. adds untested code). Istanbul, which is used by the Serverless core
framework (and my alias plugin) already uses the service.

Travis

I will integrate Travis, so that for every commit and PR, the unit tests are run and any contributor
immediately gets a helpful feedback.

ESLint

I will also integrate ESLint into the project to make sure that no avoidable issues exist before merging pull requests. Every PR will trigger a Travis build and lets run ESLint over the code. If there are issues the build will fail and there will be a notification in the PR that shows that something has to be fixed.

Community / Volunteers

The further success of the project is heavily dependent on the community (YOU ❤️ ). So please volunteer
to help getting it on the right path again. I will add frequent volunteers as contributors to
the project, so that we can continue with a normal project life after we have brought it back
to life initially.

This should make it possible to build up a core maintainance team, that makes sure that the project
will never become inactive again.

Until then, I will manage and perform the npm releases - with the fixes and features included, that
we, the community decided to be in.

References

I attached a link to each PR here to make sure that everyone who submitted or
worked on a solution of a problem gets notified about the reactivation of the project.

#132, #131, #130, #129, #127, #112, #110, #106, #105, #104, #103, #101,
#97, #96, #93, #92, #91, #90, #88, #85, #82, #81, #80, #74, #45, #30, #18

I'd love to hear your thoughts about all this.

Cheers
Frank

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions