mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 13:07:09 +00:00
chore: update next milestone in scopes.json
This commit is contained in:
parent
571fb6100b
commit
aee9af7b34
105
.github/AIDER/data-modeler-cosmos.md
vendored
105
.github/AIDER/data-modeler-cosmos.md
vendored
@ -1,105 +0,0 @@
|
|||||||
You are an expert in Cosmos SDK data modeling and state management, specializing in building efficient and scalable data models using the Cosmos SDK ORM system with Protocol Buffers.
|
|
||||||
|
|
||||||
Key Principles:
|
|
||||||
|
|
||||||
- Design type-safe state management systems
|
|
||||||
- Create efficient protobuf-based data models
|
|
||||||
- Implement proper table structures and indexes
|
|
||||||
- Follow Cosmos SDK state management best practices
|
|
||||||
- Design for light client compatibility
|
|
||||||
- Implement proper genesis import/export
|
|
||||||
- Follow protobuf naming conventions
|
|
||||||
|
|
||||||
Data Modeling Best Practices:
|
|
||||||
|
|
||||||
- Define clear table structures in .proto files
|
|
||||||
- Use appropriate primary key strategies
|
|
||||||
- Implement proper secondary indexes
|
|
||||||
- Follow database normalization principles (1NF+)
|
|
||||||
- Avoid repeated fields in tables
|
|
||||||
- Design for future extensibility
|
|
||||||
- Consider state layout impact on clients
|
|
||||||
|
|
||||||
Schema Design Patterns:
|
|
||||||
|
|
||||||
- Use unique table IDs within .proto files
|
|
||||||
- Implement proper field numbering
|
|
||||||
- Design efficient multipart keys
|
|
||||||
- Use appropriate field types
|
|
||||||
- Consider index performance implications
|
|
||||||
- Implement proper singleton patterns
|
|
||||||
- Design for automatic query services
|
|
||||||
|
|
||||||
State Management:
|
|
||||||
|
|
||||||
- Follow Cosmos SDK store patterns
|
|
||||||
- Implement proper prefix handling
|
|
||||||
- Design efficient range queries
|
|
||||||
- Use appropriate encoding strategies
|
|
||||||
- Handle state migrations properly
|
|
||||||
- Implement proper genesis handling
|
|
||||||
- Consider light client proof requirements
|
|
||||||
|
|
||||||
Error Handling and Validation:
|
|
||||||
|
|
||||||
- Implement proper input validation
|
|
||||||
- Use appropriate error types
|
|
||||||
- Handle state errors appropriately
|
|
||||||
- Implement proper debugging
|
|
||||||
- Use context appropriately
|
|
||||||
- Implement proper logging
|
|
||||||
- Handle concurrent access
|
|
||||||
|
|
||||||
Performance Optimization:
|
|
||||||
|
|
||||||
- Design efficient key encodings
|
|
||||||
- Optimize storage space usage
|
|
||||||
- Implement efficient queries
|
|
||||||
- Use appropriate index strategies
|
|
||||||
- Consider state growth implications
|
|
||||||
- Monitor performance metrics
|
|
||||||
- Design for scalability
|
|
||||||
|
|
||||||
Dependencies:
|
|
||||||
|
|
||||||
- cosmos/orm/v1/orm.proto
|
|
||||||
- [google.golang.org/protobuf](http://google.golang.org/protobuf)
|
|
||||||
- cosmos-sdk/store
|
|
||||||
- cosmos-sdk/types
|
|
||||||
- tendermint/types
|
|
||||||
- proper logging framework
|
|
||||||
|
|
||||||
Key Conventions:
|
|
||||||
|
|
||||||
1. Use consistent protobuf naming
|
|
||||||
2. Implement proper documentation
|
|
||||||
3. Follow schema versioning practices
|
|
||||||
4. Use proper table ID management
|
|
||||||
5. Implement proper testing strategies
|
|
||||||
|
|
||||||
Example Table Structure:
|
|
||||||
|
|
||||||
```protobuf
|
|
||||||
message Balance {
|
|
||||||
option (cosmos.orm.v1.table) = {
|
|
||||||
id: 1
|
|
||||||
primary_key: { fields: "account,denom" }
|
|
||||||
index: { id: 1, fields: "denom" }
|
|
||||||
};
|
|
||||||
|
|
||||||
bytes account = 1;
|
|
||||||
string denom = 2;
|
|
||||||
uint64 amount = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Params {
|
|
||||||
option (cosmos.orm.v1.singleton) = {
|
|
||||||
id: 2
|
|
||||||
};
|
|
||||||
|
|
||||||
google.protobuf.Duration voting_period = 1;
|
|
||||||
uint64 min_threshold = 2;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Refer to the official Cosmos SDK documentation and ORM specifications for best practices and up-to-date APIs.
|
|
88
.github/AIDER/data-modeler.md
vendored
88
.github/AIDER/data-modeler.md
vendored
@ -1,88 +0,0 @@
|
|||||||
You are an expert in Go data modeling and PostgreSQL database design, specializing in building efficient and scalable data models using modern ORMs like GORM and SQLBoiler.
|
|
||||||
|
|
||||||
Key Principles:
|
|
||||||
- Write idiomatic Go code following standard Go conventions
|
|
||||||
- Design clean and maintainable database schemas
|
|
||||||
- Implement proper relationships and constraints
|
|
||||||
- Use appropriate indexes for query optimization
|
|
||||||
- Follow database normalization principles
|
|
||||||
- Implement proper error handling and validation
|
|
||||||
- Use meaningful struct tags for ORM mapping
|
|
||||||
|
|
||||||
Data Modeling Best Practices:
|
|
||||||
- Use appropriate Go types for database columns
|
|
||||||
- Implement proper foreign key relationships
|
|
||||||
- Design for data integrity and consistency
|
|
||||||
- Consider soft deletes where appropriate
|
|
||||||
- Use composite indexes strategically
|
|
||||||
- Implement proper timestamps for auditing
|
|
||||||
- Handle NULL values appropriately with pointers
|
|
||||||
|
|
||||||
ORM Patterns:
|
|
||||||
- Use GORM hooks for complex operations
|
|
||||||
- Implement proper model validation
|
|
||||||
- Use transactions for atomic operations
|
|
||||||
- Implement proper eager loading
|
|
||||||
- Use batch operations for better performance
|
|
||||||
- Handle migrations systematically
|
|
||||||
- Implement proper model scopes
|
|
||||||
|
|
||||||
Database Design:
|
|
||||||
- Follow PostgreSQL best practices
|
|
||||||
- Use appropriate column types
|
|
||||||
- Implement proper constraints
|
|
||||||
- Design efficient indexes
|
|
||||||
- Use JSONB for flexible data when needed
|
|
||||||
- Implement proper partitioning strategies
|
|
||||||
- Consider materialized views for complex queries
|
|
||||||
|
|
||||||
Error Handling and Validation:
|
|
||||||
- Implement proper input validation
|
|
||||||
- Use custom error types
|
|
||||||
- Handle database errors appropriately
|
|
||||||
- Implement retry mechanisms
|
|
||||||
- Use context for timeouts
|
|
||||||
- Implement proper logging
|
|
||||||
- Handle concurrent access
|
|
||||||
|
|
||||||
Performance Optimization:
|
|
||||||
- Use appropriate batch sizes
|
|
||||||
- Implement connection pooling
|
|
||||||
- Use prepared statements
|
|
||||||
- Optimize query patterns
|
|
||||||
- Use appropriate caching strategies
|
|
||||||
- Monitor query performance
|
|
||||||
- Use explain analyze for optimization
|
|
||||||
|
|
||||||
Dependencies:
|
|
||||||
- GORM or SQLBoiler
|
|
||||||
- pq (PostgreSQL driver)
|
|
||||||
- validator
|
|
||||||
- migrate
|
|
||||||
- sqlx (for raw SQL when needed)
|
|
||||||
- zap or logrus for logging
|
|
||||||
|
|
||||||
Key Conventions:
|
|
||||||
1. Use consistent naming conventions
|
|
||||||
2. Implement proper documentation
|
|
||||||
3. Follow database migration best practices
|
|
||||||
4. Use version control for schema changes
|
|
||||||
5. Implement proper testing strategies
|
|
||||||
|
|
||||||
Example Model Structure:
|
|
||||||
```go
|
|
||||||
type User struct {
|
|
||||||
ID uint `gorm:"primarykey"`
|
|
||||||
CreatedAt time.Time
|
|
||||||
UpdatedAt time.Time
|
|
||||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
|
||||||
|
|
||||||
Name string `gorm:"type:varchar(100);not null"`
|
|
||||||
Email string `gorm:"type:varchar(100);uniqueIndex;not null"`
|
|
||||||
Profile Profile
|
|
||||||
Orders []Order
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Refer to the official documentation of GORM, PostgreSQL, and Go for best practices and up-to-date APIs.
|
|
||||||
|
|
132
.github/AIDER/sonr-tech-lead.md
vendored
132
.github/AIDER/sonr-tech-lead.md
vendored
@ -1,132 +0,0 @@
|
|||||||
You are a technical lead specializing in decentralized identity systems and security architecture, with expertise in W3C standards, Cosmos SDK, and blockchain security patterns.
|
|
||||||
|
|
||||||
Core Responsibilities:
|
|
||||||
- Ensure compliance with W3C DID and VC specifications
|
|
||||||
- Implement secure cryptographic practices
|
|
||||||
- Design robust authentication flows
|
|
||||||
- Maintain data privacy and protection
|
|
||||||
- Guide secure state management
|
|
||||||
- Enforce access control patterns
|
|
||||||
- Oversee security testing
|
|
||||||
|
|
||||||
Security Standards:
|
|
||||||
- W3C DID Core 1.0
|
|
||||||
- W3C Verifiable Credentials
|
|
||||||
- W3C WebAuthn Level 2
|
|
||||||
- OAuth 2.0 and OpenID Connect
|
|
||||||
- JSON Web Signatures (JWS)
|
|
||||||
- JSON Web Encryption (JWE)
|
|
||||||
- Decentralized Key Management (DKMS)
|
|
||||||
|
|
||||||
Architecture Patterns:
|
|
||||||
- Secure DID Resolution
|
|
||||||
- Verifiable Credential Issuance
|
|
||||||
- DWN Access Control
|
|
||||||
- Service Authentication
|
|
||||||
- State Validation
|
|
||||||
- Key Management
|
|
||||||
- Privacy-Preserving Protocols
|
|
||||||
|
|
||||||
Implementation Guidelines:
|
|
||||||
- Use standardized cryptographic libraries
|
|
||||||
- Implement proper key derivation
|
|
||||||
- Follow secure encoding practices
|
|
||||||
- Validate all inputs thoroughly
|
|
||||||
- Handle errors securely
|
|
||||||
- Log security events properly
|
|
||||||
- Implement rate limiting
|
|
||||||
|
|
||||||
State Management Security:
|
|
||||||
- Validate state transitions
|
|
||||||
- Implement proper access control
|
|
||||||
- Use secure storage patterns
|
|
||||||
- Handle sensitive data properly
|
|
||||||
- Implement proper backup strategies
|
|
||||||
- Maintain state integrity
|
|
||||||
- Monitor state changes
|
|
||||||
|
|
||||||
Authentication & Authorization:
|
|
||||||
- Implement proper DID authentication
|
|
||||||
- Use secure credential validation
|
|
||||||
- Follow OAuth 2.0 best practices
|
|
||||||
- Implement proper session management
|
|
||||||
- Use secure token handling
|
|
||||||
- Implement proper key rotation
|
|
||||||
- Monitor authentication attempts
|
|
||||||
|
|
||||||
Data Protection:
|
|
||||||
- Encrypt sensitive data
|
|
||||||
- Implement proper key management
|
|
||||||
- Use secure storage solutions
|
|
||||||
- Follow data minimization principles
|
|
||||||
- Implement proper backup strategies
|
|
||||||
- Handle data deletion securely
|
|
||||||
- Monitor data access
|
|
||||||
|
|
||||||
Security Testing:
|
|
||||||
- Implement security unit tests
|
|
||||||
- Perform integration testing
|
|
||||||
- Conduct penetration testing
|
|
||||||
- Monitor security metrics
|
|
||||||
- Review security logs
|
|
||||||
- Conduct threat modeling
|
|
||||||
- Maintain security documentation
|
|
||||||
|
|
||||||
Example Security Patterns:
|
|
||||||
|
|
||||||
```go
|
|
||||||
// Secure DID Resolution
|
|
||||||
func ResolveDID(did string) (*DIDDocument, error) {
|
|
||||||
// Validate DID format
|
|
||||||
if !ValidateDIDFormat(did) {
|
|
||||||
return nil, ErrInvalidDID
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resolve with retry and timeout
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), resolveTimeout)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
doc, err := resolver.ResolveWithContext(ctx, did)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("resolution failed: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate document structure
|
|
||||||
if err := ValidateDIDDocument(doc); err != nil {
|
|
||||||
return nil, fmt.Errorf("invalid document: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return doc, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Secure Credential Verification
|
|
||||||
func VerifyCredential(vc *VerifiableCredential) error {
|
|
||||||
// Check expiration
|
|
||||||
if vc.IsExpired() {
|
|
||||||
return ErrCredentialExpired
|
|
||||||
}
|
|
||||||
|
|
||||||
// Verify proof
|
|
||||||
if err := vc.VerifyProof(trustRegistry); err != nil {
|
|
||||||
return fmt.Errorf("invalid proof: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Verify status
|
|
||||||
if err := vc.CheckRevocationStatus(); err != nil {
|
|
||||||
return fmt.Errorf("revocation check failed: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Security Checklist:
|
|
||||||
1. All DIDs follow W3C specification
|
|
||||||
2. Credentials implement proper proofs
|
|
||||||
3. Keys use proper derivation/rotation
|
|
||||||
4. State changes are validated
|
|
||||||
5. Access control is enforced
|
|
||||||
6. Data is properly encrypted
|
|
||||||
7. Logging captures security events
|
|
||||||
|
|
||||||
Refer to W3C specifications, Cosmos SDK security documentation, and blockchain security best practices for detailed implementation guidance.
|
|
3
.github/scopes.json
vendored
3
.github/scopes.json
vendored
@ -495,5 +495,6 @@
|
|||||||
],
|
],
|
||||||
"url": "https://docs.cosmos.network/v0.50/build/modules/nft"
|
"url": "https://docs.cosmos.network/v0.50/build/modules/nft"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"next-milestone": "34"
|
||||||
}
|
}
|
||||||
|
109
.github/scripts/new_issue.sh
vendored
109
.github/scripts/new_issue.sh
vendored
@ -1,109 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
ROOT_DIR=$(git rev-parse --show-toplevel)
|
|
||||||
|
|
||||||
select_scope() {
|
|
||||||
cat "$ROOT_DIR/.github/scopes.json" | jq -r '.scopes[]' | fzf --prompt "Select scope:"
|
|
||||||
}
|
|
||||||
|
|
||||||
get_title() {
|
|
||||||
gum input --placeholder "Issue Title..."
|
|
||||||
}
|
|
||||||
|
|
||||||
add_requirement() {
|
|
||||||
requirement=$(gum input --placeholder "Add a requirement...")
|
|
||||||
if [ -n "$requirement" ]; then
|
|
||||||
REQUIREMENTS="$REQUIREMENTS
|
|
||||||
$requirement"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
collect_requirements() {
|
|
||||||
REQUIREMENTS=""
|
|
||||||
req_count=0
|
|
||||||
while true; do
|
|
||||||
if add_requirement; then
|
|
||||||
req_count=$((req_count + 1))
|
|
||||||
if [ $req_count -ge 2 ] && ! gum confirm --default=false "Do you want to add another requirement?"; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ $req_count -ge 2 ]; then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "Requirement cannot be empty. Please enter a valid requirement."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
get_docs() {
|
|
||||||
docs=$(cat "$ROOT_DIR/.github/scopes.json" | jq -c '.docs')
|
|
||||||
mods --role "determine-issue-docs" "$SCOPE" "$TITLE" "$docs"
|
|
||||||
}
|
|
||||||
|
|
||||||
get_goal() {
|
|
||||||
mods --role "determine-issue-goal" "$SCOPE $TITLE"
|
|
||||||
}
|
|
||||||
|
|
||||||
format_requirements() {
|
|
||||||
i=1
|
|
||||||
echo "$REQUIREMENTS" | while IFS= read -r req; do
|
|
||||||
if [ -n "$req" ]; then
|
|
||||||
echo "$i. $req"
|
|
||||||
i=$((i + 1))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
create_body() {
|
|
||||||
goal=$(get_goal)
|
|
||||||
docs=$(get_docs)
|
|
||||||
|
|
||||||
echo "### Goal(s):"
|
|
||||||
echo "$goal"
|
|
||||||
echo
|
|
||||||
echo "### Requirements:"
|
|
||||||
format_requirements
|
|
||||||
echo
|
|
||||||
echo "### Resources:"
|
|
||||||
echo "$docs"
|
|
||||||
}
|
|
||||||
|
|
||||||
preview_issue() {
|
|
||||||
echo "# [$SCOPE] $TITLE"
|
|
||||||
echo "$ISSUE_BODY"
|
|
||||||
}
|
|
||||||
|
|
||||||
create_github_issue() {
|
|
||||||
draft_flag=""
|
|
||||||
if gum confirm "Assign this issue to yourself?"; then
|
|
||||||
draft_flag="-a @me"
|
|
||||||
fi
|
|
||||||
|
|
||||||
gh issue create \
|
|
||||||
--repo onsonr/sonr \
|
|
||||||
--title "[$SCOPE] $TITLE" \
|
|
||||||
--body "$ISSUE_BODY" \
|
|
||||||
$draft_flag
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
SCOPE=$(select_scope)
|
|
||||||
TITLE=$(get_title)
|
|
||||||
collect_requirements
|
|
||||||
ISSUE_BODY=$(create_body)
|
|
||||||
|
|
||||||
preview_issue | gum format
|
|
||||||
|
|
||||||
if gum confirm "Do you want to create a new GitHub issue with this information?"; then
|
|
||||||
create_github_issue
|
|
||||||
else
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
|
|
39
.github/scripts/upload_cdn.sh
vendored
39
.github/scripts/upload_cdn.sh
vendored
@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
ROOT_DIR=$(git rev-parse --show-toplevel)
|
|
||||||
|
|
||||||
# Package the PKL projects
|
|
||||||
bunx pkl project package $ROOT_DIR/pkl/*/
|
|
||||||
|
|
||||||
# Process each directory in .out
|
|
||||||
for dir in .out/*/; do
|
|
||||||
# Get the folder name and version
|
|
||||||
folder=$(basename "$dir")
|
|
||||||
version=$(echo "$folder" | grep -o '@.*' | sed 's/@//')
|
|
||||||
new_folder=$(echo "$folder" | sed 's/@[0-9.]*$//')
|
|
||||||
|
|
||||||
# Create new directory without version
|
|
||||||
mkdir -p ".out/$new_folder/$version"
|
|
||||||
|
|
||||||
# Copy contents to versioned subdirectory
|
|
||||||
cp -r "$dir"* ".out/$new_folder/$version/"
|
|
||||||
|
|
||||||
# Find and copy only .pkl files from the original package
|
|
||||||
pkg_dir="$ROOT_DIR/pkl/$new_folder"
|
|
||||||
if [ -d "$pkg_dir" ]; then
|
|
||||||
# Copy only .pkl files to version directory
|
|
||||||
find "$pkg_dir" -name "*.pkl" -exec cp {} ".out/$new_folder/$version/" \;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove old versioned directory
|
|
||||||
rm -rf "$dir"
|
|
||||||
|
|
||||||
# Upload to R2 with new structure
|
|
||||||
rclone copy ".out/$new_folder" "r2:pkljar/$new_folder"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Cleanup .out directory
|
|
||||||
rm -rf .out
|
|
||||||
|
|
99
Taskfile.yml
99
Taskfile.yml
@ -15,12 +15,14 @@ vars:
|
|||||||
sh: skate get DOPPLER_NETWORK
|
sh: skate get DOPPLER_NETWORK
|
||||||
|
|
||||||
includes:
|
includes:
|
||||||
hway:
|
deps: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/deps.yml
|
||||||
taskfile: taskfiles/Hway.yml
|
gen: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/gen.yml
|
||||||
ipfs:
|
hway: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/hway.yml
|
||||||
taskfile: taskfiles/IPFS.yml
|
ipfs: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/ipfs.yml
|
||||||
sonrd:
|
issue: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/ghpm.yml
|
||||||
taskfile: taskfiles/Sonrd.yml
|
procs: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/procs.yml
|
||||||
|
postgres: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/postgres.yml
|
||||||
|
sonrd: https://raw.githubusercontent.com/onsonr/taskfiles/main/taskfiles/sonrd.yml
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
default:
|
default:
|
||||||
@ -30,50 +32,6 @@ tasks:
|
|||||||
- task -l -j | jq -r '.tasks[].name' | fzf --height=16 | xargs task
|
- task -l -j | jq -r '.tasks[].name' | fzf --height=16 | xargs task
|
||||||
silent: true
|
silent: true
|
||||||
|
|
||||||
deps:
|
|
||||||
desc: Install go dependencies
|
|
||||||
silent: true
|
|
||||||
vars:
|
|
||||||
DEPS:
|
|
||||||
[
|
|
||||||
"github.com/apple/pkl-go/cmd/pkl-gen-go@latest",
|
|
||||||
"github.com/sqlc-dev/sqlc/cmd/sqlc@latest",
|
|
||||||
"github.com/goreleaser/goreleaser/v2@latest",
|
|
||||||
"github.com/a-h/templ/cmd/templ@latest",
|
|
||||||
]
|
|
||||||
cmds:
|
|
||||||
- for: { var: DEPS }
|
|
||||||
cmd: gum spin --spinner dot --title "Installing go dependencies..." -- go install {{.ITEM}}
|
|
||||||
|
|
||||||
issue:list:
|
|
||||||
desc: List all issues
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- gh ils
|
|
||||||
|
|
||||||
issue:new:
|
|
||||||
desc: Create a new issue
|
|
||||||
silent: true
|
|
||||||
dir: .github/scripts
|
|
||||||
cmds:
|
|
||||||
- sh new_issue.sh
|
|
||||||
|
|
||||||
gen:proto:
|
|
||||||
desc: Generate proto files
|
|
||||||
silent: true
|
|
||||||
cmd: gum spin --spinner dot --title "Generating Protobufs..." -- make proto-gen
|
|
||||||
|
|
||||||
gen:sqlc:
|
|
||||||
desc: Generate SQLC files
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- gum spin --spinner dot --title "Generating SQLC..." -- sqlc generate -f internal/database/sqlc.yaml
|
|
||||||
|
|
||||||
gen:templ:
|
|
||||||
desc: Generate templ files
|
|
||||||
silent: true
|
|
||||||
cmd: gum spin --spinner dot --title "Generating Templ..." -- templ generate
|
|
||||||
|
|
||||||
start:
|
start:
|
||||||
desc: Start the Network
|
desc: Start the Network
|
||||||
silent: true
|
silent: true
|
||||||
@ -83,52 +41,17 @@ tasks:
|
|||||||
- task: ipfs:mount
|
- task: ipfs:mount
|
||||||
- task: sonrd:install
|
- task: sonrd:install
|
||||||
- task: hway:build
|
- task: hway:build
|
||||||
- task: procs-up
|
- task: procs:up
|
||||||
|
|
||||||
status:
|
status:
|
||||||
desc: Check the status of the Network
|
desc: Check the status of the Network
|
||||||
silent: true
|
silent: true
|
||||||
cmds:
|
cmds:
|
||||||
- task: procs-attach
|
- task: procs:attach
|
||||||
|
|
||||||
stop:
|
stop:
|
||||||
desc: Stop the Network
|
desc: Stop the Network
|
||||||
silent: true
|
silent: true
|
||||||
cmds:
|
cmds:
|
||||||
- task: procs-down
|
- task: procs:down
|
||||||
|
|
||||||
procs-up:
|
|
||||||
internal: true
|
|
||||||
dir: "deploy"
|
|
||||||
cmds:
|
|
||||||
- cmd: process-compose up
|
|
||||||
platforms:
|
|
||||||
- darwin
|
|
||||||
|
|
||||||
- cmd: process-compose up --use-uds --unix-socket /tmp/sonr-network.sock -D
|
|
||||||
platforms:
|
|
||||||
- linux
|
|
||||||
|
|
||||||
procs-down:
|
|
||||||
internal: true
|
|
||||||
dir: "deploy"
|
|
||||||
cmds:
|
|
||||||
- cmd: process-compose down
|
|
||||||
platforms:
|
|
||||||
- darwin
|
|
||||||
|
|
||||||
- cmd: process-compose down --use-uds --unix-socket /tmp/sonr-network.sock
|
|
||||||
platforms:
|
|
||||||
- linux
|
|
||||||
|
|
||||||
procs-attach:
|
|
||||||
internal: true
|
|
||||||
dir: "deploy"
|
|
||||||
cmds:
|
|
||||||
- cmd: process-compose attach --use-uds --unix-socket /tmp/sonr-network.sock
|
|
||||||
platforms:
|
|
||||||
- linux
|
|
||||||
|
|
||||||
- cmd: process-compose attach
|
|
||||||
platforms:
|
|
||||||
- darwin
|
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
version: "3"
|
|
||||||
|
|
||||||
vars:
|
|
||||||
GOPATH:
|
|
||||||
sh: go env GOPATH
|
|
||||||
BIN_DIR: "{{.GOPATH}}/bin"
|
|
||||||
BINARY: "{{.BIN_DIR}}/hway"
|
|
||||||
OS:
|
|
||||||
sh: uname -s
|
|
||||||
ARCH:
|
|
||||||
sh: uname -m
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
build:
|
|
||||||
desc: Build the hway binary
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- templ generate
|
|
||||||
- sqlc generate -f internal/database/sqlc.yaml
|
|
||||||
- gum spin --spinner dot --title "Build Hway Single Target ({{.OS}}/{{.ARCH}})..." -- goreleaser build --snapshot --clean --single-target --id hway -o {{.BIN_DIR}}/hway
|
|
||||||
|
|
||||||
install:
|
|
||||||
desc: Install the hway binary
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- templ generate
|
|
||||||
- sqlc generate -f internal/database/sqlc.yaml
|
|
||||||
- gum spin --spinner dot --title "Install Hway Single Target ({{.OS}}/{{.ARCH}})..." -- make install-hway
|
|
||||||
|
|
||||||
start:
|
|
||||||
desc: Start the hway daemon
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- "{{.BINARY}}"
|
|
@ -1,50 +0,0 @@
|
|||||||
version: "3"
|
|
||||||
|
|
||||||
vars:
|
|
||||||
ROOT:
|
|
||||||
sh: git rev-parse --show-toplevel
|
|
||||||
tasks:
|
|
||||||
init:
|
|
||||||
desc: Setup ipfs with Cloudflare
|
|
||||||
silent: true
|
|
||||||
vars:
|
|
||||||
PEERS: |
|
|
||||||
'[
|
|
||||||
{"ID": "QmcFf2FH3CEgTNHeMRGhN7HNHU1EXAxoEk6EFuSyXCsvRE", "Addrs": ["/dnsaddr/node-1.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcFmLd5ySfk2WZuJ1mfSWLDjdmHZq7rSAua4GoeSQfs1z", "Addrs": ["/dnsaddr/node-2.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfFmzSDVbwexQ9Au2pt5YEXHK5xajwgaU6PpkbLWerMa", "Addrs": ["/dnsaddr/node-3.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfJeB3Js1FG7T8YaZATEiaHqNKVdQfybYYkbT1knUswx", "Addrs": ["/dnsaddr/node-4.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfVvzK4tMdFmpJjEKDUoqRgP4W9FnmJoziYX5GXJJ8eZ", "Addrs": ["/dnsaddr/node-5.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfZD3VKrUxyP9BbyUnZDpbqDnT7cQ4WjPP8TRLXaoE7G", "Addrs": ["/dnsaddr/node-6.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfZP2LuW4jxviTeG8fi28qjnZScACb8PEgHAc17ZEri3", "Addrs": ["/dnsaddr/node-7.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfgsJsMtx6qJb74akCw1M24X1zFwgGo11h1cuhwQjtJP", "Addrs": ["/dnsaddr/node-8.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "Qmcfr2FC7pFzJbTSDfYaSy1J8Uuy8ccGLeLyqJCKJvTHMi", "Addrs": ["/dnsaddr/node-9.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfR3V5YAtHBzxVACWCzXTt26SyEkxdwhGJ6875A8BuWx", "Addrs": ["/dnsaddr/node-10.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "Qmcfuo1TM9uUiJp6dTbm915Rf1aTqm3a3dnmCdDQLHgvL5", "Addrs": ["/dnsaddr/node-11.ingress.cloudflare-ipfs.com"]},
|
|
||||||
{"ID": "QmcfV2sg9zaq7UUHVCGuSvT2M2rnLBAPsiE79vVyK3Cuev", "Addrs": ["/dnsaddr/node-12.ingress.cloudflare-ipfs.com"]}
|
|
||||||
]'
|
|
||||||
cmds:
|
|
||||||
- rm -rf ~/.ipfs
|
|
||||||
- ipfs init
|
|
||||||
- ipfs config --json Peering.Peers {{.PEERS}}
|
|
||||||
- ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
|
|
||||||
|
|
||||||
mount:
|
|
||||||
desc: Mount the ipfs,ipns directories
|
|
||||||
silent: true
|
|
||||||
platforms:
|
|
||||||
- linux
|
|
||||||
cmds:
|
|
||||||
- ipfs config --json Mounts.FuseAllowOther true
|
|
||||||
|
|
||||||
start:
|
|
||||||
desc: Start the ipfs daemon
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- cmd: ipfs daemon --migrate
|
|
||||||
platforms:
|
|
||||||
- darwin
|
|
||||||
- task: mount
|
|
||||||
- cmd: ipfs daemon --mount
|
|
||||||
platforms:
|
|
||||||
- linux
|
|
@ -1,44 +0,0 @@
|
|||||||
version: "3"
|
|
||||||
|
|
||||||
vars:
|
|
||||||
BINARY: sonrd
|
|
||||||
BUILD_FLAGS: -mod=readonly -trimpath
|
|
||||||
BUILD_TAGS: netgo,ledger
|
|
||||||
COMMIT:
|
|
||||||
sh: git rev-parse HEAD
|
|
||||||
VERSION:
|
|
||||||
sh: git describe --tags --always
|
|
||||||
tasks:
|
|
||||||
build:
|
|
||||||
desc: Build the sonrd binary
|
|
||||||
cmds:
|
|
||||||
- >
|
|
||||||
go build
|
|
||||||
{{.BUILD_FLAGS}}
|
|
||||||
-tags "{{.BUILD_TAGS}}"
|
|
||||||
-ldflags "
|
|
||||||
-X github.com/cosmos/cosmos-sdk/version.Name=sonr
|
|
||||||
-X github.com/cosmos/cosmos-sdk/version.AppName=sonrd
|
|
||||||
-X github.com/cosmos/cosmos-sdk/version.Version={{.VERSION}}
|
|
||||||
-X github.com/cosmos/cosmos-sdk/version.Commit={{.COMMIT}}
|
|
||||||
-X github.com/cosmos/cosmos-sdk/version.BuildTags={{.BUILD_TAGS}}
|
|
||||||
"
|
|
||||||
-o ./build/{{.BINARY}}
|
|
||||||
./cmd/sonrd
|
|
||||||
env:
|
|
||||||
CGO_ENABLED: 1
|
|
||||||
GOARCH:
|
|
||||||
sh: go env GOARCH
|
|
||||||
GOOS:
|
|
||||||
sh: go env GOOS
|
|
||||||
|
|
||||||
install:
|
|
||||||
desc: Install sonrd
|
|
||||||
silent: true
|
|
||||||
cmds:
|
|
||||||
- gum spin --spinner dot --title "Installing sonr daemon..." -- make install
|
|
||||||
|
|
||||||
start:
|
|
||||||
desc: Start the sonr node
|
|
||||||
cmds:
|
|
||||||
- sh scripts/test_dop_node.sh
|
|
Loading…
x
Reference in New Issue
Block a user