{"action":"opened","number":716,"pull_request":{"url":"https://api.github.com/repos/civetweb/civetweb/pulls/716","id":241337426,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxMzM3NDI2","html_url":"https://github.com/civetweb/civetweb/pull/716","diff_url":"https://github.com/civetweb/civetweb/pull/716.diff","patch_url":"https://github.com/civetweb/civetweb/pull/716.patch","issue_url":"https://api.github.com/repos/civetweb/civetweb/issues/716","number":716,"state":"open","locked":false,"title":"Build Conan package in CI (#712 )","user":{"login":"uilianries","id":4870173,"node_id":"MDQ6VXNlcjQ4NzAxNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/4870173?v=4","gravatar_id":"","url":"https://api.github.com/users/uilianries","html_url":"https://github.com/uilianries","followers_url":"https://api.github.com/users/uilianries/followers","following_url":"https://api.github.com/users/uilianries/following{/other_user}","gists_url":"https://api.github.com/users/uilianries/gists{/gist_id}","starred_url":"https://api.github.com/users/uilianries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uilianries/subscriptions","organizations_url":"https://api.github.com/users/uilianries/orgs","repos_url":"https://api.github.com/users/uilianries/repos","events_url":"https://api.github.com/users/uilianries/events{/privacy}","received_events_url":"https://api.github.com/users/uilianries/received_events","type":"User","site_admin":false},"body":"Hi!\r\n\r\nThis PR is related to issue #712.\r\n\r\nHere I list some important points in this PR:\r\n- Travis CI jobs to build Civetweb as Conan package in Linux and Macos\r\n- Appveyor jobs to build Civetweb as Conan package in Windows\r\n- Add test package to validate the Conan package created\r\n- Fix bad support for clang 4 (flto)\r\n- Apply new Conan conventions from 1.8\r\n\r\nConan jobs will be executed **ONLY** for Github tags. Any other PR will not trigger a new job, otherwise your CI time will increase.\r\n\r\nI've created a virtual tag in my fork to check that conditional:\r\nhttps://github.com/uilianries/civetweb/tree/v1.12\r\nhttps://travis-ci.com/uilianries/civetweb/jobs/167366381\r\nhttps://ci.appveyor.com/project/uilianries/civetweb/builds/21266286\r\n\r\nConan uses the file conanfile.py as recipe to execute all steps necessary to create the package. As your project is a library, it needs to be built, and Conan defines the package id by settings + options + requires.\r\n\r\nTo make sure that your package is working well, Conan provides test_package, where we put a simple example consuming your package and building as well. When test_package.cpp is including civetweb header, all files are imported from the packaged provided by Conan. Test package is not for unit testing propose, it's a package validation.\r\n\r\nWhen running your package on CI (appveyor, travis or any other) we could run Conan to create the package and check. But prepare a full environment with compiler, build-essential , conan and all stuff could be boring, so we use Docker. Conan provides a good range of images, including gcc and clang. I added multiple jobs because your project should match (compiler version, arch, os, release/debug) when required as dependency.\r\n\r\n## How to upload?\r\n\r\nConan uses Bintray to store their packages. You need to create an account on bintray for that. There is a good documentation how to create a bintray account [here](https://docs.conan.io/en/latest/uploading_packages/bintray/uploading_bintray.html).\r\n\r\nIn short, you need to create a new account [here](https://bintray.com/signup/oss).\r\nSo you will have two options:\r\n\r\n    Create a repository based on your username\r\n    Create a new organization and so create a new repository.\r\n\r\nI would recommend the second one, because you will be able to add more people to maintain your organization.\r\n\r\nFollowing the second choice, create a new organization named civetweb or any preferred name. And create a new repository named conan or any preferred name.\r\n\r\nThe build.py is configured following the reference civetweb/conan/civetweb/. Where:\r\n\r\ncivetweb is your Bintray organization name\r\nconan is the repository name\r\ncivetweb is the package name\r\n\r\nAlso, build.py has a rule to upload only tags or any branch with the pattern name \"v(\\d+.\\d+)\".\r\n\r\nAnd finally, you must set the variable CONAN_PASSWORD on Travis settings. The password is the Bintray API Key, it's not your account password. To read your API key you need to access bintray.com/profile/edit and click on API Key button. Don't forget to mark as secret on Travis settings.\r\nBintray package page\r\n\r\nAfter to upload your package by CI, we recommend update your Bintray package page:\r\nbintray.com/civetweb/conan/civetweb%3Acivetweb/edit?tab=general\r\nThe page contains only project metadata, as url, maturity (official), license.\r\nConan Center request\r\n\r\nNow that all steps are done. Just click on \"Add to Conan Center\" button, present on your package page, and wait for a review.\r\n\r\nOkay, this is a lot of information. Please, feel free to ask anything.\r\n\r\nI'm including @danimtb and @SSE4 to review this PR. They are Conan experts.\r\n\r\nRegards!\r\n\r\n/cc @danimtb @SSE4\r\n\r\ncloses #712","created_at":"2018-12-28T13:55:37Z","updated_at":"2018-12-28T13:55:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/civetweb/civetweb/pulls/716/commits","review_comments_url":"https://api.github.com/repos/civetweb/civetweb/pulls/716/comments","review_comment_url":"https://api.github.com/repos/civetweb/civetweb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/civetweb/civetweb/issues/716/comments","statuses_url":"https://api.github.com/repos/civetweb/civetweb/statuses/a8fe05127adfd1d56257ecb5e90c337b6c56b613","head":{"label":"uilianries:feature/conan-ci","ref":"feature/conan-ci","sha":"a8fe05127adfd1d56257ecb5e90c337b6c56b613","user":{"login":"uilianries","id":4870173,"node_id":"MDQ6VXNlcjQ4NzAxNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/4870173?v=4","gravatar_id":"","url":"https://api.github.com/users/uilianries","html_url":"https://github.com/uilianries","followers_url":"https://api.github.com/users/uilianries/followers","following_url":"https://api.github.com/users/uilianries/following{/other_user}","gists_url":"https://api.github.com/users/uilianries/gists{/gist_id}","starred_url":"https://api.github.com/users/uilianries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uilianries/subscriptions","organizations_url":"https://api.github.com/users/uilianries/orgs","repos_url":"https://api.github.com/users/uilianries/repos","events_url":"https://api.github.com/users/uilianries/events{/privacy}","received_events_url":"https://api.github.com/users/uilianries/received_events","type":"User","site_admin":false},"repo":{"id":162124087,"node_id":"MDEwOlJlcG9zaXRvcnkxNjIxMjQwODc=","name":"civetweb","full_name":"uilianries/civetweb","private":false,"owner":{"login":"uilianries","id":4870173,"node_id":"MDQ6VXNlcjQ4NzAxNzM=","avatar_url":"https://avatars0.githubusercontent.com/u/4870173?v=4","gravatar_id":"","url":"https://api.github.com/users/uilianries","html_url":"https://github.com/uilianries","followers_url":"https://api.github.com/users/uilianries/followers","following_url":"https://api.github.com/users/uilianries/following{/other_user}","gists_url":"https://api.github.com/users/uilianries/gists{/gist_id}","starred_url":"https://api.github.com/users/uilianries/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uilianries/subscriptions","organizations_url":"https://api.github.com/users/uilianries/orgs","repos_url":"https://api.github.com/users/uilianries/repos","events_url":"https://api.github.com/users/uilianries/events{/privacy}","received_events_url":"https://api.github.com/users/uilianries/received_events","type":"User","site_admin":false},"html_url":"https://github.com/uilianries/civetweb","description":"Embedded C/C++ web server","fork":true,"url":"https://api.github.com/repos/uilianries/civetweb","forks_url":"https://api.github.com/repos/uilianries/civetweb/forks","keys_url":"https://api.github.com/repos/uilianries/civetweb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uilianries/civetweb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uilianries/civetweb/teams","hooks_url":"https://api.github.com/repos/uilianries/civetweb/hooks","issue_events_url":"https://api.github.com/repos/uilianries/civetweb/issues/events{/number}","events_url":"https://api.github.com/repos/uilianries/civetweb/events","assignees_url":"https://api.github.com/repos/uilianries/civetweb/assignees{/user}","branches_url":"https://api.github.com/repos/uilianries/civetweb/branches{/branch}","tags_url":"https://api.github.com/repos/uilianries/civetweb/tags","blobs_url":"https://api.github.com/repos/uilianries/civetweb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uilianries/civetweb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uilianries/civetweb/git/refs{/sha}","trees_url":"https://api.github.com/repos/uilianries/civetweb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uilianries/civetweb/statuses/{sha}","languages_url":"https://api.github.com/repos/uilianries/civetweb/languages","stargazers_url":"https://api.github.com/repos/uilianries/civetweb/stargazers","contributors_url":"https://api.github.com/repos/uilianries/civetweb/contributors","subscribers_url":"https://api.github.com/repos/uilianries/civetweb/subscribers","subscription_url":"https://api.github.com/repos/uilianries/civetweb/subscription","commits_url":"https://api.github.com/repos/uilianries/civetweb/commits{/sha}","git_commits_url":"https://api.github.com/repos/uilianries/civetweb/git/commits{/sha}","comments_url":"https://api.github.com/repos/uilianries/civetweb/comments{/number}","issue_comment_url":"https://api.github.com/repos/uilianries/civetweb/issues/comments{/number}","contents_url":"https://api.github.com/repos/uilianries/civetweb/contents/{+path}","compare_url":"https://api.github.com/repos/uilianries/civetweb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uilianries/civetweb/merges","archive_url":"https://api.github.com/repos/uilianries/civetweb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uilianries/civetweb/downloads","issues_url":"https://api.github.com/repos/uilianries/civetweb/issues{/number}","pulls_url":"https://api.github.com/repos/uilianries/civetweb/pulls{/number}","milestones_url":"https://api.github.com/repos/uilianries/civetweb/milestones{/number}","notifications_url":"https://api.github.com/repos/uilianries/civetweb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uilianries/civetweb/labels{/name}","releases_url":"https://api.github.com/repos/uilianries/civetweb/releases{/id}","deployments_url":"https://api.github.com/repos/uilianries/civetweb/deployments","created_at":"2018-12-17T12:01:02Z","updated_at":"2018-12-17T12:01:05Z","pushed_at":"2018-12-28T09:40:13Z","git_url":"git://github.com/uilianries/civetweb.git","ssh_url":"git@github.com:uilianries/civetweb.git","clone_url":"https://github.com/uilianries/civetweb.git","svn_url":"https://github.com/uilianries/civetweb","homepage":null,"size":24215,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"civetweb:master","ref":"master","sha":"09de6cd7c14b71e2cf0cde08199c79c9c458d93d","user":{"login":"civetweb","id":13592161,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNTkyMTYx","avatar_url":"https://avatars1.githubusercontent.com/u/13592161?v=4","gravatar_id":"","url":"https://api.github.com/users/civetweb","html_url":"https://github.com/civetweb","followers_url":"https://api.github.com/users/civetweb/followers","following_url":"https://api.github.com/users/civetweb/following{/other_user}","gists_url":"https://api.github.com/users/civetweb/gists{/gist_id}","starred_url":"https://api.github.com/users/civetweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/civetweb/subscriptions","organizations_url":"https://api.github.com/users/civetweb/orgs","repos_url":"https://api.github.com/users/civetweb/repos","events_url":"https://api.github.com/users/civetweb/events{/privacy}","received_events_url":"https://api.github.com/users/civetweb/received_events","type":"Organization","site_admin":false},"repo":{"id":13352949,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM1Mjk0OQ==","name":"civetweb","full_name":"civetweb/civetweb","private":false,"owner":{"login":"civetweb","id":13592161,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNTkyMTYx","avatar_url":"https://avatars1.githubusercontent.com/u/13592161?v=4","gravatar_id":"","url":"https://api.github.com/users/civetweb","html_url":"https://github.com/civetweb","followers_url":"https://api.github.com/users/civetweb/followers","following_url":"https://api.github.com/users/civetweb/following{/other_user}","gists_url":"https://api.github.com/users/civetweb/gists{/gist_id}","starred_url":"https://api.github.com/users/civetweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/civetweb/subscriptions","organizations_url":"https://api.github.com/users/civetweb/orgs","repos_url":"https://api.github.com/users/civetweb/repos","events_url":"https://api.github.com/users/civetweb/events{/privacy}","received_events_url":"https://api.github.com/users/civetweb/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/civetweb/civetweb","description":"Embedded C/C++ web server","fork":false,"url":"https://api.github.com/repos/civetweb/civetweb","forks_url":"https://api.github.com/repos/civetweb/civetweb/forks","keys_url":"https://api.github.com/repos/civetweb/civetweb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/civetweb/civetweb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/civetweb/civetweb/teams","hooks_url":"https://api.github.com/repos/civetweb/civetweb/hooks","issue_events_url":"https://api.github.com/repos/civetweb/civetweb/issues/events{/number}","events_url":"https://api.github.com/repos/civetweb/civetweb/events","assignees_url":"https://api.github.com/repos/civetweb/civetweb/assignees{/user}","branches_url":"https://api.github.com/repos/civetweb/civetweb/branches{/branch}","tags_url":"https://api.github.com/repos/civetweb/civetweb/tags","blobs_url":"https://api.github.com/repos/civetweb/civetweb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/civetweb/civetweb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/civetweb/civetweb/git/refs{/sha}","trees_url":"https://api.github.com/repos/civetweb/civetweb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/civetweb/civetweb/statuses/{sha}","languages_url":"https://api.github.com/repos/civetweb/civetweb/languages","stargazers_url":"https://api.github.com/repos/civetweb/civetweb/stargazers","contributors_url":"https://api.github.com/repos/civetweb/civetweb/contributors","subscribers_url":"https://api.github.com/repos/civetweb/civetweb/subscribers","subscription_url":"https://api.github.com/repos/civetweb/civetweb/subscription","commits_url":"https://api.github.com/repos/civetweb/civetweb/commits{/sha}","git_commits_url":"https://api.github.com/repos/civetweb/civetweb/git/commits{/sha}","comments_url":"https://api.github.com/repos/civetweb/civetweb/comments{/number}","issue_comment_url":"https://api.github.com/repos/civetweb/civetweb/issues/comments{/number}","contents_url":"https://api.github.com/repos/civetweb/civetweb/contents/{+path}","compare_url":"https://api.github.com/repos/civetweb/civetweb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/civetweb/civetweb/merges","archive_url":"https://api.github.com/repos/civetweb/civetweb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/civetweb/civetweb/downloads","issues_url":"https://api.github.com/repos/civetweb/civetweb/issues{/number}","pulls_url":"https://api.github.com/repos/civetweb/civetweb/pulls{/number}","milestones_url":"https://api.github.com/repos/civetweb/civetweb/milestones{/number}","notifications_url":"https://api.github.com/repos/civetweb/civetweb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/civetweb/civetweb/labels{/name}","releases_url":"https://api.github.com/repos/civetweb/civetweb/releases{/id}","deployments_url":"https://api.github.com/repos/civetweb/civetweb/deployments","created_at":"2013-10-05T21:37:17Z","updated_at":"2018-12-27T19:18:09Z","pushed_at":"2018-12-28T12:03:26Z","git_url":"git://github.com/civetweb/civetweb.git","ssh_url":"git@github.com:civetweb/civetweb.git","clone_url":"https://github.com/civetweb/civetweb.git","svn_url":"https://github.com/civetweb/civetweb","homepage":null,"size":24359,"stargazers_count":1030,"watchers_count":1030,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":466,"mirror_url":null,"archived":false,"open_issues_count":69,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":466,"open_issues":69,"watchers":1030,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/civetweb/civetweb/pulls/716"},"html":{"href":"https://github.com/civetweb/civetweb/pull/716"},"issue":{"href":"https://api.github.com/repos/civetweb/civetweb/issues/716"},"comments":{"href":"https://api.github.com/repos/civetweb/civetweb/issues/716/comments"},"review_comments":{"href":"https://api.github.com/repos/civetweb/civetweb/pulls/716/comments"},"review_comment":{"href":"https://api.github.com/repos/civetweb/civetweb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/civetweb/civetweb/pulls/716/commits"},"statuses":{"href":"https://api.github.com/repos/civetweb/civetweb/statuses/a8fe05127adfd1d56257ecb5e90c337b6c56b613"}},"author_association":"NONE","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":31,"additions":449,"deletions":78,"changed_files":11}}
{"actor":{"display_login":"uilianries"}}