{"id":14988154,"url":"https://github.com/apache/thrift-website","last_synced_at":"2025-10-19T12:30:47.081Z","repository":{"id":65979776,"uuid":"308593093","full_name":"apache/thrift-website","owner":"apache","description":"Apache Thrift Website","archived":false,"fork":false,"pushed_at":"2024-12-09T17:04:00.000Z","size":536,"stargazers_count":1,"open_issues_count":0,"forks_count":4,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-01-30T10:11:16.627Z","etag":null,"topics":["asf-site","thrift"],"latest_commit_sha":null,"homepage":"https://thrift.apache.org","language":"CSS","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-30T10:11:47.000Z","updated_at":"2024-12-09T17:03:56.000Z","dependencies_parsed_at":"2024-07-25T06:34:28.276Z","dependency_job_id":"df85ba15-fca6-4d95-80e0-9b2ae2d16ffa","html_url":"https://github.com/apache/thrift-website","commit_stats":{"total_commits":34,"total_committers":4,"mean_commits":8.5,"dds":0.5294117647058824,"last_synced_commit":"5dec164bc01d07ba6e086c78dde4307b7b7f244d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fthrift-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fthrift-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fthrift-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fthrift-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/thrift-website/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237125562,"owners_count":19259304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asf-site","thrift"],"created_at":"2024-09-24T14:16:10.446Z","updated_at":"2025-10-19T12:30:41.710Z","avatar_url":"https://github.com/apache.png","language":"CSS","readme":"# Apache Thrift Website\n\nApache Thrift's website is generated from Markdown source\n(specifically, [kramdown] style) with [Jekyll], using [Bundler]\nto manage its gem dependencies.\n\n## Development\n\n## Local Builds for Testing\n\n### Setting up Your Jekyll/Bundler Environment\n\nRuby and RubyGems are required to use [Jekyll] and [Bundler], so\nfirst make sure you have those on your machine.\n\nIf you are using an OS packaged version of Ruby, you may also\nneed to install the ruby-dev (Ubuntu) or ruby-devel (Fedora)\npackage as well to build any native code for gems that are\ninstalled later. Installing these will also ensure your system's\nRubyGems package is installed. Depending on your OS, you may also\nneed other packages to install/build gems, such as ruby-full,\nmake, gcc, nodejs, build-essentials, or patch.\n\nOnce Ruby, RubyGems, and any necessary native tools are\ninstalled, you are ready to install [Bundler] to manage the\nremaining RubyGem dependencies. Bundler is included in Ruby 2.6\nand later as a default gem, so installing it may not be needed.\n\nBecause we use [Bundler] to install specific versions of gems, it\nis not recommended to use an OS packaged version of gems other\nthan what comes built-in. If you are using an OS packaged version\nof Ruby, it is __strongly__ recommended to avoid `sudo` when\ninstalling additional gems, in order to avoid conflicting with\nyour system's package-managed installation. Instead, you can\nspecify a `GEM_HOME` directory for installing gems locally in\nyour home directory. You can do this in your `$HOME/.bashrc` file\nor other appropriate place for your environment:\n\n```bash\n# in .bashrc\nexport GEM_HOME=$HOME/.gem/ruby\n```\n\nWith Ruby installed on your machine, you can install [Bundler]\nusing the command below:\n\n```bash\n# not necessary in Ruby \u003e2.6, since it is a default gem since 2.6\ngem install bundler\n```\n\nNext, use [Bundler] to install [Jekyll] and other dependencies\nneeded to run the website (this command assumes your current\nworking directory is your clone of this repository with the\n`main` branch checked out, because that's where the Gemfile\ndependency list exists).\n\n```bash\nbundle install\n```\n\n### Testing with the Built-in Jekyll Webserver\n\nThe command to serve the site contents using Jekyll's built-in\nwebserver is as follows (this webserver may behave differently\nthan apache.org's servers).\n\n```bash\nbundle exec jekyll serve -w\n```\n\nYou do __NOT__ need to execute a `bundle exec jekyll build`\ncommand first, as the `serve` command is sufficient to both build\nthe site and serve its contents. By default, it will also try to\nre-build any pages you change while running the webserver, which\ncan be quite useful if trying to get some CSS or HTML styled\n\"just right\".\n\nJekyll will print a local URL where the site can be viewed\n(usually, [http://0.0.0.0:4000/](http://0.0.0.0:4000/)).\n\n## Publishing\n\n### Automatic Staging\n\nChanges pushed to our `main` branch will automatically trigger\nJekyll to build our site from that branch and push the result to\nour `asf-staging` branch, where they will be served on [our\ndefault staging site][staging].\n\n### Publishing Staging to Production\n\nFirst, add our repository as a remote in your local clone, if you\nhaven't already done so (these commands assume the name of that\nremote is 'upstream').\n\nExample:\n\n```bash\ngit clone https://github.com/\u003cyourusername\u003e/thrift-website\ncd thrift-website\ngit remote add upstream https://github.com/apache/thrift-website\n```\n\nNext, publish the staging site to production by updating the\n`asf-site` branch to match the contents in the `asf-staging`\nbranch:\n\n```bash\n# Step 0: stay in main branch; you never need to switch\ngit checkout main\n\n# Step 1: update your upstream remote\ngit remote update upstream\n\n# Step 2: push upstream/asf-staging to upstream/asf-site\n# run next command with --dry-run first to see what it will do without making changes\ngit push upstream upstream/asf-staging:asf-site\n```\n\nA convenience script can be found that performs these steps for\nyou, after asking which remote you want to use. It is located in\nthe `main` branch at `_scripts/publish.sh`\n\nNote that Step 2 should always be a fast-forward merge. That is,\nthere should never be any reason to force-push it if everything\nis done correctly. If extra commits are ever added to `asf-site`\nthat are not present in `asf-staging`, then those branches will\nneed to be sync'd back up in order to continue avoiding force\npushes.\n\nThe final site can be viewed [here][production].\n\n\n[Bundler]: https://bundler.io/\n[Jekyll]: https://jekyllrb.com/\n[Liquid]: https://jekyllrb.com/docs/liquid/\n[kramdown]: https://kramdown.gettalong.org/\n[production]: https://thrift.apache.org\n[staging]: https://thrift.staged.apache.org\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fthrift-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fthrift-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fthrift-website/lists"}