Skip to content

Commit

Permalink
Merge pull request #3 from ahnaf-tahmid-chowdhury/develop
Browse files Browse the repository at this point in the history
Version 0.1.0
  • Loading branch information
ahnaf-tahmid-chowdhury authored Sep 1, 2023
2 parents 40516c5 + b8e33f7 commit a8a2f29
Show file tree
Hide file tree
Showing 12 changed files with 1,746 additions and 127 deletions.
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Bug Report
about: Report a bug or issue to enhance the quality of NuclearBoy
title: '[BUG] Concise description of the bug'
labels: bug
assignees: ''
---

**Bug Description**

Explain the bug clearly and concisely, detailing the issue you encountered.

**Steps to Reproduce**

Provide a step-by-step guide on how to reproduce the bug:

1. Step 1
2. Step 2
3. ...

**Expected Outcome**

A brief description of what you expected to happen instead.

**Screenshots/Logs**

If applicable, attach relevant screenshots, error logs, or code snippets to provide visual context.

**Environment Information:**

- Operating System: [e.g. Ubuntu 22.04]
- NuclearBoy Version: [e.g. 0.1.0]
- Python Version: [e.g. 3.11.4]
- Relevant Package Versions: [e.g. PyNE 0.7.1]
- Additional relevant details

**Additional Context**

Any other contextual information that could assist in understanding the bug.
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Feature Request
about: Suggest enhancements or new features to elevate NuclearBoy
title: '[FEATURE] Concise description of the feature'
labels: enhancement
assignees: ''
---

**Feature Description**

Provide a clear and detailed description of the enhancement or feature you're proposing.

**Use Case**

Explain the context in which this feature would be valuable, along with its potential benefits.

**Proposed Solution**

If you have a specific solution in mind, describe it comprehensively. If not, outline the problem in detail.

**Alternatives Considered**

Share any alternative solutions or approaches you've considered, and why you believe your proposal is superior.

**Additional Context**

Include any other pertinent information, such as relevant industry trends or user preferences.
479 changes: 479 additions & 0 deletions .github/logo/nuclear-boy.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions .github/pull-request-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: Pull Request
about: Submit changes to NuclearBoy for review and inclusion
title: '[PR] Concise description of your changes'
labels: enhancement
assignees: ''
---

**Pull Request Description**

Explain the purpose and context of your pull request. What changes have you made and why?

**Related Issue(s)**

If this pull request is related to an open issue, provide the issue number and a brief description.

**Changes Made**

A clear and concise description of the changes you've made in this pull request.

**Steps to Test**

Provide step-by-step instructions on how the reviewer can test your changes:

1. Step 1
2. Step 2
3. ...

**Screenshots/Logs**

If applicable, include screenshots, output logs, or other visuals that help illustrate the changes.

**Checklist**

- [ ] I have tested these changes thoroughly.
- [ ] I have added/updated relevant documentation.
- [ ] My code follows the established coding style and guidelines.
- [ ] All new and existing tests passed.
- [ ] I have updated the relevant changelog or release notes.

**Environment Information**

- Operating System: [e.g. Ubuntu 22.04]
- Python Version: [e.g. 3.10.6]
- Relevant Package Versions: [e.g. PyNE 0.7.0, OpenMC 0.13.1-dev]

**Additional Context**

Any extra context or information that the reviewer should know about the changes.

**Screenshots**

If applicable, provide screenshots or visuals demonstrating the changes.

**Reviewer Notes**

Notes to the reviewer, if needed.

**Please confirm that you have followed our contributing guidelines and code of conduct.**

[ ] I have read and followed the [Contributing Guidelines](../CONTRIBUTING.md)
[ ] I have adhered to the [Code of Conduct](../CODE_OF_CONDUCT.md)
50 changes: 50 additions & 0 deletions .github/workflows/run_build_and_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build and Test

on:
# allows running workflows manually
workflow_dispatch:

push:
branches:
- develop
paths:
- '.github/workflows/run_build_and_test.yml'
- 'install-nuclear-boy.sh'
- 'tests/**'

jobs:
main:
runs-on: ubuntu-latest

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 5120
swap-size-mb: 2048
remove-dotnet: 'true'
remove-android: 'true'
remove-docker-images: 'true'
remove-codeql: 'true'

- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11

- name: Install NuclearBoy
run: |
./install-nuclear-boy.sh -d ${GITHUB_WORKSPACE} \
-e nuclear-boy \
-g ${GITHUB_WORKSPACE}/nuclear-boy/G4Data \
-c ${GITHUB_WORKSPACE}/nuclear-boy/CrossSectionData
- name: Run tests
run: |
source ${GITHUB_WORKSPACE}/nuclear-boy/nuclear-boy
nuclear-boy activate
python -m pip install pytest
python -m pytest -ra tests
55 changes: 53 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,58 @@
# Changelog


## [0.0.1] - 31/08/2023
## [v0.1.0] - 01/09/2023

### Added
- New command-line interface (CLI) for managing the NuclearBoy environment and its components. (#3)
- Support for specifying the Geant4 data library and cross section library paths during installation and through CLI. (#3)
- Option to automatically download Geant4 data and cross sections during installation. (#3)
- Ability to update individual components (Geant4, DAGMC, OpenMC, PyNE) using the CLI. (#3)
- `endf` command to set the cross-section data library path for different libraries (ENDF/B versions). (#3)
- `uninstall` command to completely uninstall the NuclearBoy toolkit. (#3)
- Quick installation option allowing configuration options to be provided directly from the command line. (#3)
- Include a build status and a release version badge. (#3)

### Changed
- Enhanced the user experience by providing a more comprehensive CLI for managing the NuclearBoy environment. (#3)
- Improved documentation with clear instructions and examples for using the new CLI commands. (#3)
- Updated installation process to include new configuration options in the script. (#3)
- Enhanced error handling and user feedback during installation and updates. (#3)
- Updated and improved the script's help messages to explain the new CLI commands and options. (#3)

### Fixed
- Addressed minor bugs and issues from the previous version. (#3)
- Improved compatibility and robustness across different Linux-based systems. (#3)

### Updated
- Upgraded Geant4 version to 11.1.2. (#3)
- Improved overall reliability and stability of the installation process. (#3)
- Updated package recommendations in `packages.txt`. (#3)

### Added Project Enhancements
- Added `build_and_test.yml` GitHub Actions workflow for automated testing. (#3)
- Added `test_build.py` to conduct testing using pytest. (#3)
- Added templates for GitHub issues and pull requests (ISSUE_TEMPLATE, pull request template). (#3)
- Included CONTRIBUTING.md and CODE_OF_CONDUCT.md to facilitate contribution guidelines and code of conduct. (#3)
- Included SECURITY.md to facilitate security guidelines. (#3)
- Added a logo for the project.(#3)

### Documentation
- Updated and expanded the README to include detailed information about the new CLI commands and options.(#3)
- Improved clarity and organization of installation instructions.(#3)
- Added information about the new features and improvements in version 0.1.0.(#3)

### Miscellaneous
- Other minor improvements, optimizations, and code refinements.(#3)

### Deprecated
- Deprecated the old method of environment activation and program usage. (#3)

[v0.1.0]: https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/releases/tag/0.1.0



## [v0.0.1] - 30/08/2023

### Added
- Initial release of NuclearBoy Installer Script.
Expand All @@ -22,4 +73,4 @@
### Fixed
- Set cython<3 (#2)

[0.0.1]: https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/releases/tag/0.0.1
[v0.0.1]: https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/releases/tag/0.0.1
43 changes: 43 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Code of Conduct

We, the contributors and maintainers of the NuclearBoy project, are committed to fostering an inclusive and welcoming community. This Code of Conduct outlines our expectations for all those who participate in our project, as well as the consequences for unacceptable behavior.

## Our Pledge

As members, contributors, and leaders, we commit to fostering an environment within our community that is free from harassment, irrespective of age, body size, disability (visible or invisible), ethnicity, sex characteristics, gender identity and expression, experience level, educational background, economic status, nationality, physical appearance, race, caste, color, religion, or sexual identity and orientation.

Our pledge is to engage in behaviors and interactions that promote a community characterized by openness, inclusivity, diversity, and overall well-being.

## Expected Behavior

- Displaying empathy and kindness when interacting with others
- Showing respect for diverse opinions, perspectives, and backgrounds
- Offering and gracefully receiving constructive feedback
- Taking accountability, apologizing to those impacted by our errors, and growing through the process
- Prioritizing the collective well-being of the community, rather than just individual interests

## Unacceptable Behavior

Unacceptable behaviors include, but are not limited to:

- Engaging in sexualized language, imagery, or unwelcome advances
- Participating in trolling, derogatory comments, or personal/political attacks
- Engaging in public or private harassment
- Sharing others' private information, like physical or email addresses, without explicit consent
- Exhibiting behavior that could be deemed inappropriate in a professional context

## Consequences of Unacceptable Behavior

Unacceptable behavior will not be tolerated within the NuclearBoy community. Anyone asked to stop unacceptable behavior is expected to comply immediately.

If a participant engages in unacceptable behavior, the maintainers may take any action they deem appropriate, up to and including expulsion from the project's community and public communication channels, temporary or permanent bans, and reporting to appropriate authorities.

## Reporting

If you witness or experience behavior that violates this Code of Conduct, please contact the project maintainers at [Ahnaf Tahmid Chowdhury](mailto:tahmid@nse.mist.ac.bd). All reports will be kept confidential.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq
68 changes: 68 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Contributing to NuclearBoy

Thank you for your interest in contributing to **NuclearBoy**! We appreciate your efforts to improve the project and make it more useful for the nuclear physics community.

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [How Can I Contribute?](#how-can-i-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements](#suggesting-enhancements)
- [Submitting Pull Requests](#submitting-pull-requests)
- [Development Setup](#development-setup)
- [Coding Guidelines](#coding-guidelines)
- [License](#license)

## Code of Conduct

Please review and adhere to our [Code of Conduct](link-to-code-of-conduct) to ensure a respectful and inclusive environment for all contributors.

## How Can I Contribute?

### Reporting Bugs

If you encounter a bug while using **NuclearBoy**, we want to know! Please follow these steps:

1. Check the [existing issues](https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/issues) to see if the bug has already been reported.
2. If the bug is new, [open a new issue](https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/issues/new) with a detailed bug report using the provided [bug report template](.github/ISSUE_TEMPLATE/bug-report-template.md).
3. Provide a clear description of the bug, steps to reproduce it, and your environment details.

### Suggesting Enhancements

Have an idea for a new feature or improvement? We'd love to hear it! Here's what you can do:

1. Review the [existing issues](https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/issues) to avoid duplicate suggestions.
2. If your idea is new, [open a new issue](https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/issues/new) with a detailed description using the provided [feature request template](.github/ISSUE_TEMPLATE/feature-request-template.md).
3. Explain why you think this enhancement is valuable and how it could benefit the users.

### Submitting Pull Requests

Contributions from the community help us grow and improve **NuclearBoy**. Follow these steps to submit a pull request:

1. Fork the repository and create a new branch for your changes.
2. Make your modifications, adhering to the [coding guidelines](#coding-guidelines).
3. Test your changes thoroughly to ensure they work as intended.
4. [Open a new pull request](https://github.com/ahnaf-tahmid-chowdhury/NuclearBoy/compare) using the provided [pull request template](.github/pull-request-template.md).
5. Provide a clear description of the changes, the problem they solve, and the testing steps.

## Development Setup

If you're interested in contributing code, here's how to set up your development environment:

1. Fork the repository with branch `develop`.
1. Clone your fork of the repository: `git clone https://github.com/<USERNAME>/<REPOSITORY_NAME>.git`
2. Navigate to the project directory: `cd <REPOSITORY_NAME>`
3. Check out development branch: `git checkout develop`
4. Run the script: `./install-nuclear-boy.sh`
5. Install dependencies: `pip install -r packages.txt`
6. Run tests: `pytest -ra tests`

## Coding Guidelines

Please adhere to the established coding guidelines to maintain consistency across the project. This includes formatting, variable naming, and commenting practices. If you're not sure about something, feel free to ask for clarification in the relevant issue or pull request.

## License

By contributing to **NuclearBoy**, you agree that your contributions will be licensed under the project's [license](LICENSE). Your contributions will be acknowledged in the project's list of contributors.

Thank you for contributing to **NuclearBoy**!
Loading

0 comments on commit a8a2f29

Please sign in to comment.