Skip to content
A collection of Node web application utilities developed for the Meetup web platform
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dependabot chore(deps): add dependabot for security updates Dec 17, 2019
.github chore: add stale bot (#669) Jan 5, 2020
__mocks__ implemented individual API request timeouts and err objects Oct 31, 2017
flow-typed chore: add 'geo' param to MWPState Aug 15, 2019
.eslintrc.js WP-1125 conventional commit linting (#610) May 3, 2019
.gitignore TAX-358: add request country and region to custom user attributes pas… Dec 24, 2018
.huskyrc.js WP-1125 conventional commit linting (#610) May 3, 2019
.jshintrc initial building commit Aug 24, 2016
babel.config.js chore: enable jest to run with babel7 and workspaces May 3, 2019
jest.config.js working on integration tests - might need a different approach Sep 20, 2017
newrelic.js Revert "Revert "WP 669 parallel routes" (#484)" (#485) Apr 25, 2018

Web Platform Components

npm version Build Status Dependabot Status Coverage Status styled with prettier

This is the base platform for serving Meetup web apps including the public website and admin. It provides a Hapi webserver and a set of conventions for composing applications with React + Redux.

In general, application-specific code will live outside of this package.

Public modules


This package uses semver versioning to tag releases, although the patch version is determined exclusively by the Travis build number for pushes to master. Major and minor versions are hard-coded into the Makefile.

Manual pushes to master and PR merges to master will be built by Travis, and will kick off the yarn publish routine. The currently-published version of the package is shown on the repo homepage on GitHub in a badge at the top of the README.

Development/Beta releases

When developing a consumer application that requires changes to the platform code, you can release a beta version of the platform on npm by opening a PR in the meetup-web-platform repo. When it builds successfully, a new beta version will be added to the list of available npm versions. The generated version number is in the Travis build logs, which you can navigate to by clicking on 'Show all checks' in the box that says 'All checks have passed', and then getting the 'Details' of the Travis build.

screen shot 2016-10-29 at 10 25 20 am

screen shot 2016-10-29 at 10 25 29 am

At the bottom of the build log, there is a line that echos the GIT_TAG. If you click the disclosure arrow, the version number will be displayed, e.g. 0.5.177-beta.

screen shot 2016-10-29 at 10 25 59 am

screen shot 2016-10-29 at 10 26 06 am

You can then install this beta version into your consumer application with

> yarn add -W \
    mwp-api-state@<version tag> \
    mwp-app-render@<version tag> \
    mwp-app-server@<version tag> \
    mwp-config@<version tag> \
    mwp-core@<version tag> \
    mwp-i18n@<version tag> \
    mwp-router@<version tag> \
    mwp-store@<version tag> \
    mwp-toaster@<version tag>

Each time you push a change to your meetup-web-platform PR, you'll need to re-install it with the new tag in your consumer application code.

The overall workflow is:

  1. Open a PR for your meetup-web-platform branch
  2. Wait for Travis to successfully build your branch (this can take 5+ minutes)
  3. Get the version string from the build logs under GIT_TAG
  4. Update the mwp-* (except mwp-cli) on your consumer application and test the changes
  5. (if needed) Push changes to your meetup-web-platform branch
  6. Repeat steps 2-3

Adding a new package

  1. Create a new mwp-* directory in /packages/
  2. Add a new package.json file in the new package
  3. Add a line to .travis.yml before_install to create a .npmrc file that will enable NPM publishing
  4. Increment the version number (a point release is usually okay since a new package is not a breaking change of existing packages)
  5. Add a line to the

If other MWP packages will depend on the new package, you'll need to first publish the package without updating dependencies in other packages, and then make a new release that updates the other packages with the new dependency - the dependency must exist in NPM before it can be specified as a dependency.

You can’t perform that action at this time.