Compare commits

...

10 Commits

Author SHA1 Message Date
SARTHAK SHISHODIA
9791a45ebd Merge e0d5ac11c6 into b9fd746973 2025-02-04 00:24:28 +00:00
Shmavon Gazanchyan
b9fd746973 Update README.md 2025-02-04 00:16:23 +00:00
Sammy Hori
aeba4b6c1f Merge pull request #1565 from Diegiwg/patch-1
feat: add Devopness entry to the data
2025-02-04 00:16:12 +00:00
Shmavon Gazanchyan
108c7b10a4 Update README.md 2025-02-04 00:14:29 +00:00
Sammy Hori
35c7ae728b Merge pull request #1566 from MunGell/remove-sirixdb
Removed SirixDB from the data.json for inactivity
2025-02-04 00:14:17 +00:00
Sammy Hori
5f83071e6e Removed SirixDB from the data.json for inactivity
The repo has had no commits for two years
2025-02-04 00:13:16 +00:00
Diego Queiroz
b5e6e14219 fix: tech list
Co-authored-by: Sammy Hori <git@sammyhori.com>
2025-02-02 07:33:48 -03:00
Diego Queiroz
dc8eaa529d feat: add devopness repo 2025-02-01 18:48:00 -03:00
sarthakshishodia20
e0d5ac11c6 ChangesMadeSecondTime 2025-01-22 22:03:10 +05:30
sarthakshishodia20
663f4c351e ChangesMadeBySarthakShishodia 2025-01-22 22:00:27 +05:30
3 changed files with 74 additions and 22 deletions

View File

@@ -1,5 +1,10 @@
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
import json import json
import os
import logging
# Configuring logging
logging.basicConfig(level=logging.INFO)
DATAFILE = "./data.json" DATAFILE = "./data.json"
TEMPLATEPATH = "./.github/" TEMPLATEPATH = "./.github/"
@@ -9,34 +14,61 @@ TARGETFILE = "./README.md"
def new_technology_dict(repo_technology): def new_technology_dict(repo_technology):
return {"link_id": repo_technology.lower(), "entries": []} return {"link_id": repo_technology.lower(), "entries": []}
technologies = {} # Function to log warnings for missing data
def log_warning(message):
logging.warning(message)
# Check if the data file exists
if not os.path.exists(DATAFILE):
log_warning(f"Data file {DATAFILE} does not exist.")
exit(1)
# Load data from the JSON file
try:
with open(DATAFILE, "r") as datafile: with open(DATAFILE, "r") as datafile:
data = json.loads(datafile.read()) data = json.loads(datafile.read())
except json.JSONDecodeError:
log_warning("Error: Failed to parse JSON data in the file.")
exit(1)
for technology in data["technologies"]: # Initialize technologies dictionary
technologies = {}
# Processing technologies
for technology in data.get("technologies", {}):
technologies[technology] = { technologies[technology] = {
"link_id": data["technologies"][technology], "link_id": data["technologies"].get(technology),
"entries": [], "entries": [],
} }
for repository in data["repositories"]: # Processing repositories
repo_technologies = repository["technologies"] for repository in data.get("repositories", []):
repo_technologies = repository.get("technologies", [])
if not repo_technologies:
log_warning(f"Repository {repository['name']} has no technologies listed.")
for repo_technology in repo_technologies: for repo_technology in repo_technologies:
if not technologies.get(repo_technology, False): if repo_technology not in technologies:
technologies[repo_technology] = new_technology_dict(repo_technology) technologies[repo_technology] = new_technology_dict(repo_technology)
log_warning(f"Technology {repo_technology} is newly added.")
technologies[repo_technology]["entries"].append(repository) technologies[repo_technology]["entries"].append(repository)
# Create Jinja2 environment and load the template
env = Environment(loader=FileSystemLoader(TEMPLATEPATH)) env = Environment(loader=FileSystemLoader(TEMPLATEPATH))
if not os.path.exists(os.path.join(TEMPLATEPATH, TEMPLATEFILE)):
log_warning(f"Template file {TEMPLATEFILE} does not exist in the provided path.")
exit(1)
template = env.get_template(TEMPLATEFILE) template = env.get_template(TEMPLATEFILE)
# Create categories from the technologies
categories = [] categories = []
for key, value in zip(technologies.keys(), technologies.values()): for key, value in technologies.items():
categories.append( categories.append(
{"title": key, "link_id": value["link_id"], "entries": value["entries"]} {"title": key, "link_id": value["link_id"], "entries": value["entries"]}
) )
# Sorting categories and entries
categories = sorted(categories, key=lambda x: x["title"].upper()) categories = sorted(categories, key=lambda x: x["title"].upper())
category_groups = {"Misc": []} category_groups = {"Misc": []}
for category in categories: for category in categories:
category["entries"] = sorted(category["entries"], key=lambda x: x["name"].upper()) category["entries"] = sorted(category["entries"], key=lambda x: x["name"].upper())
@@ -48,8 +80,28 @@ for category in categories:
else: else:
category_groups["Misc"].append(category) category_groups["Misc"].append(category)
sponsors = data["sponsors"] # Process sponsors
sponsors = data.get("sponsors", [])
output = template.render(category_groups=category_groups, categories=categories, sponsors=sponsors) # Generate Table of Contents (TOC)
toc = []
for category in categories:
toc.append(f"- [{category['title']}]({category['link_id']})")
open(TARGETFILE, "w").write(output) # Prepare context for rendering the template
context = {
"category_groups": category_groups,
"categories": categories,
"sponsors": sponsors,
"toc": toc # Adding TOC to context
}
# Rendering the README file
try:
output = template.render(context)
with open(TARGETFILE, "w") as targetfile:
targetfile.write(output)
logging.info("README file generated successfully.")
except Exception as e:
log_warning(f"Error while rendering template: {e}")
exit(1)

View File

@@ -194,7 +194,6 @@ If you would like to be guided through how to contribute to a repository on GitH
- [Reddit Enhancement Suite](https://github.com/honestbleeps/Reddit-Enhancement-Suite) _(label: help-wanted)_ <br> A browser extension to enhance the Reddit browsing experience. - [Reddit Enhancement Suite](https://github.com/honestbleeps/Reddit-Enhancement-Suite) _(label: help-wanted)_ <br> A browser extension to enhance the Reddit browsing experience.
- [Semantic-UI-React](https://github.com/Semantic-Org/Semantic-UI-React) _(label: good first issue)_ <br> The official React integration for Semantic UI. - [Semantic-UI-React](https://github.com/Semantic-Org/Semantic-UI-React) _(label: good first issue)_ <br> The official React integration for Semantic UI.
- [serverless](https://github.com/serverless/serverless) _(label: good first issue)_ <br> The Serverless Framework - [serverless](https://github.com/serverless/serverless) _(label: good first issue)_ <br> The Serverless Framework
- [SirixDB](https://github.com/sirixdb/sirix-svelte-front-end) _(label: good first issue)_ <br> A Svelte/Sapper based web front-end for SirixDB, which is a versioned NoSQL document store (XML and JSON) written in Java.
- [Storybook JS](https://github.com/storybookjs/storybook) _(label: good first issue)_ <br> Storybook is a frontend workshop for building UI components and pages in isolation. - [Storybook JS](https://github.com/storybookjs/storybook) _(label: good first issue)_ <br> Storybook is a frontend workshop for building UI components and pages in isolation.
- [stryker](https://github.com/stryker-mutator/stryker) _(label: 👶 Good first issue)_ <br> The JavaScript mutation testing framework - [stryker](https://github.com/stryker-mutator/stryker) _(label: 👶 Good first issue)_ <br> The JavaScript mutation testing framework
- [Superalgos](https://github.com/Superalgos/Superalgos) _(label: good first issue)_ <br> A completely Open Source crypto trading bot rewarding good contributions with the SA(Superalgos)-Token. - [Superalgos](https://github.com/Superalgos/Superalgos) _(label: good first issue)_ <br> A completely Open Source crypto trading bot rewarding good contributions with the SA(Superalgos)-Token.
@@ -363,6 +362,7 @@ If you would like to be guided through how to contribute to a repository on GitH
- [Amplication](https://github.com/amplication/amplication) _(label: good first issue)_ <br> Amplication is an open-source development tool. It helps you develop quality Node.js applications without spending time on repetitive coding tasks. - [Amplication](https://github.com/amplication/amplication) _(label: good first issue)_ <br> Amplication is an open-source development tool. It helps you develop quality Node.js applications without spending time on repetitive coding tasks.
- [Berry - Active development trunk for Yarn](https://github.com/yarnpkg/berry) _(label: good first issue)_ <br> Fast, reliable, and secure dependency management. - [Berry - Active development trunk for Yarn](https://github.com/yarnpkg/berry) _(label: good first issue)_ <br> Fast, reliable, and secure dependency management.
- [Booster](https://github.com/boostercloud/booster) _(label: good first issue)_ <br> A truly serverless framework, write your code and deploy it in seconds without any server configuration files. - [Booster](https://github.com/boostercloud/booster) _(label: good first issue)_ <br> A truly serverless framework, write your code and deploy it in seconds without any server configuration files.
- [Devopness](https://github.com/devopness/devopness) _(label: good first issue)_ <br> Devopness aims to drastically simplify the way we manage cloud applications and multi cloud infrastructure in a secure and productive way.
- [Graphback](https://github.com/aerogear/graphback) _(label: good first issue)_ <br> A CLI and runtime framework to generate a GraphQL API in seconds. - [Graphback](https://github.com/aerogear/graphback) _(label: good first issue)_ <br> A CLI and runtime framework to generate a GraphQL API in seconds.
- [H2O Wave](https://github.com/h2oai/wave) _(label: good first issue)_ <br> Realtime Web Apps and Dashboards framework for Python and R. Suited (not only) for AI audience. - [H2O Wave](https://github.com/h2oai/wave) _(label: good first issue)_ <br> Realtime Web Apps and Dashboards framework for Python and R. Suited (not only) for AI audience.
- [Hasura GraphQL Engine](https://github.com/hasura/graphql-engine) _(label: good first issue)_ <br> Blazing fast, instant realtime GraphQL APIs on Postgres with fine grained access control, also trigger webhooks on database events. - [Hasura GraphQL Engine](https://github.com/hasura/graphql-engine) _(label: good first issue)_ <br> Blazing fast, instant realtime GraphQL APIs on Postgres with fine grained access control, also trigger webhooks on database events.

View File

@@ -913,15 +913,6 @@
], ],
"description": "Ramda Adjunct is the most popular and most comprehensive set of functional utilities for use with Ramda, providing a variety of useful, well tested functions with excellent documentation." "description": "Ramda Adjunct is the most popular and most comprehensive set of functional utilities for use with Ramda, providing a variety of useful, well tested functions with excellent documentation."
}, },
{
"name": "SirixDB",
"link": "https://github.com/sirixdb/sirix-svelte-front-end",
"label": "good first issue",
"technologies": [
"JavaScript"
],
"description": "A Svelte/Sapper based web front-end for SirixDB, which is a versioned NoSQL document store (XML and JSON) written in Java."
},
{ {
"name": "json-editor", "name": "json-editor",
"link": "https://github.com/json-editor/json-editor", "link": "https://github.com/json-editor/json-editor",
@@ -1084,6 +1075,15 @@
], ],
"description": "Component framework that runs at build time, converting your components into highly efficient imperative code that surgically updates the DOM." "description": "Component framework that runs at build time, converting your components into highly efficient imperative code that surgically updates the DOM."
}, },
{
"name": "Devopness",
"link": "https://github.com/devopness/devopness",
"label": "good first issue",
"technologies": [
"TypeScript"
],
"description": "Devopness aims to drastically simplify the way we manage cloud applications and multi cloud infrastructure in a secure and productive way."
},
{ {
"name": "Julia Language: Help wanted", "name": "Julia Language: Help wanted",
"link": "https://github.com/JuliaLang/julia", "link": "https://github.com/JuliaLang/julia",