👍🎉 First off, thanks for taking the time to contribute! 🎉👍
IMP: Do not open up a GitHub issue if the bug is a security vulnerability, please refer to our security policy.
Visage is being developed in the open, and is constantly being improved by our users, contributors, and maintainers. It is because of you🫵 that we can bring great software to the community, and make this project successful.
This guide provides information on filing issues and guidelines for open source contributors. Please leave comments / suggestions if you find something is missing or incorrect.
I don't want to read this whole thing, I just have a question!!!
Keep our community approachable and respectable. This project and everyone participating in it is governed by the Hackerspace Mumbai's Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to community@hackmum.in.
Note: Please don't file an issue to ask a question.
We have an official message board with a detailed FAQ and where the community chimes in with helpful advice if you have questions.
Github Discussions, the official Visage message board
or you can begin a conversation on our social media:
To get an overview of the project, your first stop should be our README. Check out the project wiki for the overall design and architecture related information.
TODO: Depict and explain Repository structure
You need to have rudimentary git and GitHub knowledge
We have two types of GitHub issues:
Following the guidelines as mentioned in the respective template will help maintainers and the community understand your report 📝, reproduce the behavior 💻🖥️, and find related issues 🔍.
Note: If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
PR are always welcome, even if they only contain small fixes like typos or a few lines of code. But, please document it as an issue as per the PR template , get a discussion going, and ensure a maintainer has approved the go-ahead before starting to work on it.
If its hacktoberfest related, the maintainer will suitably label the PR as hacktoberfest.
Visage uses TUnit for automated tests.
# Run all tests
dotnet testTUnit supports selecting tests using --treenode-filter.
Filter format: /<Assembly>/<Namespace>/<Class name>/<Test name> (wildcards supported with *).
# Run all tests in a class
dotnet test --project tests\Visage.Test.Aspire\Visage.Test.Aspire.csproj --treenode-filter "/*/*/HealthEndpointTests/*"
# Run a single test by name
dotnet test --project tests\Visage.Test.Aspire\Visage.Test.Aspire.csproj --treenode-filter "/*/*/*/All_Http_Resources_Should_Have_Health_Endpoints"Many tests use [Category("...")] (for example RequiresAuth, AspireHealth, E2E).
TUnit supports property-based filters:
# Run RequiresAuth tests
dotnet test --project tests\Visage.Test.Aspire\Visage.Test.Aspire.csproj --treenode-filter "/*/*/*/*[Category=RequiresAuth]"
# Exclude RequiresAuth tests
dotnet test --project tests\Visage.Test.Aspire\Visage.Test.Aspire.csproj --treenode-filter "/*/*/*/*[Category!=RequiresAuth]"Note: Avoid vstest
--filterguidance for TUnit runs; prefer--treenode-filter.
Looking forward to your contribution 🙏