Skip to content

Commit

Permalink
[gaas] library generation (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
the-mikedavis authored Jun 9, 2021
1 parent 8babf6c commit 8393eb1
Show file tree
Hide file tree
Showing 17 changed files with 876 additions and 1 deletion.
166 changes: 166 additions & 0 deletions .credo.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# This file contains the configuration for Credo and you are probably reading
# this after creating it with `mix credo.gen.config`.
#
# If you find anything wrong or unclear in this file, please report an
# issue on GitHub: https://github.com/rrrene/credo/issues
#
%{
#
# You can have as many configs as you like in the `configs:` field.
configs: [
%{
#
# Run any exec using `mix credo -C <name>`. If no exec name is given
# "default" is used.
#
name: "default",
#
# These are the files included in the analysis:
files: %{
#
# You can give explicit globs or simply directories.
# In the latter case `**/*.{ex,exs}` will be used.
#
included: ["lib/", "src/", "test/", "web/", "apps/"],
excluded: [~r"/_build/", ~r"/deps/"]
},
#
# If you create your own checks, you must specify the source files for
# them here, so they can be loaded by Credo before running the analysis.
#
requires: ["deps/convene/lib/convene/check/*.ex"],
#
# If you want to enforce a style guide and need a more traditional linting
# experience, you can change `strict` to `true` below:
#
strict: false,
#
# If you want to use uncolored output by default, you can change `color`
# to `false` below:
#
color: true,
#
# You can customize the parameters of any check by adding a second element
# to the tuple.
#
# To disable a check put `false` as second element:
#
# {Credo.Check.Design.DuplicatedCode, false}
#
checks: [
#
## Cuatro Checks
#
{Convene.Check.ModulenameMatchesFilename,
excluded: [~r(test/support/)]},

#
## Consistency Checks
#
{Credo.Check.Consistency.ExceptionNames},
{Credo.Check.Consistency.LineEndings},
{Credo.Check.Consistency.ParameterPatternMatching},
{Credo.Check.Consistency.SpaceAroundOperators},
{Credo.Check.Consistency.SpaceInParentheses},
{Credo.Check.Consistency.TabsOrSpaces},

#
## Design Checks
#
# You can customize the priority of any check
# Priority values are: `low, normal, high, higher`
#
{Credo.Check.Design.AliasUsage, priority: :low},
# For some checks, you can also set other parameters
#
# If you don't want the `setup` and `test` macro calls in ExUnit tests
# or the `schema` macro in Ecto schemas to trigger DuplicatedCode, just
# set the `excluded_macros` parameter to `[:schema, :setup, :test]`.
#
{Credo.Check.Design.DuplicatedCode, excluded_macros: []},
# You can also customize the exit_status of each check.
# If you don't want TODO comments to cause `mix credo` to fail, just
# set this value to 0 (zero).
#
{Credo.Check.Design.TagTODO},
{Credo.Check.Design.TagFIXME},

#
## Readability Checks
#
{Credo.Check.Readability.FunctionNames},
{Credo.Check.Readability.LargeNumbers},
{Credo.Check.Readability.MaxLineLength, priority: :low, max_length: 80},
{Credo.Check.Readability.ModuleAttributeNames},
{Credo.Check.Readability.ModuleDoc},
{Credo.Check.Readability.ModuleNames},
{Credo.Check.Readability.ParenthesesOnZeroArityDefs},
{Credo.Check.Readability.ParenthesesInCondition},
{Credo.Check.Readability.PredicateFunctionNames},
{Credo.Check.Readability.PreferImplicitTry},
{Credo.Check.Readability.RedundantBlankLines},
{Credo.Check.Readability.StringSigils},
{Credo.Check.Readability.TrailingBlankLine},
{Credo.Check.Readability.TrailingWhiteSpace},
{Credo.Check.Readability.VariableNames},
{Credo.Check.Readability.Semicolons},
{Credo.Check.Readability.SpaceAfterCommas},

#
## Refactoring Opportunities
#
{Credo.Check.Refactor.DoubleBooleanNegation},
{Credo.Check.Refactor.CondStatements, false},
{Credo.Check.Refactor.CyclomaticComplexity},
{Credo.Check.Refactor.FunctionArity},
{Credo.Check.Refactor.LongQuoteBlocks, false},
{Credo.Check.Refactor.MatchInCondition},
{Credo.Check.Refactor.NegatedConditionsInUnless},
{Credo.Check.Refactor.NegatedConditionsWithElse},
{Credo.Check.Refactor.Nesting, false},
{Credo.Check.Refactor.PipeChainStart, false},
# excluded_argument_types: [:atom, :binary, :fn, :keyword], excluded_functions: []},
{Credo.Check.Refactor.UnlessWithElse},

#
## Warnings
#
{Credo.Check.Warning.BoolOperationOnSameValues},
{Credo.Check.Warning.ExpensiveEmptyEnumCheck},
{Credo.Check.Warning.IExPry},
{Credo.Check.Warning.IoInspect},
# can remove this because these are all lazy in Elixir 1.7.4
{Credo.Check.Warning.LazyLogging, false},
{Credo.Check.Warning.OperationOnSameValues},
{Credo.Check.Warning.OperationWithConstantResult},
{Credo.Check.Warning.UnusedEnumOperation},
{Credo.Check.Warning.UnusedFileOperation},
{Credo.Check.Warning.UnusedKeywordOperation},
{Credo.Check.Warning.UnusedListOperation},
{Credo.Check.Warning.UnusedPathOperation},
{Credo.Check.Warning.UnusedRegexOperation},
{Credo.Check.Warning.UnusedStringOperation},
{Credo.Check.Warning.UnusedTupleOperation},
{Credo.Check.Warning.RaiseInsideRescue},

#
# Controversial and experimental checks (opt-in, just remove `, false`)
#
{Credo.Check.Refactor.ABCSize, false},
{Credo.Check.Refactor.AppendSingleItem, false},
{Credo.Check.Refactor.VariableRebinding, false},
{Credo.Check.Warning.MapGetUnsafePass, false},
{Credo.Check.Consistency.MultiAliasImportRequireUse, false},

#
# Deprecated checks (these will be deleted after a grace period)
#
{Credo.Check.Readability.Specs, false}

#
# Custom checks can be created using `mix credo.gen.check`.
#
]
}
]
}
9 changes: 9 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
locals_without_parens = []

[
inputs: ["mix.exs", "{config,lib,test}/**/*.{ex,exs}"],
import_deps: [],
locals_without_parens: locals_without_parens,
export: [locals_without_parens: locals_without_parens],
line_length: 80
]
107 changes: 107 additions & 0 deletions .github/settings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
repository:
name: beeline
description: |
a tool for building in-order GenStage topologies for EventStoreDB
private: true
has_issues: true
has_wiki: false
has_downloads: true
default_branch: main
allow_squash_merge: true
allow_merge_commit: true
allow_rebase_merge: true
topics: gen-stage,eventstoredb

teams:
- name: devs
permission: admin

collaborators:
- username: cuatrobuild
permission: push

labels:
- name: Good Example
color: 1d76db
- name: p:Critical
color: e11d21
- name: p:High
color: eb6420
- name: p:Low
color: 009800
- name: p:Medium
color: fbca04
- name: s:Abandoned
color: '000000'
- name: s:Accepted
color: 009800
- name: s:Accept?
color: ededed
- name: s:Available
color: bfe5bf
- name: s:Blocked
color: e11d21
- name: s:Completed
color: 006b75
- name: s:In Progress
color: bfd4f2
- name: s:On Hold
color: d4c5f9
- name: s:Pending
color: fef2c0
- name: s:Review Needed
color: fbca04
- name: s:Revision Needed
color: e99695
- name: t:Bug
color: e11d21
- name: t:Enhancement
color: 84b6eb
- name: t:Feature
color: c2e0c6
- name: t:Maintenance
color: fbca04
- name: t:Question
color: cc317c
- name: t:Redesign
color: d93f0b
- name: t:Refactor
color: 5319e7
- name: t:Test
color: d4c5f9
- name: t:Tech Debt
color: fef2c0
- name: t:Beer Money
color: cc8e47
- name: dfm
color: dbb127
- name: baemax
color: fef2c0
- name: team-money
color: 26b5a9
- name: team-food
color: e2d14f
- name: team-yer-welcome
color: fc9c8f
- name: corporal-llama
color: f99ab1
- name: platform
color: 7010b5
- name: pinned
color: 0e8a16
- name: stale
color: ffffff

branches:
- name: main
protection:
required_pull_request_reviews:
required_approving_review_count: 1
dismiss_stale_reviews: false
require_code_owner_reviews: false
dismissal_restrictions: {}
required_status_checks:
strict: true
contexts: ["Bless"]
enforce_admins: false
restrictions: null
Loading

0 comments on commit 8393eb1

Please sign in to comment.