Skip to content

Commit 92997e1

Browse files
author
Armand Choy
committed
Merge branch 'master' of https://github.com/prebid/Prebid.js
* 'master' of https://github.com/prebid/Prebid.js: (367 commits) Rubicon adapter: get referrer from bidderRequest.refererInfo.referer; (prebid#3087) Minor freewheel-ssp update (prebid#3119) fixes prebid#3128 YieldlabBidAdapter is not using bidRequest.params.adSize (prebid#3129) Support Video Renderer (prebid#3104) Fix for Issue 3130: passing new copy of adUnits object to every adapter (prebid#3131) Add video params to Beachfront adapter (prebid#3121) Sonobi - Fix ref encoding (prebid#3125) update circleci link to just Prebid.js builds (prebid#3132) Bugfix: Issue 3111 (prebid#3122) increment prebid version Prebid 1.25.0 Release adding account to s2s bidder-sync request (prebid#3123) Revert "Trafficroots Bid Adapter Submission (prebid#2993)" (prebid#3124) Trafficroots Bid Adapter Submission (prebid#2993) add versioning and deprecation policy doc (prebid#3103) improving kargo unit tests for currency handling (prebid#3106) AdOcean adapter improvment (prebid#3011) Serverbid Bid Adapter: Add pubnx alias (prebid#3064) Adds an id parameter (prebid#3107) added sizes for rubicon (prebid#3094) ...
2 parents 5c09f70 + ee1cd7e commit 92997e1

File tree

398 files changed

+40605
-11010
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

398 files changed

+40605
-11010
lines changed

.circleci/config.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Javascript Node CircleCI 2.0 configuration file
2+
#
3+
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
4+
#
5+
version: 2
6+
jobs:
7+
build:
8+
docker:
9+
# specify the version you desire here
10+
- image: circleci/node:7.10
11+
12+
# Specify service dependencies here if necessary
13+
# CircleCI maintains a library of pre-built images
14+
# documented at https://circleci.com/docs/2.0/circleci-images/
15+
# - image: circleci/mongo:3.4.4
16+
17+
working_directory: ~/Prebid.js
18+
19+
steps:
20+
- checkout
21+
22+
# Download and cache dependencies
23+
- restore_cache:
24+
keys:
25+
- v1-dependencies-{{ checksum "package.json" }}
26+
# fallback to using the latest cache if no exact match is found
27+
- v1-dependencies-
28+
29+
- run: npm install
30+
31+
- save_cache:
32+
paths:
33+
- node_modules
34+
key: v1-dependencies-{{ checksum "package.json" }}
35+
36+
- run: sudo npm install -g gulp-cli
37+
# Download and run BrowserStack local
38+
- run:
39+
name : Download BrowserStack Local binary and start it.
40+
command : |
41+
# Download the browserstack binary file
42+
wget "https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip"
43+
# Unzip it
44+
unzip BrowserStackLocal-linux-x64.zip
45+
# Run the file with user's access key
46+
./BrowserStackLocal ${BROWSERSTACK_ACCESS_KEY} &
47+
# run tests!
48+
- run:
49+
name: BrowserStack testing
50+
command: gulp test --browserstack

.eslintrc.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ module.exports = {
2626
// Violations of these styles should be fixed, and the exceptions removed over time.
2727
//
2828
// See Issue #1111.
29-
"camelcase": "off",
3029
"eqeqeq": "off",
3130
"no-return-assign": "off",
3231
"no-throw-literal": "off",

.travis.yml

Lines changed: 0 additions & 28 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ When you are adding code to Prebid.js, or modifying code that isn't covered by a
5555
Prebid.js already has many tests. Read them to see how Prebid.js is tested, and for inspiration:
5656

5757
- Look in `test/spec` and its subdirectories
58-
- Tests for bidder adaptors are located in `test/spec/adapters`
58+
- Tests for bidder adaptors are located in `test/spec/modules`
5959

6060
A test module might have the following general structure:
6161

PREBID_VERSIONING_DEPRECATION.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Prebid versioning and deprecation policy
2+
3+
## Goals
4+
Provide clear definitions and policy around versioning and breaking changes to APIs that are both publisher and demand partner facing.
5+
6+
- Limit the number of breaking changes.
7+
- Ensure significant time for updates for breaking changes so that publisher or demand partners do not break.
8+
- Provide a path to deprecation and reduce technical debt and increase security.
9+
- Major versions should not be changed more than once per 30 days.
10+
11+
## Versioning
12+
13+
Follow semantic versioning so that all breaking changes occur within a major release. A breaking change includes both demand partner internal APIs* and publisher facing APIs (global APIs).
14+
15+
*Demand partner APIs may be excluded from breaking change policy at the core teams discretion if the changes are made so to be transparent to the bidders (such as internal refactoring).
16+
17+
## Deprecation process
18+
19+
- Open an issue with an "intent to implement" and "API impact" labels.
20+
- Allow 2 weeks for discussion.
21+
- Announce breaking change to the mailing list (TBD needs to be created).
22+
- At least 2 core members needs to provide explicit approval for the deprecation.
23+
- Open a PR against current master for console warning for possible breakage.
24+
- Support the previous major version for a minimum of 30 days.
25+
- Coordinate with the core team to ensure clean merging into feature branch if applicable (future major version branch).

PR_REVIEW.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ For modules and core platform updates, the initial reviewer should request an ad
1818
- Once there is 2 `LGTM` on the PR, merge to master
1919
- Ask the submitter to add a PR for documentation if applicable.
2020
- Add a line into the [draft release](https://github.com/prebid/Prebid.js/releases) notes for this submission. If no draft release is available, create one using [this template]( https://gist.github.com/mkendall07/c3af6f4691bed8a46738b3675cb5a479)
21+
- Add the PR to the appropriate project board (I.E. 1.23.0 Release) for the week, [see](https://github.com/prebid/Prebid.js/projects)
2122

2223
### New Adapter or updates to adapter process
2324
- Follow steps above for general review process. In addition, please verify the following:
@@ -39,9 +40,9 @@ For modules and core platform updates, the initial reviewer should request an ad
3940
## Ticket Coordinator
4041

4142
Each week, Prebid Org assigns one person to keep an eye on incoming issues and PRs. That person should:
42-
- Review issues and PRs at least once per weekday for new items.
43+
- Review issues and PRs at least once per weekday for new items. Encourage a 48 "SLA" on PRs/issues assigned. Aim for touchpoint once every 48/hours.
4344
- For PRs: assign PRs to individuals on the PR review list. Try to be equitable -- not all PRs are created equally. Use the "Assigned" field and add the "Needs Review" label.
44-
- For Issues: try to address questions and troubleshooting requests on your own, assigning them to others as needed.
45+
- For Issues: try to address questions and troubleshooting requests on your own, assigning them to others as needed. Please add labels as appropriate (I.E. bug, question, backlog etc).
4546
- Issues that are questions or troubleshooting requests may be closed if the originator doesn't respond within a week to requests for confirmation or details.
4647
- Issues that are bug reports should be left open and assigned to someone in PR rotation to confirm or deny the bug status.
4748
- It's polite to check with others before assigning them large tasks.

README.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
[![Build Status](https://travis-ci.org/prebid/Prebid.js.svg?branch=master)](https://travis-ci.org/prebid/Prebid.js)
1+
[![Build Status](https://circleci.com/gh/prebid/Prebid.js.svg?style=svg)](https://circleci.com/gh/prebid/Prebid.js)
22
[![Percentage of issues still open](http://isitmaintained.com/badge/open/prebid/Prebid.js.svg)](http://isitmaintained.com/project/prebid/Prebid.js "Percentage of issues still open")
33
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/prebid/Prebid.js.svg)](http://isitmaintained.com/project/prebid/Prebid.js "Average time to resolve an issue")
44
[![Code Climate](https://codeclimate.com/github/prebid/Prebid.js/badges/gpa.svg)](https://codeclimate.com/github/prebid/Prebid.js)
55
[![Coverage Status](https://coveralls.io/repos/github/prebid/Prebid.js/badge.svg)](https://coveralls.io/github/prebid/Prebid.js)
66
[![devDependencies Status](https://david-dm.org/prebid/Prebid.js/dev-status.svg)](https://david-dm.org/prebid/Prebid.js?type=dev)
7+
[![Total Alerts](https://img.shields.io/lgtm/alerts/g/prebid/Prebid.js.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/prebid/Prebid.js/alerts/)
78

89
# Prebid.js
910

@@ -29,6 +30,8 @@ Working examples can be found in [the developer docs](http://prebid.org/dev-docs
2930
$ npm install
3031

3132
*Note:* You need to have `NodeJS` 4.x or greater installed.
33+
*Note:* Because we have transitioned to using gulp 4.0 - you need to have `gulp-cli` installed globally prior to running the general `npm install`. Run the following command to perform the install: `npm install gulp-cli -g`
34+
If you have a previous version of `gulp` installed globally, you'll need to remove it before installing `gulp-cli`. This removal can be done with the command: `npm rm gulp -g`
3235

3336
<a name="Build"></a>
3437

@@ -106,11 +109,6 @@ To run the unit tests:
106109
```bash
107110
gulp test
108111
```
109-
To run tests for a single file:
110-
111-
```bash
112-
gulp test --file "path/to/spec/file.js"
113-
```
114112

115113
To generate and view the code coverage reports:
116114

@@ -172,7 +170,7 @@ Many SSPs, bidders, and publishers have contributed to this project. [60+ Bidder
172170

173171
For guidelines, see [Contributing](./CONTRIBUTING.md).
174172

175-
Our PR review process can be found [here](https://github.com/prebid/Prebid.js/tree/master/pr_review.md).
173+
Our PR review process can be found [here](https://github.com/prebid/Prebid.js/tree/master/PR_REVIEW.md).
176174

177175
### Add a Bidder Adapter
178176

RELEASE_SCHEDULE.md

Lines changed: 119 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
# Release Schedule
1+
**Table of Contents**
2+
- [Release Schedule](#release-schedule)
3+
- [Release Process](#release-process)
4+
- [Beta Releases](#beta-releases)
5+
- [FAQs](#faqs)
6+
7+
## Release Schedule
28

39
We push a new release of Prebid.js every other week on Tuesday. During the adoption phase for 1.x, we are releasing updates for 1.x and 0.x at the same time.
410

@@ -9,7 +15,118 @@ You can determine what is in a given build using the [releases page](https://git
915

1016
Announcements regarding releases will be made to the #headerbidding-dev channel in subredditadops.slack.com.
1117

12-
# FAQs
18+
## Release Process
19+
20+
_Note: If `github.com/prebid/Prebid.js` is not configured as the git origin for your repo, all of the following git commands will have to be modified to reference the proper remote (e.g. `upstream`)_
21+
22+
1. Make Sure all browserstack tests are passing. On PR merge to master CircleCI will run unit tests on browserstack. Checking the last CircleCI build [here](https://circleci.com/gh/prebid/Prebid.js) for master branch will show you detailed results.
23+
24+
In case of failure do following,
25+
- Try to fix the failing tests.
26+
- If you are not able to fix tests in time. Skip the test, create issue and tag contributor.
27+
28+
#### How to run tests in browserstack
29+
30+
_Note: the following browserstack information is only relevant for debugging purposes, if you will not be debugging then it can be skipped._
31+
32+
Set the environment variables. You may want to add these to your `~/.bashrc` for convenience.
33+
34+
```
35+
export BROWSERSTACK_USERNAME="my browserstack username"
36+
export BROWSERSTACK_ACCESS_KEY="my browserstack access key"
37+
```
38+
39+
```
40+
gulp test --browserstack >> prebid_test.log
41+
42+
vim prebid_test.log // Will show the test results
43+
```
44+
45+
46+
2. Prepare Prebid Code
47+
48+
Update the package.json version to become the current release. Then commit your changes.
49+
50+
```
51+
git commit -m "Prebid 1.x.x Release"
52+
git push
53+
```
54+
55+
3. Verify Release
56+
57+
Make sure your there are no more merges to master branch. Prebid code is clean and up to date.
58+
59+
4. Create a GitHub release
60+
61+
Edit the most recent [release notes](https://github.com/prebid/Prebid.js/releases) draft and make sure the correct tag is in the dropdown. Click `Publish`. GitHub will create release tag.
62+
63+
Pull these changes locally by running command
64+
```
65+
git pull
66+
git fetch --tags
67+
```
68+
69+
and verify the tag.
70+
71+
5. Update coveralls _(skip for legacy)_
72+
73+
We use https://coveralls.io/ to show parts of code covered by unit tests.
74+
75+
Set the environment variables. You may want to add these to your `~/.bashrc` for convenience.
76+
```
77+
export COVERALLS_SERVICE_NAME="travis-ci"
78+
export COVERALLS_REPO_TOKEN="talk to Matt Kendall"
79+
```
80+
81+
Run `gulp coveralls` to update code coverage history.
82+
83+
6. Distribute the code
84+
85+
_Note: do not go to step 7 until step 6 has been verified completed._
86+
87+
Reach out to any of the Appnexus folks to trigger the jenkins job.
88+
89+
// TODO
90+
Jenkins job is moving files to appnexus cdn, pushing prebid.js to npm, purging cache and sending notification to slack.
91+
Move all the files from Appnexus CDN to jsDelivr and create bash script to do above tasks.
92+
93+
7. Post Release Version
94+
95+
Update the version
96+
Manually edit Prebid's package.json to become "1.x.x-pre" (using the values for the next release). Then commit your changes.
97+
```
98+
git commit -m "Increment pre version"
99+
git push
100+
```
101+
102+
8. Create new release draft
103+
104+
Go to [github releases](https://github.com/prebid/Prebid.js/releases) and add a new draft for the next version of Prebid.js with the following template:
105+
```
106+
## 🚀New Features
107+
108+
## 🛠Maintenance
109+
110+
## 🐛Bug Fixes
111+
```
112+
113+
## Beta Releases
114+
115+
Prebid.js features may be released as Beta or as Generally Available (GA).
116+
117+
Characteristics of a `Beta` release:
118+
- May be a partial implementation (e.g. more work needed to flesh out the feature)
119+
- May not be fully tested with other features
120+
- Limited documentation, focused on technical aspects
121+
- Few users
122+
123+
Characteristics of a `GA` release:
124+
- Complete set of functionality
125+
- Significant user base with no major issues for at least a month
126+
- Decent documentation that includes business need, use cases, and examples
127+
128+
129+
## FAQs
13130

14131
**1. Is there flexibility in the 2-week schedule?**
15132

browsers.json

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,5 @@
6262
"browser_version": "8.0",
6363
"device": null,
6464
"os": "OS X"
65-
},
66-
"bs_ios_9": {
67-
"base": "BrowserStack",
68-
"os": "ios",
69-
"os_version": "9.1",
70-
"browser": "iphone",
71-
"device": "iPhone 6S",
72-
"browser_version": null
73-
},
74-
"bs_ios_8": {
75-
"base": "BrowserStack",
76-
"os": "ios",
77-
"os_version": "8.3",
78-
"browser": "iphone",
79-
"device": "iPhone 6",
80-
"browser_version": null
8165
}
8266
}

governance.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
This document describes the governance model for the Prebid project. The Prebid project’s stated mission is to facilitate fair, transparent, and effective header bidding across the industry, and is responsible for creating and maintaining such projects as [Prebid.js](https://github.com/prebid/Prebid.js).
44

5-
1. A single Tech Lead oversees the technical direction of the project and appoints Core Team members
5+
1. A single Tech Lead (PMC Chair) oversees the technical direction of the project and appoints Core Team members
66
2. The Core Team members maintain the project on an ongoing basis with direction from the Tech Lead.
77
3. In the event of any disagreements, the Tech Lead will make a final decision.
8-
4. If there is no Tech Lead available to perform his/her duties, AppNexus Inc. will appoint one.
8+
4. If there is no Tech Lead available to perform his/her duties, Prebid.org will appoint one.
99

1010
### Roles and Responsibilities:
1111
- **User:** Any individual who consumes / uses the Prebid.js library.
@@ -15,9 +15,9 @@ This document describes the governance model for the Prebid project. The Prebid
1515

1616
### Current Prebid.js Core Team
1717
- @mkendall07 (Tech Lead)
18-
- @protonate
18+
- @jsnellbaker
1919
- @matthewlane
2020
- @jaiminpanchal27
2121
- @snapwich
2222
- @harpere
23-
- @dbemiller
23+
- @mike-chowla

0 commit comments

Comments
 (0)