Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template_en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Issue Title
[Replace with a clear, descriptive title]

## Issue Type
- [ ] Bug Report
- [ ] Feature Request
- [ ] Documentation
- [ ] Other (please specify)

## Description
Please provide a clear and detailed description of the issue or feature request.

### For Bug Reports:
#### Steps to Reproduce
1. [First Step]
2. [Second Step]
3. [Additional Steps...]

#### Expected Behavior
What did you expect to happen?

#### Actual Behavior
What actually happened? Include any error messages, stack traces, or screenshots.

#### Code Sample
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template_pt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Título da Issue
[Substitua com um título claro e descritivo]

## Tipo de Issue
- [ ] Relatório de Bug
- [ ] Solicitação de Funcionalidade
- [ ] Documentação
- [ ] Outro (especifique)

## Descrição
Por favor, forneça uma descrição clara e detalhada da issue ou solicitação de funcionalidade.

### Para Relatórios de Bug:
#### Passos para Reproduzir
1. [Primeiro Passo]
2. [Segundo Passo]
3. [Passos Adicionais...]

#### Comportamento Esperado
O que você esperava que acontecesse?

#### Comportamento Real
O que realmente aconteceu? Inclua mensagens de erro, stack traces ou screenshots.

#### Amostra de Código
41 changes: 41 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template_en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Pull Request Title
[Replace with a clear, descriptive title]

## Description
Please provide:
- A summary of the changes made
- The issue number(s) this PR addresses (if applicable)
- Any breaking changes or important notes for reviewers
- Screenshots/videos for UI changes (if applicable)

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
- [ ] Other (please describe)

## Testing
- [ ] I have run `cargo fmt` to format the code
- [ ] I have run `cargo test` and all tests pass
- [ ] I have added new tests for my changes
- [ ] I have manually tested the changes

## Documentation
- [ ] I have updated relevant documentation
- [ ] I have updated comments in the code
- [ ] I have added/updated API documentation (if applicable)

## Additional Context
Add any other context about the PR here, such as:
- Alternative approaches considered
- Performance implications
- Migration notes for breaking changes

## Checklist before merging
- [ ] All discussions have been resolved
- [ ] Required reviewers have approved
- [ ] CI checks are passing
- [ ] Documentation is up to date
- [ ] Branch is up to date with main
41 changes: 41 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template_pt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Título do Pull Request
[Substitua com um título claro e descritivo]

## Descrição
Por favor, forneça:
- Um resumo das alterações feitas
- O(s) número(s) da issue que este PR aborda (se aplicável)
- Quaisquer mudanças significativas ou notas importantes para os revisores
- Screenshots/vídeos para mudanças na interface (se aplicável)

## Tipo de Alteração
- [ ] Correção de bug
- [ ] Nova funcionalidade
- [ ] Atualização de documentação
- [ ] Refatoração de código
- [ ] Melhoria de performance
- [ ] Outro (por favor, descreva)

## Testes
- [ ] Executei `cargo fmt` para formatar o código
- [ ] Executei `cargo test` e todos os testes passaram
- [ ] Adicionei novos testes para minhas alterações
- [ ] Testei manualmente as alterações

## Documentação
- [ ] Atualizei a documentação relevante
- [ ] Atualizei os comentários no código
- [ ] Adicionei/atualizei a documentação da API (se aplicável)

## Contexto Adicional
Adicione qualquer outro contexto sobre o PR aqui, como:
- Abordagens alternativas consideradas
- Implicações de performance
- Notas de migração para mudanças significativas

## Checklist antes de mesclar
- [ ] Todas as discussões foram resolvidas
- [ ] Revisores necessários aprovaram
- [ ] Verificações de CI estão passando
- [ ] Documentação está atualizada
- [ ] Branch está atualizada com main
85 changes: 85 additions & 0 deletions CONTRIBUTING_en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Contributing to the Project

Thank you for considering contributing to this project! We welcome contributions from everyone. Please follow the guidelines below to help make the process smoother.

## How to Contribute

1. **Fork the repository**: Create your own copy of the repository by forking it to your GitHub account.
2. **Clone your fork**: Clone the forked repository to your local machine.
```bash
git clone https://github.com/your-username/project-name.git
```
3. **Set up remotes**: Set up the original repository as the upstream remote. This is important because it allows you to keep your fork synchronized with the main repository. When other contributors make changes to the main repository, you'll be able to pull those changes into your fork to stay up-to-date.
```bash
git remote add upstream git@github.com:UnBCIC-TP2/r-python.git
```
Verify your remotes are set up correctly:
```bash
git remote -v
```
You should see your fork as `origin` and the main repo as `upstream`.

4. **Create a branch**: Create a new branch for your feature or bugfix.
```bash
git checkout -b feature/your-feature
```
5. **Make your changes**: Work on your changes, ensuring that they are in line with the project's coding style.

6. **Add the changed files**: Before committing, add the files you changed or created using:
```bash
git add <file-name>
```
Or to add all files:
```bash
git add .
```
7. **Run tests**: Before submitting your pull request, ensure all tests pass.
```bash
cargo test
```
8. **Commit your changes**: Commit your changes with a meaningful message.
```bash
git commit -m "Describe your changes"
```
9. **Keep your fork in sync**: Before pushing, sync your fork with the upstream repository.
```bash
git fetch upstream
git checkout <your-branch>
git rebase upstream/main
```
If there are conflicts, resolve them before continuing.

10. **Push your changes**: Push your branch to your fork on GitHub.
```bash
git push origin feature/your-feature
```
Note: If you rebased your branch and the push is rejected, you may need to use `--force` with caution, but this should generally be avoided when possible.

## Opening a Pull Request

- **Ensure your branch is up to date with `main`**: Follow the sync steps above before opening a pull request.
- **Create a Pull Request**: After pushing your branch to your fork, open a pull request (PR) from your branch to the `main` branch of the original repository.
- **Review and Feedback**: Once your PR is submitted, the team will review your changes. You may be asked to make some improvements or fix issues before it is merged.

### Best Practices for Opening a Pull Request

- Always provide a clear and concise description of what the PR addresses.
- Make sure your code follows the project's style guidelines.
- Ensure the code is well-tested and all tests pass.
- Use meaningful commit messages that describe the changes being made.
- For significant changes to core functionality, include a detailed description explaining:
- The rationale behind the changes
- Any potential impacts on existing code
- Plans for handling deprecated code
- Performance considerations (e.g., memory usage, reference vs. clone decisions)

### Running `cargo fmt` and `cargo test`

Before submitting a pull request, please make sure to run `cargo fmt` to format the code and `cargo test` to ensure that all tests pass.

```bash
cargo fmt
cargo test
```

Thank you for helping us improve the project!
85 changes: 85 additions & 0 deletions CONTRIBUTING_pt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Contribuindo com o Projeto

Obrigado por considerar contribuir com este projeto! Aceitamos contribuições de todos. Por favor, siga as diretrizes abaixo para tornar o processo mais suave.

## Como Contribuir

1. **Faça um fork do repositório**: Crie sua própria cópia do repositório fazendo um fork para sua conta do GitHub.
2. **Clone seu fork**: Clone o repositório bifurcado para sua máquina local.
```bash
git clone https://github.com/seu-usuario/nome-do-projeto.git
```
3. **Configure os remotos**: Configure o repositório original como o remoto upstream. Isso é importante porque permite que você mantenha seu fork sincronizado com o repositório principal. Quando outros contribuidores fizerem alterações no repositório principal, você poderá puxar essas alterações para seu fork para manter-se atualizado.
```bash
git remote add upstream git@github.com:UnBCIC-TP2/r-python.git
```
Verifique se seus remotos estão configurados corretamente:
```bash
git remote -v
```
Você deve ver seu fork como `origin` e o repositório principal como `upstream`.

4. **Crie uma branch**: Crie uma nova branch para sua funcionalidade ou correção de bug.
```bash
git checkout -b feature/sua-funcionalidade
```
5. **Faça suas alterações**: Trabalhe em suas alterações, garantindo que estejam de acordo com o estilo de codificação do projeto.

6. **Adicione os arquivos alterados**: Antes de fazer commit, adicione os arquivos que você alterou ou criou usando:
```bash
git add <nome-do-arquivo>
```
Ou para adicionar todos os arquivos:
```bash
git add .
```
7. **Execute os testes**: Antes de enviar seu pull request, certifique-se de que todos os testes passam.
```bash
cargo test
```
8. **Faça commit das alterações**: Faça commit de suas alterações com uma mensagem significativa.
```bash
git commit -m "Descreva suas alterações"
```
9. **Mantenha seu fork sincronizado**: Antes de fazer push, sincronize seu fork com o repositório upstream.
```bash
git fetch upstream
git checkout <sua-branch>
git rebase upstream/main
```
Se houver conflitos, resolva-os antes de continuar.

10. **Faça push das alterações**: Faça push da sua branch para seu fork no GitHub.
```bash
git push origin feature/sua-funcionalidade
```
Nota: Se você fez rebase da sua branch e o push for rejeitado, você pode precisar usar `--force` com cautela, mas isso deve geralmente ser evitado quando possível.

## Abrindo um Pull Request

- **Certifique-se de que sua branch está atualizada com `main`**: Siga os passos de sincronização acima antes de abrir um pull request.
- **Crie um Pull Request**: Após fazer push da sua branch para seu fork, abra um pull request (PR) da sua branch para a branch `main` do repositório original.
- **Revisão e Feedback**: Uma vez que seu PR é enviado, a equipe revisará suas alterações. Você pode ser solicitado a fazer algumas melhorias ou corrigir problemas antes que seja mesclado.

### Melhores Práticas para Abrir um Pull Request

- Sempre forneça uma descrição clara e concisa do que o PR aborda.
- Certifique-se de que seu código segue as diretrizes de estilo do projeto.
- Garanta que o código está bem testado e todos os testes passam.
- Use mensagens de commit significativas que descrevem as alterações sendo feitas.
- Para mudanças significativas na funcionalidade principal, inclua uma descrição detalhada explicando:
- A lógica por trás das mudanças
- Quaisquer impactos potenciais no código existente
- Planos para lidar com código depreciado
- Considerações de desempenho (por exemplo, uso de memória, decisões de referência vs. clone)

### Executando `cargo fmt` e `cargo test`

Antes de enviar um pull request, certifique-se de executar `cargo fmt` para formatar o código e `cargo test` para garantir que todos os testes passem.

```bash
cargo fmt
cargo test
```

Obrigado por nos ajudar a melhorar o projeto!
49 changes: 42 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,44 @@
# RPython
Implementação em Rust de uma linguagem de programação com sintaxe semelhante ao python.
## Configuração do ambiente:
### Instalação do RUST em ambiente Linux/MacOS e WSL2
# RPython 🚀

```curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh ```
[![Rust](https://img.shields.io/badge/rust-stable-orange.svg)](https://www.rust-lang.org/)
[![GitHub issues](https://img.shields.io/github/issues/UnBCIC-TP2/r-python)](https://github.com/UnBCIC-TP2/r-python/issues)
[![CI Status](https://img.shields.io/github/actions/workflow/status/UnBCIC-TP2/r-python/ci.yml?branch=main&label=ci-status&color=blue)](https://github.com/UnBCIC-TP2/r-python/actions)

## Sugestão de padronização de commits
Como proposto em sala, segue um repositório em português que detalha padrões de commits semânticos adotados no mercado: [Commit Semântico](https://github.com/iuricode/padroes-de-commits)

Um compilador experimental implementado em Rust que interpreta uma linguagem com sintaxe similar ao Python. Este projeto foi desenvolvido como ferramenta de aprendizado para conceitos de técnicas de programação.

## 📋 Sobre o Projeto

RPython é um projeto educacional que visa:
- Implementar um compilador funcional em Rust
- Explorar conceitos fundamentais de técnicas de programação
- Criar uma linguagem com sintaxe amigável similar ao Python

## 🤝 Contribuindo

Adoraríamos contar com sua contribuição! Por favor, leia nossos guias de contribuição:
- [Guia de Contribuição em Português](CONTRIBUTING_pt.md)
- [Contributing Guidelines in English](CONTRIBUTING_en.md)

## 🚀 Começando

### Pré-requisitos

- Rust (última versão estável)
- Cargo (gerenciador de pacotes do Rust)
- Git (para clonar o repositório)
- Editor de texto ou IDE de sua preferência

### Configuração do Ambiente

1. Primeiro, instale o Rust e Cargo usando rustup:
- Windows:
- Baixe e execute rustup-init.exe em https://rustup.rs
- Siga as instruções do instalador
- Linux/macOS:
- Abra o terminal e execute:
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
- Siga as instruções do instalador
- Reinicie seu terminal após a instalação
Loading