Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub: Simplify root directory and migrate documentation #1812

Open
wants to merge 27 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
de5d663
Simplify root directory
Lamparter Nov 17, 2024
51cab09
Remove Markdown issue template
Lamparter Nov 17, 2024
f6b721b
Rename `LICENSE` to `LICENSE.md`
Lamparter Nov 17, 2024
403b7e3
Migrate "what's new" documents to GitHub Wiki
Lamparter Nov 17, 2024
9f6a906
Migrate documentation to Wiki
Lamparter Nov 17, 2024
9830c77
Move images
Lamparter Nov 17, 2024
b187b7b
Fix references
Lamparter Nov 17, 2024
0141a45
Fix documentation references
Lamparter Nov 17, 2024
35d0f65
Improve `README.md`
Lamparter Nov 17, 2024
e43cf2d
Improve sections in `README.md`
Lamparter Nov 17, 2024
e080072
Ignore languages from GitHub Linguist
Lamparter Nov 17, 2024
d7364b7
Fix references in solution
Lamparter Nov 17, 2024
ccad233
Add bug report issue template
Lamparter Nov 17, 2024
fa337a5
Add feature request issue template
Lamparter Nov 17, 2024
d162817
Add spec issue template
Lamparter Nov 17, 2024
c7961d1
Create issue template config
Lamparter Nov 17, 2024
aba3b0e
Add PR template
Lamparter Nov 17, 2024
f16e79c
Add link to "Using IronPython" wiki under examples section in `README…
Lamparter Nov 18, 2024
d0bee73
Force allow blank issues
Lamparter Nov 18, 2024
b49e6c3
Improve bug report template
Lamparter Nov 18, 2024
48e1d17
Remove `type` from bug report
Lamparter Nov 18, 2024
61ea588
Remove `type` from feature request
Lamparter Nov 18, 2024
02dad37
Remove `type` from spec issue
Lamparter Nov 18, 2024
2583c6c
Add comment
Lamparter Nov 18, 2024
38c8be9
Merge branch 'IronLanguages:main' into collapse
Lamparter Nov 18, 2024
56c0e14
Fix MSBuild references
Lamparter Nov 18, 2024
57e5905
Replace Unicode dash with ASCII dash in "what's new" wiki pages
Lamparter Nov 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,11 @@ Tests/file_without_BOM.txt -text

# Do not normalize on commit.
*.pdf -text

# Ignore languages from GitHub Linguist
*.1 linguist-detectable=false
*.2 linguist-detectable=false
*.3 linguist-detectable=false
*.html linguist-detectable=false
*.pck linguist-detectable=false
*.ps1 linguist-detectable=false
File renamed without changes.
39 changes: 0 additions & 39 deletions .github/ISSUE_TEMPLATE.md

This file was deleted.

72 changes: 72 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Bug Report
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although I like the idea of better structured bug reports I'm not sure this set of templates is well suited for the project. I assume this lets you pick a style before proceeding to filing an issue? Is there an escape hatch that allows not using a template?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a way to still use blank issues, it can be enabled from the config.yml file I created. I'll enable it now.

description: Create a bug report to help improve!
labels: [bug]
title: "Bug: "
type: Bug
body:
- type: markdown
attributes:
value: |
##### ⏱️ Before you start...
- Are you on the latest version? You might be using an old version.
- Have you checked whether or not a similar bug has already been reported?
- type: textarea
attributes:
label: 🪟 What OS build is this issue present?
description: Windows key + R > winver.exe / Apple Logo (in menu bar) > About This Mac (may not be like this on Ventura)
placeholder: Windows 11 Insider Beta 22623.1250 / macOS Monterey 12.6.3
- type: textarea
attributes:
label: 🔢 What version are you on?
- type: textarea
attributes:
label: 📄 Description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: 🪜 Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '....'
2. Click on '....'
3. Scroll down to '....'
4. See the error
validations:
required: false
- type: textarea
attributes:
label: 🤔 Expected behavior
description: A clear and concise description of what you expected to happen.
- type: dropdown
id: platforms-affected
attributes:
label: Affected platforms
description: Select all or any platform that you see this issue on. This helps us determine if it's something platform-specific or in the core. If you were only able to test on 1 platform, please check the last option to inform us about that.
multiple: true
options:
- 📱 Android
- 📲 iOS
- 💻 macOS
- 🪨 Rosetta (macOS Catalyst)
- 🪟 Windows
- 🪟 WPF
- 🐧 GTK
- 🐧 Linux Framebuffer
- ⌨️ Skia Desktop
- 🕸️ WebAssembly
- ❓ Other
- ☹️ I was unable to test on other platforms
validations:
required: true
- type: textarea
id: workaround
attributes:
label: ⚒️ Did you find any workaround?
description: Did you find any workaround for this issue? This can unblock other people while waiting for this issue to be resolved or even give us a hint on how to fix this.
- type: textarea
attributes:
label: 📸 Assets
description: |
A list of assets (errors, screenshots) relevant to the bug.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Discussion
url: https://github.com/IronLanguages/ironpython3/discussions
about: "Ask questions, discuss implementation, or just have a chat! If you're unsure what to choose, a discussion is probably best."
67 changes: 67 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Feature Request
description: Request a new feature to make things better!
labels: [feature request]
title: "Feature: "
type: Feature
body:
- type: markdown
attributes:
value: |
##### ⏱️ Before you start...
- Have you checked whether or not a similar feature request has already been reported?
- type: textarea
attributes:
label: 📄 Description
description: A clear and concise description of what your idea is. Include things like possible use cases, drawbacks, etc.
validations:
required: true
- type: textarea
attributes:
label: 🗃️ Alternative solutions
description: Describe more ways this idea could be implemented.
validations:
required: false
- type: textarea
id: api-changes
attributes:
label: ⚡ API Changes
description: Include a list of all API changes, additions, subtractions as would be required by your proposal. These APIs should be considered placeholders, so the naming is not as important as getting the concepts correct. If possible you should include some example (pseudo-)code of usage of your new API.
placeholder: |
```csharp
var button = new Button ();
button.MakeShiny = true; // new API
```

The MakeShiny API works even if the button is already visible.
validations:
required: false
- type: textarea
id: use-case
attributes:
label: 👥 Intended Use-Case
description: Provide a detailed example of where your proposal would be used and for what purpose. Focus on _why_ you want this feature instead of _what_ the feature does.
placeholder: I have a situation where I would really want a shiny button to make it stand out from the rest of the plain and boring buttons.
validations:
required: false
- type: textarea
attributes:
label: ✅ Tasks
description: Give an overview of all the specific things you would like to be changed or implemented.
value: |
#### 📋 High Priority
- [ ] Something
- [ ] Another thing
- [ ] https://github.com/link/to/an/issue

#### 📋 Nice to have
- [ ] Something
- [ ] Another thing
- [ ] https://github.com/link/to/an/issue
validations:
required: false
- type: textarea
attributes:
label: 📸 Assets
description: A list of assets (screenshots, mockups) relevant to this feature request.
validations:
required: false
74 changes: 74 additions & 0 deletions .github/ISSUE_TEMPLATE/spec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Spec
description: An official specification for enhancements.
labels: ["enhancement"]
assignees: []
title: "Spec: "
type: Spec
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to provide us with a detailed specification of your idea.

In a spec you will give a detailed and complete representation of the (public) APIs that are implemented as part of this change. Additionally please think about backwards compatibility, breaking changes, supported platforms and the difficulty.
- type: textarea
id: description
attributes:
label: 📄 Description
description: Provide a concise description of the feature and the motivation for adding it. This can be a modified version from the feature request prior to this.
validations:
required: true
- type: textarea
id: api-changes
attributes:
label: ⚡ API Changes
description: Include a complete list of all API changes, additions, subtractions as would be required by your proposal.
value: |
## `[ class ]`

| API | Description |
| ------------- | ------------- |
| [name] | Gets or sets [description]. |
validations:
required: true
- type: textarea
id: usage-scenarios
attributes:
label: 👥 Usage scenarios
description: Give us a couple of scenarios that demonstrate how developers would consume the above APIs.
placeholder: |
# C# Example
```csharp
var thing = new MyNewControl();
thing.BeAwesome = true;
thing.Color = Colors.Cornsilk;
```

# XAML Example
```xaml
<MyNewControl x:Name="thing" BeAwesome="true" Color="Cornsilk" />
```
validations:
required: true
- type: textarea
id: backwards-compatibility
attributes:
label: 🔙 Backward Compatibility
description: Please describe here anything in terms of backwards compatibility. Will there be breaking changes? Do we need to update dependencies to support this? What are the minimum supported API/OS levels? And lastly, are there any platforms that can't support this and why?
placeholder: |
Minimum API levels?
Breaking changes?
Unsupported platforms?
validations:
required: false
- type: dropdown
id: difficulty
attributes:
label: 🤔 Difficulty
description: What do you feel will be the difficulty of this change all things considering? No exact science, just your gut feeling.
options:
- Low
- Medium
- High
validations:
required: true
File renamed without changes
File renamed without changes
101 changes: 101 additions & 0 deletions .github/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<p align="center">
<img alt="IronPython Console" src="https://github.com/user-attachments/assets/ea038aa3-36fa-42c3-b72f-a79ae06fdada" />
</p>

<p align="center">
<a style="text-decoration:none" href="https://ironpython.net/">
<img src="https://img.shields.io/badge/IronPython-Website-darkgreen" alt="IronPython Website" /></a>
<a style="text-decoration:none" href="https://github.com/IronLanguages/ironpython3/actions?workflow=CI">
<img src="https://github.com/IronLanguages/ironpython3/workflows/CI/badge.svg" alt="GitHub CI Status" /></a>
<a style="text-decoration:none" href="https://dotnet.visualstudio.com/IronLanguages/_build/latest?definitionId=43">
<img src="https://dotnet.visualstudio.com/IronLanguages/_apis/build/status/ironpython3" alt="Azure CI Status" /></a>
<a style="text-decoration:none" href="https://gitter.im/IronLanguages/ironpython">
<img src="https://badges.gitter.im/IronLanguages/ironpython.svg" alt="Gitter" /></a>
</p>

**IronPython** is a popular, open-source implementation of Python 3.x for .NET that is built on top of its very own [Dynamic Language Runtime](https://github.com/IronLanguages/dlr).

> [!NOTE]
> There is still much that needs to be done to support Python 3. We are working on it, albeit slowly.
> We welcome all those who would like to help! ❤️

IronPython is an open-source implementation of the Python programming language that is tightly integrated with .NET. IronPython can use .NET and Python libraries, and other .NET languages can use Python code just as easily.

IronPython 3 targets Python 3, including the re-organized standard library, Unicode strings, and all of the other new features.

## 🎁 Installation

Binaries of IronPython 3 can be downloaded from the [release page](https://github.com/IronLanguages/ironpython3/releases/latest), available in various formats: `.msi`, `.zip`, `.deb`, `.pkg`. The IronPython package is also available on [NuGet](https://www.nuget.org/packages/IronPython). See the [installation article](https://github.com/IronLanguages/ironpython3/wiki/Installing) for detailed instructions on how to install a standalone IronPython interpreter on various operating systems and .NET frameworks.

## ✍️ Examples

The following C# program:

```cs
using System.Windows.Forms;

MessageBox.Show("Hello World!", "Greetings", MessageBoxButtons.OKCancel);
```

can be written in IronPython as follows:

```py
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import MessageBox, MessageBoxButtons

MessageBox.Show("Hello World!", "Greetings", MessageBoxButtons.OKCancel)
```

Here is an example how to call Python code from a C# program.

```cs
var eng = IronPython.Hosting.Python.CreateEngine();
var scope = eng.CreateScope();
eng.Execute(@"
def greetings(name):
return 'Hello ' + name.title() + '!'
", scope);
dynamic greetings = scope.GetVariable("greetings");
System.Console.WriteLine(greetings("world"));
```

> This example assumes that `IronPython` has been added to the C# project as a NuGet package.

More examples and documentation on how to use IronPython outside the interactive console can be found [here](https://github.com/IronLanguages/ironpython3/wiki/Using-IronPython).

## 🐍 State of the Project

The current target is Python 3.4, although features and behaviors from later versions may be included.

See the following lists for features from each version of CPython that have been implemented:

- [`Python3.0`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.0)
Lamparter marked this conversation as resolved.
Show resolved Hide resolved
- [`Python3.1`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.1)
- [`Python3.2`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.2)
- [`Python3.3`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.3)
- [`Python3.4`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.4)
- [`Python3.5`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.5)
- [`Python3.6`](https://github.com/IronLanguages/ironpython3/wiki/WhatsNew%E2%80%90Python3.6)

## 🙋 Contributing

Want to contribute to this project? Let us know with an [issue](https://github.com/IronLanguages/IronPython3/issues) that communicates your intent to create a [pull request](https://github.com/IronLanguages/IronPython3/pulls). Also, view our [contributing guidelines](CONTRIBUTING.md) to make sure you're up to date on the coding conventions.
For more details on contributing see the [Contributing](CONTRIBUTING.md) article.

#### 🫡 Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).

### 🛠️ Building from source

See the article on [building from source](https://github.com/IronLanguages/ironpython3/wiki/Building). Since the main development is on Windows, bugs on other platforms may inadvertently be introduced - please report them!

### ⚖️ License

This project is licensed under the Apache-2.0 License as stated in the [`LICENSE`](https://github.com/IronLanguages/ironpython3/blob/56d1799/LICENSE).
> Copyright (c) .NET Foundation and Contributors.

### 📝 Wiki

The documentation and guides for IronPython are available [on the wiki](https://github.com/IronLanguages/ironpython3/wiki). Enjoy!
Loading
Loading