{"id":13504883,"url":"https://github.com/pharo-project/pharo","last_synced_at":"2025-05-14T07:08:26.802Z","repository":{"id":37270583,"uuid":"64123480","full_name":"pharo-project/pharo","owner":"pharo-project","description":"Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.","archived":false,"fork":false,"pushed_at":"2025-05-13T16:12:27.000Z","size":117247,"stargazers_count":1277,"open_issues_count":1433,"forks_count":379,"subscribers_count":42,"default_branch":"Pharo14","last_synced_at":"2025-05-13T17:28:18.776Z","etag":null,"topics":["bootstrap","language","live-programming","mit","object-oriented-programming","pharo","reflective","tools"],"latest_commit_sha":null,"homepage":"http://pharo.org","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pharo-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"Authors.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://consortium.pharo.org","https://association.pharo.org"]}},"created_at":"2016-07-25T09:55:28.000Z","updated_at":"2025-05-13T15:26:34.000Z","dependencies_parsed_at":"2023-09-22T02:42:27.353Z","dependency_job_id":"f7bda74e-b3bc-4546-9b56-78a71df1a03a","html_url":"https://github.com/pharo-project/pharo","commit_stats":{"total_commits":19768,"total_committers":261,"mean_commits":75.73946360153256,"dds":0.8499089437474707,"last_synced_commit":"352e81d0002fdb98fd067c20f1a995d341c9fa98"},"previous_names":[],"tags_count":362,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2Fpharo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharo-project","download_url":"https://codeload.github.com/pharo-project/pharo/tar.gz/refs/heads/Pharo14","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092659,"owners_count":22013290,"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":["bootstrap","language","live-programming","mit","object-oriented-programming","pharo","reflective","tools"],"created_at":"2024-08-01T00:00:52.853Z","updated_at":"2025-05-14T07:08:21.783Z","avatar_url":"https://github.com/pharo-project.png","language":"Smalltalk","readme":"# Pharo\n\nThis repository contains sources of the [Pharo language](http://pharo.org/). Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one). Visit us on https://www.pharo.org or [Pharo Discord Server](https://discord.gg/QewZMZa)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.pharo.org\"\u003e\n    \u003cimg alt=\"Pharo\" src=\"https://img.shields.io/static/v1?style=for-the-badge\u0026message=Pharo\u0026color=3297d4\u0026logo=Harbor\u0026logoColor=FFFFFF\u0026label=\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/QewZMZa\"\u003e  \n    \u003cimg alt=\"Discord online members\" src=\"https://img.shields.io/discord/223421264751099906?color=5865F2\u0026label=Discord\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003cimg alt=\"Commit activity per month\" src=\"https://img.shields.io/github/commit-activity/m/pharo-project/pharo?style=for-the-badge\" /\u003e\n\u003c/p\u003e\n\n![Pharo screenshot](https://pbs.twimg.com/media/DBpdIGrXkAA8SJ1.jpg)\n\n## Download Pharo\n\nTo download the Pharo stable version for your platform, please visit:\n\n- [http://pharo.org/download](http://pharo.org/download)\n\n## Virtual machine\n\nThis repository contains only sources of the Pharo image. The virtual machine source code is managed in a separate repository:\n\n- [https://github.com/pharo-project/pharo-vm/](https://github.com/pharo-project/pharo-vm/)\n\n## Automated Builds\n\nThis repository is being built on a [Jenkins server](https://ci.inria.fr/pharo-ci-jenkins2) and uploaded to [files.pharo.org](https://files.pharo.org).\n\n- [Latest build - 64bit](http://files.pharo.org/image/120/latest-64.zip)\n- [Latest build - 32bit](http://files.pharo.org/image/120/latest.zip)\n\nThe minimal image contains the basic Pharo packages without the graphical user interface. It is useful as a base for server-side applications deployment.\n\n- [Minimal image latest build - 64bit](http://files.pharo.org/image/120/latest-minimal-64.zip)\n- [Minimal image latest build - 32bit](http://files.pharo.org/image/120/latest-minimal-32.zip)\n\n\n## Bootstrapping Pharo from sources\n\nTo bootstrap a new Pharo image you need the latest stable version of Pharo. For more information about bootstrapping, refer to [guillep/PharoBootstrap](https://github.com/guillep/PharoBootstrap).\n\nThe bootstrapping can be done on a properly-named branch using the following script:\n\n```bash\n./bootstrap/scripts/bootstrap.sh\n```\n\nThis will generate and archive images at various stages of the bootstrap process up to the full image in `Pharo12.0-64bit-hhhhhhh.zip` where hhhhhhh is the hash of the current checkout. Additional information on the stages of the bootstrap and how to snapshot during the process are provided as comments in bootstrap.sh.\n\n* You can set the `BUILD_NUMBER` environment variable to a unique integer (this is typically used only for the [official builds](https://files.pharo.org/image/120/) and will default to `0` if not specified).\n* You can set the `BOOTSTRAP_ARCH` environment variable to either `64` (the default) or `32`.\n* You can set the `BOOTSTRAP_REPOSITORY` and `BOOTSTRAP_CACHE` environment variables to do the bootstrap outside of the source repository.\n* You can set the `BOOTSTRAP_VMTARGET` environment variable to make the bootstrap use a virtual machine already present in your system (otherwise it will download it).\n* If you are on a branch that doesn't follow the expected naming convention ('`PharoX.Y`'), then the script will pick an appropriate default (such as `Pharo12.0`). To build Pharo12.0 from a custom branch, you need to set `BRANCH_NAME=Pharo12` before the bootstrap script is run.\n\n### Bootstrapping with Docker\n\nYou can also use Docker if you prefer to control the bootstrapping environment completely. The following `Dockerfile` provides a Docker image with a fresh build. You can repeat the command `git pull \u0026\u0026 ./bootstrap/scripts/bootstrap.sh` in a container at any time:\n\n```Dockerfile\n# docker build --tag pharo .\n# docker run --rm --name pharo -it pharo\nFROM ubuntu:22.04\nRUN apt-get update \u0026\u0026 apt-get -y install build-essential git wget zip\nRUN git clone https://github.com/pharo-project/pharo.git /root/pharo\nWORKDIR /root/pharo\nRUN git pull \u0026\u0026 ./bootstrap/scripts/bootstrap.sh\nENTRYPOINT [ \"bash\" ]\n```\n\nAlternatively, in the root directory of this project (after a `git clone`), you can set up a Docker volume pointing to the project directory and build from within the Docker container (nice for Windows environments!):\n\n```bash\n# in the host environment start a Docker container\ndocker run --rm -it -v $(pwd)/:/pharo --workdir /pharo ubuntu:22.04 bash\n# in the container add the required packages and start the bootstrap script\napt-get update \u0026\u0026 apt-get -y install build-essential git wget zip\n./bootstrap/scripts/bootstrap.sh\n```\n\n## File format\n\nThis source code repository is exported in [Tonel format](https://github.com/pharo-vcs/tonel). In this format, packages are represented as directories and each class is inside a single file.\n\n## How to contribute\n\nPharo is an open source project very friendly to contributions of the users. See the document [CONTRIBUTING](CONTRIBUTING.md) how you can help to improve Pharo.\n\n## Pharo friendly links and organizations\n\n[http://github.com/Pharo-project/PharoMap](http://github.com/Pharo-project/PharoMap)\n\n## Stargazers over time\n[![Stargazers over time](https://starchart.cc/pharo-project/pharo.svg?background=%23FFFFFF\u0026axis=%23333333\u0026line=%232f81f7)](https://starchart.cc/pharo-project/pharo)\n","funding_links":["https://consortium.pharo.org","https://association.pharo.org"],"categories":["Smalltalk","Uncategorized","Back-End Development","Object-Oriented"],"sub_categories":["Uncategorized","Misc"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-project%2Fpharo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharo-project%2Fpharo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-project%2Fpharo/lists"}