End to end tests

[ ] Build an example that automatically scrapes JSON payloads for each type of event (perhaps use the GitHub package to trigger the events?). This will be useful to keep up to date with undocumented changes to the GitHub API
[ ] Implement ToJSON instances for each of the payloads
[ ] Run end to end tests that verify the result of running ‘ToJSON . FromJSON’ is the same as what gets scraped. If not, fields are missing

@donkeybonks Seems that the second point is the easiest. Could you explain more?

Yes, we will need to decouple these from the smoke tests.
But the general idea is that we could implement ToJSON instead of just FromJSON and then have suites of tests that test toJSON . fromJSON == id for each type.
This means that if you have a field that is not handled on the input fixture (see fixtures/), it will not be decoded and thus when it is re-encoded it will be missing so toJSON . fromJSON /= id and we know something is wrong.
The first part is simply automating the generation of the fixtures/ folder. Those fixtures are pulled from the GitHub documentation but it seems to be somewhat out of date.. missing a few fields added in the last year or two.

It's pulled from here: https://developer.github.com/webhooks/
It is reasonable to do the second part first. The first part is non-trivial unfourtunately

Sounds good, I'll try the second part.

@donkeybonks I looked at spec/DecodeEventsSpec.hs and curious about the lines on top of the file.
I tried to run,
-- Run GHCi:
-- $ stack install pretty-show
-- $ stack ghci --test pretty-show

Then I run these imports
-- Paste:
{-
import Data.Aeson
import qualified Data.ByteString.Lazy as BSL
import GitHub.Data.Webhooks.Events
import Text.Show.Pretty
import Text.PrettyPrint.HughesPJ
-}

This is what I get

Warning: /Users/christiansakai/Desktop/random/github-webhooks/github-webhooks.cabal was
         generated with a newer version of hpack, please upgrade and try again.

Warning: /Users/christiansakai/Desktop/random/github-webhooks/examples/servant-simple/github-webhooks-servant-simple-example.cabal
         was generated with a newer version of hpack, please upgrade and try again.

Warning: /Users/christiansakai/Desktop/random/github-webhooks/examples/servant/github-webhooks-servant-example.cabal
         was generated with a newer version of hpack, please upgrade and try again.

Warning: /Users/christiansakai/Desktop/random/github-webhooks/examples/scotty/github-webhooks-scotty-example.cabal
         was generated with a newer version of hpack, please upgrade and try again.

Warning: Some targets (pretty-show) are not local packages, and so cannot be directly loaded.
         In future versions of stack, this might be supported - see
         https://github.com/commercialhaskell/stack/issues/1441 . It can still be useful to
         specify these, as they will be passed to ghci via -package flags.

Warning: No local targets specified, so ghci will not use any options from your package.yaml
         / *.cabal files.

         Potential ways to resolve this:
         * If you want to use the package.yaml / *.cabal package in the current directory,
           use stack init to create a new stack.yaml.
         * Add to the 'packages' field
           of /Users/christiansakai/Desktop/random/github-webhooks/stack.yaml

Configuring GHCi with the following packages:
GHCi, version 8.2.2: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /Users/christiansakai/dotfiles/.ghci
Loaded GHCi configuration from /private/var/folders/nr/rmw0xhw10s3fndfk237g0mdc0000gn/T/ghci64069/ghci-script
λ: import Data.Aeson

<no location info>: error:
    Could not find module ‘Data.Aeson’
    Perhaps you meant Data.Version (from base-<IP_ADDRESS>)
λ: import qualified Data.ByteString.Lazy as BSL

<no location info>: error:
    Could not find module ‘Data.ByteString.Lazy’
    It is not a module in the current program, or in any known package.
λ: import Github.Data.Webhooks.Events

<no location info>: error:
    Could not find module ‘Github.Data.Webhooks.Events’
    It is not a module in the current program, or in any known package.
λ: import Text.Show.Pretty
λ: import Text.PrettyPrint.HughesPJ

<no location info>: error:
    Could not find module ‘Text.PrettyPrint.HughesPJ’
    It is not a module in the current program, or in any known package.
λ:

However, if I just do stack ghci
The I tried to import
Configuring GHCi with the following packages: github-webhooks
GHCi, version 8.2.2: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /Users/christiansakai/dotfiles/.ghci
[1 of 3] Compiling GitHub.Data.Webhooks.Payload ( /Users/christiansakai/Desktop/random/github-webhooks/src/GitHub/Data/Webhooks/Payload.hs, interpreted )
[2 of 3] Compiling GitHub.Data.Webhooks.Events ( /Users/christiansakai/Desktop/random/github-webhooks/src/GitHub/Data/Webhooks/Events.hs, interpreted )
[3 of 3] Compiling GitHub.Data.Webhooks.Secure ( /Users/christiansakai/Desktop/random/github-webhooks/src/GitHub/Data/Webhooks/Secure.hs, interpreted )
Ok, three modules loaded.
Loaded GHCi configuration from /private/var/folders/nr/rmw0xhw10s3fndfk237g0mdc0000gn/T/ghci64979/ghci-script
λ: import Data.Aeson
λ: import qualified Data.ByteString.Lazy as BSL
λ: import GitHub.Data.Webhooks.Events
λ: import Text.Show.Pretty

<no location info>: error:
    Could not find module ‘Text.Show.Pretty’
    It is not a module in the current program, or in any known package.
λ: import Text.PrettyPrint.HughesPJ

<no location info>: error:
    Could not find module ‘Text.PrettyPrint.HughesPJ’
    It is not a module in the current program, or in any known package.
λ:

So:

For stack ghci, basically if I understand this correctly. stack ghci builds the current package where the command was invoked in, in this case github-webhooks and its dependencies, in this case, aeson and bytestring are dependencies of github-webhooks, that's why I was able to import it.
However, Text.Show.Pretty (pretty-show package) and Text.PrettyPrint.HughesPJ (pretty package) are not the dependencies of github-webhooks.

For stack ghci --test pretty-show, I don't quite understand why it doesn't work. Could you help me?

Hmm, the behavior of stack has changed here .. or perhaps it is with the latest resolver (for ghci) that it has changed.
You can manually specify all the packages required as a work around, even though the prompt says you can't. ie
$ stack --test ghci pretty-show github-webhooks aeson bytestrin

YMMV:
kvanb at donkeybonks in ~/git/github-webhooks on master
$ stack --test ghci pretty pretty-show github-webhooks aeson bytestring

Warning: /Users/kvanb/git/github-webhooks/github-webhooks.cabal was generated with a newer version of hpack,
         please upgrade and try again.

Warning: /Users/kvanb/git/github-webhooks/examples/servant-simple/github-webhooks-servant-simple-example.cabal
         was generated with a newer version of hpack, please upgrade and try again.

Warning: /Users/kvanb/git/github-webhooks/examples/servant/github-webhooks-servant-example.cabal was generated
         with a newer version of hpack, please upgrade and try again.

Warning: /Users/kvanb/git/github-webhooks/examples/scotty/github-webhooks-scotty-example.cabal was generated with
         a newer version of hpack, please upgrade and try again.
github-webhooks-0.9.1: initial-build-steps (lib + test)
github-webhooks-0.9.1: Test running disabled by --no-run-tests flag.
Completed 2 action(s).

Warning: Some targets (aeson, bytestring, pretty, pretty-show) are not local packages, and so cannot be directly
         loaded. In future versions of stack, this might be supported - see
         https://github.com/commercialhaskell/stack/issues/1441 . It can still be useful to specify these, as
         they will be passed to ghci via -package flags.
Configuring GHCi with the following packages: github-webhooks
Using main module: 1. Package `github-webhooks' component test:spec with main-is file: /Users/kvanb/git/github-webhooks/spec/Spec.hs
GHCi, version 8.2.2: http://www.haskell.org/ghc/  :? for help
[1 of 5] Compiling GitHub.Data.Webhooks.Payload ( /Users/kvanb/git/github-webhooks/src/GitHub/Data/Webhooks/Payload.hs, interpreted )
[2 of 5] Compiling GitHub.Data.Webhooks.Events ( /Users/kvanb/git/github-webhooks/src/GitHub/Data/Webhooks/Events.hs, interpreted )
[3 of 5] Compiling DecodeEventsSpec ( /Users/kvanb/git/github-webhooks/spec/DecodeEventsSpec.hs, interpreted )
[4 of 5] Compiling GitHub.Data.Webhooks.Secure ( /Users/kvanb/git/github-webhooks/src/GitHub/Data/Webhooks/Secure.hs, interpreted )
[5 of 5] Compiling Main             ( /Users/kvanb/git/github-webhooks/spec/Spec.hs, interpreted )
Ok, five modules loaded.
Loaded GHCi configuration from /private/var/folders/bj/fmlb9nv10yvf3h7m2vsh_5m80000gn/T/ghci2533/ghci-script
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure> import Data.Aeson
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson> import qualified Data.ByteString.Lazy as BSL
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL> import GitHub.Data.Webhooks.Events
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL> import Text.Show.Pretty
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL Text.Show.Pretty> import Text.PrettyPrint.HughesPJ
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL Text.Show.Pretty Text.PrettyPrint.HughesPJ> do { x <- BSL.readFile "fixtures/watch-event.json";

<interactive>:6:52: error:
    parse error (possibly incorrect indentation or mismatched brackets)
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL Text.Show.Pretty Text.PrettyPrint.HughesPJ> do { x <- BSL.readFile "fixtures/watch-event.json";

<interactive>:7:52: error:
    parse error (possibly incorrect indentation or mismatched brackets)
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL Text.Show.Pretty Text.PrettyPrint.HughesPJ> do { x <- BSL.readFile "fixtures/watch-event.json"; putStrLn $ renderStyle (style {lineLength=200}) . ppDoc $ either error id (eitherDecode' x :: Either String WatchEvent) }
WatchEvent
  { evWatchAction = WatchStartedAction
  , evWatchRepo =
      HookRepository
        { whRepoId = 35129377
        , whRepoName = "public-repo"
        , whRepoFullName = "baxterthehacker/public-repo"
        , whRepoOwner =
            Right
              HookUser
                { whUserLogin = "baxterthehacker"
                , whUserId = 6752317
                , whUserAvatarUrl = URL "https://avatars.githubusercontent.com/u/6752317?v=3"
                , whUserGravatarId = URL ""
                , whUserUrl = URL "https://api.github.com/users/baxterthehacker"
                , whUserHtmlUrl = URL "https://github.com/baxterthehacker"
                , whUserFollowersUrl = URL "https://api.github.com/users/baxterthehacker/followers"
                , whUserFollowingUrl = URL "https://api.github.com/users/baxterthehacker/following{/other_user}"
                , whUserGistsUrl = URL "https://api.github.com/users/baxterthehacker/gists{/gist_id}"
                , whUserStarredUrl = URL "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}"
                , whUserSubscriptionsUrl = URL "https://api.github.com/users/baxterthehacker/subscriptions"
                , whUserOrganizationsUrl = URL "https://api.github.com/users/baxterthehacker/orgs"
                , whUserReposUrl = URL "https://api.github.com/users/baxterthehacker/repos"
                , whUserEventsUrl = URL "https://api.github.com/users/baxterthehacker/events{/privacy}"
                , whUserReceivedEventsUrl = URL "https://api.github.com/users/baxterthehacker/received_events"
                , whUserType = OwnerUser
                , whUserIsAdminOfSite = False
                }
        , whRepoIsPrivate = False
        , whRepoHtmlUrl = URL "https://github.com/baxterthehacker/public-repo"
        , whRepoDescription = ""
        , whRepoIsAFork = False
        , whRepoUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo"
        , whRepoForksUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/forks"
        , whRepoKeysUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}"
        , whRepoCollaboratorsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}"
        , whRepoTeamsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/teams"
        , whRepoHooksUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/hooks"
        , whRepoIssueEventsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}"
        , whRepoEventsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/events"
        , whRepoAssigneesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}"
        , whRepoBranchesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}"
        , whRepoTagsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/tags"
        , whRepoBlobsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}"
        , whRepoGitTagsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}"
        , whRepoGitRefsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}"
        , whRepoTreesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}"
        , whRepoStatusesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}"
        , whRepoLanguagesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/languages"
        , whRepoStargazersUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/stargazers"
        , whRepoContributorsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/contributors"
        , whRepoSubscribersUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/subscribers"
        , whRepoSubscriptionUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/subscription"
        , whRepoCommitsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}"
        , whRepoGitCommitsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}"
        , whRepoCommentsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}"
        , whRepoIssueCommentsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}"
        , whRepoContentsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}"
        , whRepoCompareUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}"
        , whRepoMergesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/merges"
        , whRepoArchiveUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}"
        , whRepoDownloadsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/downloads"
        , whRepoIssuesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}"
        , whRepoPullsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}"
        , whRepoMilestonesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}"
        , whRepoNotificationsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}"
        , whRepoLabelsUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}"
        , whRepoReleasesUrl = URL "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}"
        , whRepoCreatedAt = 2015 (-05) (-05) 23 : 40 : 12 UTC
        , whRepoUpdatedAt = 2015 (-05) (-05) 23 : 40 : 30 UTC
        , whRepoPushedAt = 2015 (-05) (-05) 23 : 40 : 27 UTC
        , whRepoGitUrl = URL "git://github.com/baxterthehacker/public-repo.git"
        , whRepoSshUrl = URL "git@github.com:baxterthehacker/public-repo.git"
        , whRepoCloneUrl = URL "https://github.com/baxterthehacker/public-repo.git"
        , whRepoSvnUrl = URL "https://github.com/baxterthehacker/public-repo"
        , whRepoHomepage = Nothing
        , whRepoSize = 0
        , whRepoStargazersCount = 0
        , whRepoWatchersCount = 0
        , whRepoLanguage = Nothing
        , whRepoHasIssues = True
        , whRepoHasDownloads = True
        , whRepoHasWiki = True
        , whRepoHasPages = True
        , whRepoForkCount = 0
        , whRepoMirrorUrl = Nothing
        , whRepoOpenIssuesCount = 2
        , whRepoDefaultBranchName = "master"
        }
  , evWatchSender =
      HookUser
        { whUserLogin = "baxterthehacker"
        , whUserId = 6752317
        , whUserAvatarUrl = URL "https://avatars.githubusercontent.com/u/6752317?v=3"
        , whUserGravatarId = URL ""
        , whUserUrl = URL "https://api.github.com/users/baxterthehacker"
        , whUserHtmlUrl = URL "https://github.com/baxterthehacker"
        , whUserFollowersUrl = URL "https://api.github.com/users/baxterthehacker/followers"
        , whUserFollowingUrl = URL "https://api.github.com/users/baxterthehacker/following{/other_user}"
        , whUserGistsUrl = URL "https://api.github.com/users/baxterthehacker/gists{/gist_id}"
        , whUserStarredUrl = URL "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}"
        , whUserSubscriptionsUrl = URL "https://api.github.com/users/baxterthehacker/subscriptions"
        , whUserOrganizationsUrl = URL "https://api.github.com/users/baxterthehacker/orgs"
        , whUserReposUrl = URL "https://api.github.com/users/baxterthehacker/repos"
        , whUserEventsUrl = URL "https://api.github.com/users/baxterthehacker/events{/privacy}"
        , whUserReceivedEventsUrl = URL "https://api.github.com/users/baxterthehacker/received_events"
        , whUserType = OwnerUser
        , whUserIsAdminOfSite = False
        }
  }
*Main DecodeEventsSpec GitHub.Data.Webhooks.Events GitHub.Data.Webhooks.Payload GitHub.Data.Webhooks.Secure Data.Aeson BSL Text.Show.Pretty Text.PrettyPrint.HughesPJ>


[Question] Override default severity

Asked this on IRC but it isn't very active at the moment.

By default all cops have a severity of convention - how do I override this to be warning for example?

You'll find it on the README page.
Lint cops have a default severity of warning by the way.

Yep have read that - it gives an example of overriding a single cop (see below), how do I override all cops? Do I have to do it one by one?
Metrics/CyclomaticComplexity:
  Severity: warning

There's no way to change the default severity for all or a group of cops in one place, you would have to override the severity for each cop one by one. But I'm curious about why you would want to. Can you explain the use case? What is it you want to achieve?

Ah okay. I need to make the severity levels consistent to the needs of my team - is there a list of the default severity levels for each type of cop (e.g. Lint, Metric)?

It's not described in the documentation, but Lint cops have warning as default and all other cops (that's Metrics, Rails, and Style) have convention.

Cool thanks - worthwhile adding to the #Severity section of the REAME?


Avoid scrolling to the top of the page while reloading (on Firefox)

Hello,
Currently, using firefox 102.0.1 on linux, the extension works correctly.
However, when the page reloads itself, the browser scrolls to the top of the page. I dislike that, I'd like the page to stay where it is.
My use case is generating and modifying html documentation using Sphinx and I'd like to see the document evolution where I scrolled, not the top of the page ;-)
I'm currently using live.js (which does not scroll to the top) but would rather use your extension without this side effect.
Anyway thanks for your work.

Duplicate creation


Decouple context management from while loops

Right now, while loops do some sort of "context management" that causes them to forget the entire context from outside the loop. In practice, this means the user must "rediscover" all these facts and write them down as invariants, even though they're typically immutable facts. This is really surprising, because "invariants", intuitively, are statements that don't change about variables that are changing.
I'm proposing this change because I just spent half an hour verifying a simple while loop. Most of the time was spent stumbling along "rediscovering" two facts that were in my requires and a third fact that I learned in a method call before the loop began. This behavior is extremely counterintuitive and wastes a lot of the scarcest resource: developer cycles.
The proposed benefit of the current policy is to crop context to enable more complicated methods to verify faster. Given that I've encountered this many times in functions that contain not much more than a single while loop, I'm paying all the price and getting none of the benefit. Right now we have an existing strategy to cull context manually: break a loop into another fn. Much of the cost of that strategy is "discovering" the invariants (now requires) of the inner fn. Why don't we pay-as-we-go?
Or if we want a lighter-weight way to crop context, let's add an explicit block scoped construct. So if I want today's behavior, I'd say:
fn foo()
requires a();
{
    len = get_len();
    clean_context
        requires a(),
           len == len_property(),
    {
        while i < len
        invariant forall |j| 0<=j<i ==> bar(j)
        {
             i += 1;
        }
    }
}

This decouples the mysterious behavior. The non-invariant declarations that are being explicitly punched through the context boundary are declared as requires for the clean_context block. And the invariants of the while loop are proper invariants about actual variables. Most importantly, it's a pay-as-you-go proof-performance-management tool which I will henceforth almost entirely simply ignore.

This sounds like a good topic for the verus meeting tomorrow. I'm going to convert this to a discussion.


NCBD-398 3.3.0 types

I see, I did not catch those changes because I base my changes off of polymesh_schema.json which has become out of date, I'll update this pr and submit one to polymesh fixing the polymesh_schema.json


Support configurable network V4 CIDR for Pod traffic across Node

Antrea Agent uses the configurable CIDR for Pod traffic. The order for configuring
tunneling or routing the traffic across Nodes is (from highest to lowest):
1.TransportInterface
2.TransportV4CIDR
3.The Node Internal IP or External IP
Fixes #2473
Signed-off-by: Wu zhengdong<EMAIL_ADDRESS>

Thanks for opening this PR. My recommendation would be to separate the bug fix for #2665 from the new feature you are implementing, using 2 distinct PRs. The bug fix PR can probably be merged pretty quickly.

Thank you for reminding me. I have already open a new PR for the bug, and this PR only has the TransportV4CIDR feature, please help me review the TransportV4CIDR feature.


[SUGGESTION] Function to generate a .env file

This would be super useful for things like auto-generated configuration files written in .env (which is what I'm currently attempting to use)

Can you give a bit more info?

I mean a way to get a string of a .env-formatted file from an array (or something similar), for example
use M1\Env\Compiler;

$a = [
  'FOO' => 1,
  'BAR' => 'whatever'

echo Compiler::compile($a);

Returns:
FOO=1
BAR="whatever"

I could implement something like this, how would multidimensional arrays work though as Bash doesn't support them.

Either provide an option to give a callable to handle arrays within an array or just flat-out don't allow them to happen

Hmmm, I'm feeling like just not letting them happen is a better option.


Created a new file for the PoolService.Updated the references in all modules

What type of PR is this?
/kind enhancement
What this PR does / why we need it:
This PR separates the Pool service and Profile service from a single file and adds a new file for the pool service.
All the references to the PoolService are updated to reflect the new file.
Which issue(s) this PR fixes:

Fixes #187
Test Report Added?:
/kind TESTED
Test Report:
Special notes for your reviewer:

Can you just put the sanity result around this?


Change express.layout to express.ui

This PR changes the name of express.layout to express.ui, as described in https://github.com/posit-dev/py-shiny/issues/854#issuecomment-1848011932.
It also adds a test to make sure that all items from shiny.ui are accounted for in shiny.express.ui, and vice versa. For both of these modules, either a corresponding item must exist in both modules, or it must be listed explicitly in a variable _known_missing.
There are a few remaining API questions:

For some functions, like card_header(), it's not clear to me whether they should be context managers or regular functions.
-shiny.ui.page_navbar() takes a named argument sidebar, which comes after the *args. The express version of this function also takes a named argument sidebar, but the only way to use it is with something like this, which is really awkward:
s = shiny.ui.sidebar(....)
with shiny.express.ui.page_navbar(sidebar=s):
    ....

It would be much better if we could pass in a sidebar object just as a *arg, and it would discover it and place it correctly.

@wch fwiw #893 solves that sidebar issue for page_navbar(), meaning you can do something like this and it "just works" (i.e., it infers a page_navbar() context is relevant, and puts the sidebar in the keyword arg)
with ui.sidebar():
   ...

with ui.nav("Page 1"):
    "Page 1 content"

with ui.nav("Page 1"):
    "Page 2 content"

We still have that (sidebar kwarg) problem for navset_card() though.

I would lean context manager for card_header, if I had to choose one. Would it be crazy to support both, like the tags do? I know we can't do this for containers that have nontrivial logic relating to their children.


Remove set_precomputed_quantities! from remaining_tendency

This is called in limited_tendency, so should be redundant

Purpose

To-do

Content

[x] I have read and checked the items on the review checklist.

bors r+


Adding WindowsVersion to Get-ComputerInfo

Changes made:

Added WindowsVersion to Get-ComputerInfo
Ported the internal tests for Get-ComputerInfo to Pester for PowerShell Core
Added a test for WindowsVersion

Hi @mirichmo, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Mike Richmond). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@jeffbi and @ChrisUbben Please take a look

LGTM

I addressed the spacing consistency issues and adjusted a few indenting issues that I encountered as well

LGTM


hmmm whats wrong? error build using new method

[build] Not running inside VS Code
[build] rootPath is "/root/vc2/code-server"
[build] outPath is "/root/vc2/bin"
[build] arch is "x86_64"
[build] target is "linux"
[build] vscodeVersion is "1.39.2"
[build] codeServerVersion is "1.39.3"
[build] Installing code-server dependencies...took 966ms
[build] Cloning VS Code...took 5258ms
[build] Installing VS Code dependencies...saazzzzaaatook 355900ms
[build] Building default extensions...ccgggtook 236572ms
[build] Patching VS Code...took 1920ms
[build] Copying code-server into VS Code...took 9559ms
[build] Building VS Code...asdhhfailed
Command failed: yarn gulp compile-build --max-old-space-size=32384
[14:50:11] 'compile-build' errored after 4.53 min
[14:50:11] Error: Found 1 errors
    at Stream.<anonymous> (/root/vc2/bin/build/vscode-1.39.2-source/build/lib/reporter.js:74:29)
    at _end (/root/vc2/bin/build/vscode-1.39.2-source/node_modules/through/index.js:65:9)
    at Stream.stream.end (/root/vc2/bin/build/vscode-1.39.2-source/node_modules/through/index.js:74:5)
    at Stream.onend (internal/streams/legacy.js:42:10)
    at Stream.emit (events.js:203:15)
    at Stream.EventEmitter.emit (domain.js:466:23)
    at drain (/root/vc2/bin/build/vscode-1.39.2-source/node_modules/through/index.js:34:23)
    at Stream.stream.queue.stream.push (/root/vc2/bin/build/vscode-1.39.2-source/node_modules/through/index.js:45:5)
    at Stream.end (/root/vc2/bin/build/vscode-1.39.2-source/node_modules/through/index.js:15:35)
    at _end (/root/vc2/bin/build/vscode-1.39.2-source/node_modules/through/index.js:65:9)
error Command failed with exit code 1.

We haven't updated to 1.39.x yet. Please stick to 1.38.x for now.

but thats on the travis.yml  - export VSCODE_VERSION="1.39.2" can you give me specific please xD

This is initial groundwork for the upgrade, please DO NOT upgrade until you see our Travis build go green.

I tried 1.38.1 1.38.1 but patches dint applied. the new installer is so easy tho.. than before.
to be clear I can't git clone this and run the yarn build to 1.38.1 .. I need to stick with the releases right? until it goes green?

Checked out the latest changes, it should compile fine now.


"Caused By" error on missing relative dependency could be clearer

Problem
When attempting to cargo install an application from a git repo on another computer
cargo install --git "ssh://spease@host/home/spease/projects/backuplib" backup-check

it failed with a series of "failed to load manifest errors". The issue was that an underlying dependency was outside the project tree as I had to modify a third-party library and the PR never got accepted or rejected, so I never updated the dependency to a permanent value. However even though this was simple, I didn't immediately catch this due to the displayed error.
error: failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`

Caused by:
  failed to load manifest for dependency `backuplib`

Caused by:
  failed to load manifest for dependency `twox-hash`

Caused by:
  failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

Because each item was separated by "Caused by:", I interpreted it as a list of errors rather than a cause-and-effect / inverted stack trace. So I started working down the list, when I needed to go from the bottom and work up.
I also interpreted "Failed to load" as meaning that the path specified for the dependency was missing, when in actuality it just seems to mean that an error was encountered.
Finally, the path specified for the dependency that was outside the project tree used a generated path that was clearly on the local machine (macOS home folder vs Linux home folder), so in scanning the rest of the "caused by" it didn't immediately stand out as a broken relative path that wasn't able to be copied over due to being outside the project folder.
Steps
No response
Possible Solution(s)
For something like this, I think the following error message structure would be much clearer:
Error:
    `No such file or directory (os error 2)` when opening path `../../twox-hash` for dependency `twox-hash` needed by `backuplib`

Absolute path:
    /Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml

Needed by:
    /Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backuplib/Cargo.toml
    /Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check/Cargo.toml

In workspace:
    /Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml

Notes
It looks to me like relative path notation when doing a remote checkout can end up capturing something outside of the generated folder for that workspace. That doesn't seem great.
Version
cargo 1.80.0 (376290515 2024-07-16)
release: 1.80.0
commit-hash:<PHONE_NUMBER>8c3df9ac2c1744589362a02ecafa99
commit-date: 2024-07-16
host: aarch64-apple-darwin
libgit2: 1.7.2 (sys:0.18.3 vendored)
libcurl: 8.7.1 (sys:0.4.72+curl-8.6.0 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Mac OS 15.1.1 [64-bit]

Thanks for sharing your thought process through an error so we can find ways to improve it!

For something like this, I think the following error message structure would be much clearer:

FYI these "error chains" are something you will frequently run across in the Rust ecosystem as we've (imo) hit a local maxima of adding context to errors by wrapping them in another error.
It would be interesting to move away from error chaining but we'd be having to treat a lot of new ground in doing so and the errors are likely to have other usability problems.

Because each item was separated by "Caused by:", I interpreted it as a list of errors rather than a cause-and-effect / inverted stack trace.

So you saw
error: failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`

Caused by:
  failed to load manifest for dependency `backuplib`

Caused by:
  failed to load manifest for dependency `twox-hash`

Caused by:
  failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

and thought it means there were multiple causes?
I wonder what are alternative ways of showing the chain that could help clarify that these are cascading, rather than parallel.
Maybe lowercase?
error: failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`

caused by:
  failed to load manifest for dependency `backuplib`

caused by:
  failed to load manifest for dependency `twox-hash`

caused by:
  failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`

caused by:
  No such file or directory (os error 2)

Or using lines to connect them (though this may be taken as parallel nodes, rather than a chain)
error: failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`
|
|- Caused by:
|  failed to load manifest for dependency `backuplib`
|
|- Caused by:
|   failed to load manifest for dependency `twox-hash`
|
|- Caused by:
|   failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`
|
|- Caused by:
    No such file or directory (os error 2)

I also interpreted "Failed to load" as meaning that the path specified for the dependency was missing, when in actuality it just seems to mean that an error was encountered.

For me, failing to "load" can mean a lot of things and not just a read error of that specific file.  However, if people have ideas for better wording, I'd be interesting in hearing it.

Finally, the path specified for the dependency that was outside the project tree used a generated path that was clearly on the local machine (macOS home folder vs Linux home folder), so in scanning the rest of the "caused by" it didn't immediately stand out as a broken relative path that wasn't able to be copied over due to being outside the project folder.

I wonder if we have enough information for identifying when a path dependency walks outside of a git repo and error more specifically about it.  When writing that, it sounds important on the surface but I have a feeling it might be a rare case with the impact mostly being on the error message, that I wonder how much this work would pay off.  This requires editing a local path (and not patching in uncommitted config), pushing the commit, there being no CI checking it, and then using it as a git dependency.

Backtraces have it right, and compiler errors do a better job of using formatting to show lowlevel cause underneath a high-level description. In this case it's mostly that there is a clear headline error at the top, but it's the last thing you should be looking at, and the cause-and-effect goes bottom-to-top rather than top-to-bottom.
If you wanted it to remain generic, you could just draw the user's eye to the bottom by emphasizing the final error, and then it more naturally flows bottom-to-top:
Error stack:
├ failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`
├ failed to load manifest for dependency `backuplib`
├ failed to load manifest for dependency `twox-hash`
└ failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`

**Error: No such file or directory (os error 2)**

(and ideally make Error red like the compiler output)
"No such file or directory" is an infuriating error message by itself that I see all too often (tell me the damn file!) but I recognize you want to just stringify the error code. And then the actual file causing it is directly adjacent to it, right above it, and this looks more like a stack trace of related errors since they're grouped together rather than separated by separate headings.
Alternative:
Error stack:
  4: failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`
  3: failed to load manifest for dependency `backuplib`
  2: failed to load manifest for dependency `twox-hash`
  1: failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`

**Error: No such file or directory (os error 2)**

This makes it even more clear that it's steps in a cause-and-effect chain imho, but I'm unsure if the numbers add any more function than that. The numbers can be reversed to be line numbers too.
You could also reverse this format:
**Error: No such file or directory (os error 2)**

Error sequence:
  1: failed to read `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/twox-hash/Cargo.toml`
  2: failed to load manifest for dependency `twox-hash`
  3: failed to load manifest for dependency `backuplib`
  4: failed to load manifest for workspace member `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/backup-check`
referenced by workspace at `/Users/spease/.cargo/git/checkouts/backuplib-a3cf582f8b68cb05/681a95d/Cargo.toml`

and in isolation this is probably the most readable, but on the console having the most specific error emphasized and at the very bottom means that it's the first thing that you see after running the command.

In terms of what order they are shown, that depends on the error and the user.  Some parts of the top or bottom may be generic (e.g. "no such file or directory") and we should start with the most noteworthy part first with the question of which part is noteworthy.
As for rendering with numbers, I lean away from that because that feels more raw like backtraces while these errors are for users.
Looking around for inspiration,
miette uses a tree with arrows with the root error last:

color-eyre does numbered entries with root error last:

The current style Cargo chose is pretty similar to the default style the popular error handling crate anyhow is doing. See this example. In Cargo we kinda follow the pattern—using the shallowest error as the headline part, though it is not enforced. It may even have a rich error message from anywhere of the stack.
I feel like it is a general issue of Cargo's error handles. https://github.com/rust-lang/cargo/issues/10160 is a bit relevant as by flattening the trace stack we could remove some unimportant entries. It doesn't apply to this case though.
The code printing Caused by: lives here btw.

It looks to me like you could use take_until to filter the custom error message wrappers and then hand it off to anyhow's formatting with {:?} and get pretty close to the same output. Are there any guarantees or non-guarantees made to users about the output format, or is thee any scraping known to be happening?
color-eyre looks kind of interesting, but tbh I think the anyhow format is more readable because it more clearly emphasizes. Though, I think the eyre format above is RUST_BACKTRACE=full while the anyhow format is not, so it may be too apples-to-oranges to be fair.
miette looks interesting but seems like it'd be a larger project to take on to use properly. Though it would probably make more sense to try and use whatever library the compiler uses for diagnostic-style errors for consistency's sake among the Rust tooling.


Not able to build to device

Summary:
Follwing the steps from the docs and trying to build to my connected device following this
When trying to build it only runs it on a simulator. And when I try to scan the barcode on my device it just says: "No usable data was found".
Am I missing some steps?
Steps to reproduce:
-Run new project
-install all dependencies
-connect phone to computer, connec them to the same network
-run yarn ios

scan barcode

Expected behavior:
Should be able to install app on device
Additional notes:
Tasks

[ ] Task 1
[ ] Task 2
[ ] Task 3

Experiencing the same issue here...

run npx expo run:ios -d <device name>
OR
add a new script in package.json:
"iphone": "expo run:ios --device iPhone"
run pnpm iphone


Repo Clean Up Installment 1: Configs

Description
These changes clean up and organize configuration files in the gamechanger-ml repository.
Ticket(s) or Issue(s): None
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Local
[ ] Server 119
[ ] Server 115
[ ] K8

Screenshot of automated jenkin tests (if applicable):
Checklist:

[x ] My code follows the style guidelines of this project

[x] I have performed a self-review of my own code

[x] I have commented my code, particularly in hard-to-understand areas

[x] I have made corresponding changes to the documentation

[ ] My changes generate no new warnings

[ ] I have added tests that prove my fix is effective or that my feature works

[ ] New and existing unit tests pass locally with my changes

[x] Any dependent changes have been merged and published in downstream modules

[x] I have used an autoformatter like lint or blackc

[ ] This requires a code review

hi, please build on 119 and copy the acceptance tests screen shot

test on server

hi, please build on 119 and copy the acceptance tests screen shot

@rha930 I haven't done this before (I'm new-ish to the team). Can you show me how to do this or connect me with someone who can?


Add a JavaScript Snippet: Promise Chain

Provide a JavaScript code snippet that demonstrates chaining multiple Promises.

can you assign me this issue!


Moving free_parameters convinience function one step up.

Hi @giacomov,
the changes in this PR made it to the version distributed to OS X but not to the one distributed to linux, as far as I can tell. Could you please have a look? (does that mean that's the same for other subsequent PRs too?)

That would be weird, the code base is the same for both. Maybe the LINUX system got the package from pip instead of conda?
Can you check that between the two the version is the same? Check for astromodels.__version__

At the conda create step of the installation, my mac says (among other things):
The following NEW packages will be INSTALLED:
  astromodels:   0.5.255-py27h39e3cac_0   threeml
  threeml:       0.4.1314-py27_0          threeml

And when on UMD cluster, it says:
The following NEW packages will be INSTALLED:
  astromodels:   0.5.220-py27_0           threeml
  threeml:       0.4.1314-py27_0          threeml


Unable to go get

go get github.com/cep21/benchdraw
go get: github.com/cep21/benchdraw@none updating to
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>invalid pseudo-version: does not match version-control timestamp (expected<PHONE_NUMBER>4819)

download (or clone ) from this fork
then inside the directory run:-
go build
go install


Find worker count based on ping only, not events state

When running with celery3, worker count would always be collected by
prometheus as 0. By manually querying celery-prometheus-exporter several
times per second, I found out that once every ~10 seconds, the count
would be correct (2 in my case), but tenths of a second later it would
revert to 0 and stay like that for several seconds. I modified the code
and entered log statements, and I realized that the lines removed on
this commit would always for some weird reason set the counter to 0.
Since #7, there is a periodic celery app.control.ping in
WorkerMonitoringThread https://github.com/zerok/celery-prometheus-exporter/blob/86686ad6e1015bb9e2a66bbf31e0555712d087d3/celery_prometheus_exporter.py#L147-L149 which also sets the workers count. In my case,
this would always discover the correct number.
Since in my case, the celery.events.state based worker count discovery
didn't work and since having two jobs updating the same counter seems
redundant, I removed these lines.

Awesome! Thank you very much :)

You're welcome :)


fix everything bagel to include lakefs-hooks

Update the docker-compose.yaml to include lakefs-hooks service to everything bagel container

Updated the lakeFS-hooks setup docs to include the following steps:

locally build lakefs-hooks image
update the hooks image name in everything bagel docker-compose.yaml
run everything bagel to spin up lakefs and hooks server in same container
Closing this issue, as we don't want to include hooks directly in everything bagel docker.


Enhance _isFunction To Handle AsyncFunction (+ more)

👋 Hello! First time contributor here so let me know what idiomatic Ramda repo things I'm missing from these changes and I'll be more than happy to make updates ASAP.
I was using R.invoker on a<EMAIL_ADDRESS>project and discovered that it was incorrectly throwing when I would try to invoke an async function on an object. Here's a basic example of what I was doing:
const person = {
  speak: async () => 'Hi!'
};
const speak = R.invoker(0, 'speak');
speak(person).then(R.identity) //=> 'Hi!'

This works fine in the Ramda Repl because Object.prototype.toString seems to always give back '[object Function]'. In<EMAIL_ADDRESS>however, toString gives back different strings for different types of functions and this was producing false negatives when I tried to use R.invoker on my async methods.
This PR adds support for AsyncFunction, as well as GeneratorFunction ~and Proxy~ functions. I took a page out of lodash's isFunction implementation.
I didn't add any tests because I didn't see any specific tests for the internal _isFunction helper, nor could I easily add tests for R.invoker that handles async functions because of the<EMAIL_ADDRESS>dev dependency. I see in the travis.yml file that you're targeting<EMAIL_ADDRESS>so I think the changes are valid given that support.

I don't know what happened to my reply.  I thought I said that this was a good idea, and that outside the Proxy issue, we should just do this.
I think we should drop Proxy, as they are not generally callable.

@CrossEye

I think we should drop Proxy, as they are not generally callable.

Updated.

@CrossEye your reply ended up over here https://github.com/ramda/ramda/pull/2512#issuecomment-383183459

Whoops.  Thanks!

I have to ask, why not just typeof x === 'function'?

class Foo {
}
typeof Foo
// -> 'function'

I have to ask, why not just typeof x === 'function'?

@GingerPlusPlus I did some quick testing and it would seem to handle the cases I tried so ¯\(ツ)/¯. That discussion might be a bit out of the scope of this PR perhaps? I'm merely trying to add support given the current implementation strategy. Thanks for the input!

@Bradcomp or @CrossEye is there anything else you would like to see with this or are we just holding until a release or something to merge a bunch of PRs.

I've found another case where the Function/AsyncFunction (+ GeneratorFunction) difference could potentially have an impact - map.
@rjhilgefort's PR is, as it is, perfectly consistent and improves ramda without my changes, so it can be merged without them but I'm personally keen to see map extended to support async functions too!
I've created a second PR for my changes here: https://github.com/ramda/ramda/pull/2675
As an aside, in theory ramda's reliance on a stable Object.prototype.toString could have broken things for anyone moving from Babel to delivering native ES6, so IMO that's another point towards using typeof over toString... on the other hand, it's known Babel isn't perfect!
Specifically, Babel doesn't seem to match v8's behaviour (and the latest ecma spec says that AsyncFunctions' @@toStringTag property should be "AsyncFunction", so it looks like v8 is correct here:
https://www.ecma-international.org/ecma-262/9.0/index.html#sec-async-function-prototype-properties-toStringTag
).
async function foo(){
}

console.log('typeof', typeof foo)
console.log('toString', Object.prototype.toString.call(foo))

transpiles to
let foo = (() => {
  var _ref = _asyncToGenerator(function* () {});

  return function foo() {
    return _ref.apply(this, arguments);
  };
})();

function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }

console.log('typeof', typeof foo);
console.log('toString', Object.prototype.toString.call(foo));

and outputs
typeof function
toString [object Function]

not [object AsyncFunction] as v8 does for:
Object.prototype.toString.call(async function(){ })

Another, probably more future-proof possible implementation:
/^\[object \w*Function\]$/.test(Object.prototype.toString.call(x))

Yes, until TC39 in its infinite wisdom decides to add some type where Object.prototype.toString returns "[object NotAFunction]".  :smile:


support for the provinces and regions of Italy - source: https://osmi…

…t-estratti.wmcloud.org/w
Edit:

See issue #141 for more information

Hi @napo, let me know if you need any further help with this? 🙂


I18N

Would love to see about baking in I18N support to choosealicense.com proper. See #67 and #62
We already have the bulk of the strings in a single file (_config.yml), so it should just be a matter of abstracting out some of our variables, as far as I can tell.
Would love to take this on starting in August if there's interest. Would be a great exercise to set a standard for Jekyll L10N, and can iterate on some of the lessons learned form https://github.com/CMSgov/healthcare.gov.
@parkr any interest?
@dhcole any insight / words of wisdom?

Hi,
I would like to contribute Traditional Chinese(Taiwan) version of this great site!

The issue is not a technical one but one of keeping stuff up to date.
To have languages you will need tagged revisions of the page. Then you can link a revision (and available translation).
It will also slow down revisions. So I'd rather see the dust settle more around what the site should actually show.

I'm very interested in making this happen but have yet to digest the various possible approaches. Self-assigning for now as a reminder to do that digesting.

In https://github.com/github/choosealicense.com/network/members I noticed a couple translations through forks published on separate websites:

https://github.com/webfatorial/escolhaumalicenca.com.br - http://escolhaumalicenca.com.br/
https://github.com/mickaelandrieu/choisirunelicence - http://www.choisirunelicence.com/

Glad people were motivated to do this and totally fine if they want to run their own sites, but probably a pain to keep up to date (if they want to do that).

Jekyll plugin https://github.com/untra/polyglot seems to generate copies of an entire site, including collections (as used here for /licenses/), under /{language-code}/ for each language configured, without any duplicate files. I haven't looked deeply, but it seems to be the only Jekyll i18n plugin that does this -- others seem to require a file for each page for each language -- as would something not using any plugin, as prototyped in #131.
Using a plugin would mean switching to using the gh-pages branch for the rendered site, because we couldn't use GitHub Pages to do the rendering. This may be a price worth paying.

The Jekyll no-plugin i18n solution being worked on in https://github.com/github/open-source-guide/pull/295 for a related site may eventually be applicable here. Watch that if you're interested.

@mlinksva any updates? I'm interested in this issue for translating into Korean.
If anyone can suggest a right way to make this I18N, we can do it together.

@lqez thanks for the ping! I was waiting to see a completed and deployed translation of github/open-source-guide to dig into how that is done and see whether it is the best way forward here. Looks like there's one that is close.
If you're super eager to get started and don't mind maybe reorganizing things later, feel free to fork the repo and translate everything in place like a couple others have done (fr and pt-BR) mentioned above.

@mlinksva @benbalter
Hi, thanks for you amazing job. We wanted to do the exact thing you have done in Persian until i saw your website so we planned to do the localization only and get a domain (thanks to you). As you know the problem is the lacking of translation files and making the forked repository update, So is it possible for you to give us a more accurate deadline for adding support for I18n?
Thanks in advance :+1:

@JafarAkhondali thanks, really appreciate your interest. 🎉  Unfortunately, the most accurate statement about a deadline is that there isn't one. I do promise to look into whether we can copy the mechanism being used for opensource.guide translations once a completed one is deployed.
Another way to help now, other than forking and translating in place, which I admit isn't ideal, would be to do an advance evaluation of the mechanism described at https://github.com/github/opensource.guide/pull/295

@mlinksva Thanks for your fast response, After googling and reading some discussions  on github repos's, a link catch my eye:
https://www.sylvaindurand.org/making-jekyll-multilingual/
I liked it because:

No plugin
SEO
Language selector
Full translation
Gives full customization on the code easily, and works nice if we want to do the RTL

Would mind taking a look?

@mlinksva Sorry for late response, I've read your provided link, They use Crowdin to sync GitHub with Crowdin using a CLI script but we don't that anymore since crowding created Integration with GitHub.
I've also found another reference for multilangugae website in Github pages with Jekyll. So using these two i almost created a multi language page but lack of experience in Ruby & Jekyll turned me down. Here is what i did:
Before beginning, I think(not sure) it's better ta rename all translateable files from file.extension to file-en.extension

Create a project in crowdin
Integrate project with Github
Choose branch, and config files to translate, here is a sample config for this project(It's not accurate, just for the test)

Translate a file, then go to Integration tabs and press Sync now to sync project with github. It'll create a PR for translation files. With crowdin all translators can help translations easily.
Use this guide to configure a multi language website.

Ran across recent Spanish translation not in forks network: https://github.com/Eligelicencia/eligeUnaLicencia

Another micro-update: some translations of opensource.guide are now live (scroll to the bottom at that link for a chooser) using a simpler approach than referred to above http://mikemcquaid.com/2018/02/14/translations-with-rails-and-jekyll/ is a personal blog post about how it was done and why.
I hope to see whether this approach will work for choosealicense.com soon, but as usual any thoughts welcome.

Hello! I can't speak to the technical details, but once the "gates open" so to speak, I'd be happy to start the German version :-)

I've made a french translation for AGPLv3 resume : https://demo.mycelia.tools/#{"userMode":"page","panels":{"details":"big"},"selected":"licence"}
src : https://framagit.org/mycelia/mycelia-front-app/blob/master/staticApp/default/config.yml#L124

It looks like https://github.com/github/opensource.guide could be a good example of how Jekyll page translated.

@lqez yes there's a start on that in https://github.com/github/choosealicense.com/pull/586 ... I haven't had a chance to look at it since August but hope to come back to it soon.

Just found out that the Brazilian Portuguese version of it already exists and it is available in the address http://escolhaumalicenca.com.br/ 💚💛

Any updates on this one? I'd like to contribute with the Spanish translation. 😄 🇦🇷

Me Casa su Casa.......     //** Ascendaviation Sent from my Galaxy
-------- Original message --------From: Federico Aloi @.> Date: 7/3/21  1:47 PM  (GMT-05:00) To: "github/choosealicense.com" @.> Cc: Subscribed @.*> Subject: Re: [github/choosealicense.com] Internationalization / i18n / multilingual site (#68)
Any updates on this one? I'd like to contribute with the Spanish translation. 😄 🇦🇷
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

Any update in this issue ? It's opened since 2013, and I'd love to see a french translation of this website !

Thanks for the ping @LoganTann. Nothing concrete, though totally coincidentally a couple days ago a colleague and I discussed pairing on this, so please continue to watch this issue and thanks for your patience.

So how should go about starting a translation, eg for the French language ?
Licence issues need to get wider audience ; I believe l10n of this project is a good way to
start this process.

Good


Add support for \P and others

https://phabricator.wikimedia.org/T107867 identifies
that \P failes
https://github.com/wikimedia/mathoid/blob/1ad83e4a673e3a9c3abd2efd7a43750532d179f0/test/files/mathjax-texvc/test-p.md
identifies further problems with allowed texvc markup

This change ports fixes from the old Client-Side MathJax
extension to the current version.

@d00rman That's also something we should merge for mathoid-0-2-9

after merging it to master we can delete the dev branch and create the mathoid-0-2-9 tag

@physikerwelt branch deleted, feel free to git tag -a mathoid-0.2.9 -m 'MathJax for Mathoid 0.2.9'


Problem with removing old screenshots using --overwrite_screenshots

New Issue Checklist

[x] Updated fastlane to the latest version
[X] I read the Contribution Guidelines
[X] I read docs.fastlane.tools
[X] I searched for existing GitHub issues

Issue Description
Deliver fails to remove old screenshot when I use --overwrite_screenshots options.
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

INFO [2017-08-11 13:25:43.61]: Login successful

+-----------------------------+-------------------------+
|                deliver 2.53.1 Summary                 |
+-----------------------------+-------------------------+
| skip_binary_upload          | true                    |
| skip_metadata               | true                    |
| force                       | true                    |
| automatic_release           | true                    |
| overwrite_screenshots       | true                    |
| run_precheck_before_submit  | false                   |
| app_identifier              | com.laikaboss.motordrag |
| username                    |<EMAIL_ADDRESS>    |
| screenshots_path            | ./screenshots           |
| metadata_path               | ./metadata              |
| edit_live                   | false                   |
| platform                    | ios                     |
| skip_screenshots            | false                   |
| skip_app_version_update     | false                   |
| submit_for_review           | false                   |
| precheck_default_rule_level | warn                    |
+-----------------------------+-------------------------+

INFO [2017-08-11 13:25:49.56]: Starting with the upload of screenshots...
INFO [2017-08-11 13:25:49.56]: Removing all previously uploaded screenshots...

Looking for related GitHub issues on fastlane/fastlane...
Search query: undefined method `each_with_index' for nil

URL: https://api.github.com/search/issues?q=undefined%20method%20%60each_with_index'%20for%20nil+repo:fastlane/fastlane
➡  fix output of 'fastlane' for multiple platforms without default.
    https://github.com/fastlane/fastlane/pull/8302 [closed] 9 💬
    5 weeks ago

🔗  You can ⌘ + double-click on links to open them directly in your browser.
/usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/upload_screenshots.rb:20:in `block in upload': [!] undefined method `each_with_index' for nil:NilClass (NoMethodError)
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/upload_screenshots.rb:19:in `each'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/upload_screenshots.rb:19:in `upload'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/runner.rb:102:in `upload_metadata'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/runner.rb:24:in `run'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/commands_generator.rb:73:in `block (2 levels) in run'
	from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:178:in `call'
	from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:153:in `run'
	from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/runner.rb:476:in `run_active_command'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:64:in `run!'
	from /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/delegates.rb:15:in `run!'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/commands_generator.rb:173:in `run'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/deliver/lib/deliver/commands_generator.rb:12:in `start'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/fastlane/lib/fastlane/cli_tools_distributor.rb:58:in `take_off'
	from /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.53.1/bin/fastlane:20:in `<top (required)>'
	from /usr/local/bin/fastlane:22:in `load'
	from /usr/local/bin/fastlane:22:in `<main>'

Environment
🚫 fastlane environment 🚫
Stack

Key
Value

OS
10.12.5

Ruby
2.4.1

Bundler?
false

Git
git version 2.12.2

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.12.5 (16F73)

Ruby Lib Dir
/usr/local/Cellar/ruby/2.4.1_1/lib

OpenSSL Version
OpenSSL 1.0.2l  25 May 2017

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
8.3.3

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.53.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.1.2

slack-notifier
1.5.1

CFPropertyList
2.3.5

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.5.1

rouge
2.0.7

xcpretty
0.2.8

terminal-notifier
1.8.0

unicode-display_width
1.3.0

terminal-table
1.8.0

plist
3.3.0

public_suffix
2.0.5

addressable
2.5.1

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.5.0

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.5

excon
0.58.0

faraday
0.12.2

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.0

gh_inspector
1.0.3

uber
0.1.0

declarative
0.0.9

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.1

mime-types-data
3.2016.0521

mime-types
3.1

little-plugger
1.1.4

multi_json
1.12.1

logging
2.2.2

jwt
1.5.6

memoist
0.16.0

os
0.9.6

signet
0.7.3

googleauth
0.5.3

httpclient
2.8.3

google-api-client
0.12.0

mini_magick
4.5.1

multi_xml
0.6.0

rubyzip
1.2.1

security
0.1.3

xcpretty-travis-formatter
0.0.4

dotenv
2.2.1

bundler
1.15.3

faraday_middleware
0.12.2

json
2.1.0

io-console
0.4.6

openssl
2.0.5

generated on: 2017-08-11

Thanks for reporting this. What's the best way to reproduce this problem? How do your local directories look like, and how does your iTC page look like?

I had a published app on the app store. I created a new version, initialized a directory using
fastlane deliver.  My local directory looks like this:

I updated some pictures (did not change the filenames, just photoshopped content).
When I tried to re-upload screenshots using
fastlane deliver --force --skip_metadata --skip_binary_upload --automatic_release --overwrite_screenshots --run_precheck_before_submit=false
I got an error from above.
My itc page looks like this:

Images for other languages are taken from the English. I have only iPhone 5.5' and iPad 12.9' screenshots ready.

i am facing the same problem with --overwrite_screenshots. The preview says that this will remove screenshots but the screenshots are not removed from itunes connect


DNF Support

DNF has replaced yum now that Fedora 22 has dropped.
Running yumU in 22 reports:
Yum command has been deprecated, use dnf instead.
See 'man dnf' and 'man yum2dnf' for more information.
To transfer transaction metadata from yum to DNF, run 'dnf migrate'Redirecting to '/usr/bin/dnf upgrade'

Seems like #407 already discussed this.
Cheers! :beers:

Thanks. They have not renamed it?

They have not. Looks like they're trying for a clean break.

Eh. They should rename it to something that makes sense.
On Thu, May 7, 2015 at 19:17 Bo Lopker<EMAIL_ADDRESS>wrote:

They have not. Looks like they're trying for a clean break.
—
Reply to this email directly or view it on GitHub
https://github.com/sorin-ionescu/prezto/issues/873#issuecomment-100044929
.

Heh, yeah, I agree. Guess it means Dandified Yum
However, it is better than yum in every way. It's certainly faster.

More context: http://dnf.baseurl.org/2015/05/11/yum-is-dead-long-live-dnf/

Reopened #407.


[BUG] Missing information in errors

Rancher Server Setup

Rancher version: 2.9.1

Information about the Cluster

Kubernetes version:
Cluster Type (Local/Downstream):

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider):

Describe the bug
Errors don't provide enough information when using the ToMiddleware method from steve. Error messages returned from the Rancher code are ignored, and a generic error message is displayed to the user.
To Reproduce
Try to impersonate a user when you don't have enough permissions.
Result
The following error is displayed:
error: You must be logged in to the server (the server has asked for the client to provide credentials)

Expected Result
The error message should contain the error returned in the Rancher code:
error:  not allowed to impersonate

Additional context
Error message returned in the Authenticate method is ignored. We could add the error message to the context as we do with the CattleAuthFailed. Then we could retrieve the error message in the authHeader in Rancher, and display it to the user.

not needed since this is fixed in https://github.com/rancher/rancher/pull/47110


Update Year in License and Module Manifest to 2017

See https://github.com/PowerShell/DscResources/issues/298

Fixed in #240


Update import statement in documentation?

I'm submitting a ...  (check one with "x")
[X ] bug report => search github for a similar issue or PR before submitting

Current behavior
In the documentation "Getting Started" section, the import statement of
import { NgxDatatableModule } from 'angular2-data-table';
should read
import { NgxDatatableModule } from '@swimlane/ngx-datatable';

Can you PR this please?

@amcdnl done! Thanks


Support Octoprint 1.4.0

Originally requested by @weactivist at https://github.com/richjoyce/OctoPrint-Slack/issues/14

Fixed here: https://github.com/mkevenaar/OctoPrint-Slack/commit/a53d9b557dc5258fba2f730e8950e07426665394


Support references to external types

Pulumi schema can contain references to externally defined types from other packages.  This does not yet appear to be supported by this library.  In principal it seems like it could be supported either automatically (if package name and version can be identified?) or via some manual mapping information users provide?
This is to support something like this:
"properties": {
                "functions": {
                    "type": "array",
                    "items": {
                        "$ref": "/aws/v4.0.0/schema.json#/resources/aws:lambda%2Ffunction:Function"
                    },
                    "description": "The functions managed by this service."
                },
                "url": {
                    "type": "string",
                    "description": "The API Gateway REST API managed by this service, if any of the functions expose HTTP handlers."
                }
            },

Via something like this:
type Service struct {
	pulumi.ResourceState

	// Outputs
	Url     pulumi.StringPtrOutput `pulumi:"url" provider:"output"`
	Lambdas []*lambda.Function     `pulumi:"lambdas" provider:"output"`

	// Inputs
	Functions FunctionMapInput     `pulumi:"functions"`
	Provider  ServiceProviderInput `pulumi:"provider"`
}

We can already do this in theory for types like ServiceProviderOutput. We can implement support for this generically (input+output) by traversing the To*Output of FunctionMapInput and then calling ElementType on an empty instance of that. This should be a transparent experience to users.

#21 definitely addressed other issues (I made more progress on #17 👏 ) - but didn't address the issue described in this issue.
For two reasons I believe:

The code noted above (and commented out in #17) triggers panic: Detected pointer type during serialization - did you forget to dereference?.
I'm fairly sure even if that was fixed or worked around, this would run into what's captured in #20?

If (2) is the only issue, this could be closed as a dupe of #20, but probably worth reopening this for now?  (I can't as I'm not a contributor on this repo :smile:).

I believe this issue is that []*lambda.Function is an array of pointers, not that it's an external type. I've opened a pull request (#23 ) which should address this.

Fixed with #23.


Added functionality to run on RWTH parsl/condor

PR Summary:
This PR introduces an executor class tailored for RWTH clusters to facilitate the execution of the PocketCoffea framework using the parsl distributor.
Changes Made:

Introduces executors_RWTH.py in pocket_coffea/executors to support RWTH clusters.
Modifies executor_options_defaults.yaml and runner.py in pocket_coffea/parameters and pocket_coffea/scripts respectively.

Context:
This update is crucial for users operating on RWTH clusters, as it streamlines the execution process of the PocketCoffea framework, enabling compatibility within this specific environment.
Testing:
Tests have been successfully conducted on AnalysisConfigs/blob/main/configs/zmumu/example_config.py for a small set of jobs, with all tests passing without any failures.
Future Work:
Further enhancements will include improvement of passing the conda environment in a better way (already existing in other executors, but doesn't work seamlessly in RWTH clusters).

Hi @uttiyasarkar thanks a lot!
It seems all good for me.
Can you just add the executor in the list of available ones in the docs here please: https://github.com/PocketCoffea/PocketCoffea/blob/main/docs/running.md?


Add alt-text tags to post-chart build pages

Add alt-text tags to the troubleshooting page:
Page exists at: https://wildaid.github.io/charts/2020/06/14/TroubleshootingCharts.html
In the code at: _posts/build_charts/2020-06-14-TroubleshootingCharts.md
A brief guide to alt-text tags can be found in our style guide at https://wildaid.github.io/style/2020/10/02/Alt-Text.html

Hey, I've read the guidelines and would love to work on this issue if you could to assign it to me. Thanks!

Hello, thanks for offering to work on this! I have assigned it to you @jessicasalbert


Replace usage of direct invocation of native modules with generated wrappers

iree_vm_invoke is not currently designed to directly invoke native functions. check_test does this, and it only happened to work because there was missing validation inside of the invocation logic. This validation is really useful so it'd be nice to rework check_test to not do this.

You're just talking about https://sourcegraph.com/github.com/google/iree/-/blob/iree/modules/check/check_test.cc#L174, not any issue in the check runner, right? It seems a little odd that we have to know whether something is a native function or not at that level. Isn't a native module just one way of implementing a VM module?
Looking at your commit, the validation in question that's breaking is a function that takes variadic arguments, right? Which we can write with a native module but not with a normal bytecode module. Although actually the check module functions don't take variadic arguments. I guess that the way native module function signatures are created has to assume they do though? I used to have another module wrapping the calls to the native module for the unit tests, but removed it in https://github.com/google/iree/commit/25e13625fb693e7d7eb7846022a8e4a5254c4560. Basically you're saying we need to put that back?

Was fixed long ago with https://github.com/google/iree/commit/4c0a53e955c44480e2387a9d756a33f66830a394


Allow JDBC datasource name to be passed via parameter

Related Problem or Business Case
NN has some adapters where datasource name needs to be determined at runtime, not static during configuration.
Describe the Feature
NN has custom code to allow passing a datasource-name for JDBC senders via a parameter.
It appears useful to add this as feature to the framework, using their changes as basis.
Collaboration with External Companies
No, community resolution only
Anything else?
No response

Closing this as we don't intend to merge this.


Common front end: noSuchMethod forwarding methods.

This is the front end specific issue for #31426, which has the details.

/cc @kmillikin @mraleph
FYI: CHA-based devirtualization of method calls (in precompiler) relies on the presence of the forwarding methods for noSuchMethod().
abstract class Interf {
  void foo();
}
class A implements Interf {
  void foo() { ... }
}
class B implements Interf {
   noSuchMethod(Invocation i) { ... }
}

Interf ii = new B();

ii.foo();

Without forwarding method foo() -> noSuchMethod() in B, devirtualization incorrectly discovers that the only implementation of Interf.foo() is in A and replaces ii.foo() with direct call to A.foo().

I will implement this, and then remove the special handling in the DDK back end.

The document nosuchmethod-forwarding.md has been under discussion for a while. It has been landed just now. The main change is clarification, and I believe that it should be easier to read now, but the changes should not affect the implementation (it now talks about 'induced' forwarding methods corresponding to 'implicitly forwarded method signatures' of a class relative to its interface, and the dynamic semantics gets simpler because there is no notion of generating anything, the methods "are just there all the time", just like 'induced' getters and setters corresponding to variable declarations).

This is now blocking an internal flutter test.

After discussion with Regis and Slava, it appears that this feature should be implemented primarily in the VM, re-using the existing "no-such-method" dispatching machinery.
What we need from the CFE is that each abstract method that needs a forwarding implementation be marked with a specific bit indicating this.

I've created #32628 to track the VM implementation of this feature.

We also need the CFE to add/ensure corresponding abstract methods exist in each class where the stubs need to be added. E.g.:
class C {
void foo();
}

class D implements C {
dynamic noSuchMethod(...) {}
}

CFE needs to add an abstract method for foo to D with this bit set.

There are a few remaining bugs, but overall the feature is complete.


miscellaneousUpdate

upload PatchOnSpark design doc
fix for local failed tests in SparkE2EChangeFeedItest

API change check
API changes are not detected in this pull request.


fix(ib): builders deadlock between setState and FutureBuilder

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 3 (33.33%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 74.472%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/ui/views/ib/builders/ib_interaction_builder.dart
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
3880

Relevant Lines:
5210

💛  - Coveralls


Deploy BNB Teleportation service on AWS & shut down networks we won't use anymore

Related to #1034
Issue Type

[ ] bug report
[ x] feature request

Current Behavior
Routes are configured onchain, but teleportation service needs to pick them up.

avax shut down

done


feature: Allow underscore for numerical constants

Swift allows writing underscores for numerical constants to help read large numbers more easily.
Go should allow it too:
t :=<PHONE_NUMBER>000
OR
t := 1_000_000_000_000 // Much easier to read number

Good news: duplicate of #28493


Improve actions for Toast

:tada: This issue has been resolved in version 0.9.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Ensure that the samples use the same largefile options as the library

Create a configuration file specific to the samples, to mimick what a
regular application would have to do.
Fixes #94

I can confirm that this works


Docker compatibility for Slideflow Studio

Feature
Compatibility and feature testing when running Slideflow Studio from Docker containers (as referenced in #240)
Additional context
GLFW OpenGL rendering and Tkinter both theoretically support Docker, so this should be possible to support.

Hi, I was able to run slideflow studio on docker running:
xhost +
docker run -it --rm -e DISPLAY=:0.0 --network=host --privileged     -v /dev:/dev     -e DISPLAY=$DISPLAY     -v /tmp/.X11-unix:/tmp/.X11-unix     -v $HOME/.Xauthority:/root/.Xauthority    jamesdolezal/slideflow:latest-tf

Not sure if all the parameters are mandatory

Thank you for reporting this! That's great news. I'll update the dockerfiles to install python3-tk and include these instructions in the documentation.

Hi, thank you for the great tool!
I'd like to launch Slideflow Studio on docker and access it from the client PC. I followed your instruction and run
slideflow-studio

, but I got the following error:
/usr/local/lib/python3.8/dist-packages/glfw/__init__.py:916: GLFWError: (65543) b'GLX: Failed to create context: BadValue (integer parameter out of range for operation)'
  warnings.warn(message, GLFWError)
python3: /builds/florianrhiem/pyGLFW/glfw-3.3.8/src/window.c:530: glfwSetWindowPos: Assertion `window != ((void *)0)' failed.
Aborted (core dumped)

. The same error occurred when I ran
python -m slideflow.studio

How can I resolve this?
I'm looking forward to hear from you.
Thank you.

It looks like GLFW (the window management library Studio uses) is having trouble finding an active X server. This is a common issue when attempting to run GUI applications in a Docker container.
The following additional details will help us look for a solution:

What operating system is the container being run on?
What command did you use to run the container?
Is the container being run locally (on a machine with a display output), or remotely? If remotely, how is the display output being forwarded?

What operating system is the container being run on?
-> Ubuntu 20.04.6 LTS or CentOS Linux 7 (I received the same error message on both operating systems).

 If remotely, how is the display output being forwarded?
-> It is being run remotely.  After logging in the remote server using ssh -X user@destination, I confirmed that DISPLAY=localhost:10.0 was set. I also verified that xeyes was successfully forwarded remotely in the docker container.

Thank you.


Custom Notebooks Updates

Related issues:

https://github.com/opendatahub-io/odh-dashboard/issues/864
https://github.com/opendatahub-io/odh-dashboard/issues/375

Hi @kywalker-rh, this seems to be partly completed, as https://github.com/opendatahub-io/odh-dashboard/issues/375 is not done yet, am I right ?
https://github.com/opendatahub-io/odh-dashboard/issues/864 appears completed though (see latest screenshot from RHODS 2.4)


Make an install/setup script

Given the final distribution will be a python package, we should decide on a setup/install script for installations on localhosts. After that, I will make the corresponding Dockerfile and make docker resemble a local install as much as possible.
Ideally, the program should run in the same way locally and in container with dependencies under the same path and tests harness available locally and in docker.
Starting with dependencies:
Catch, cereal and variant externals are header-file dependencies referenced at specific commits and we can
git clone repo && cd repo && git checkout  && cp include/ /usr/local/include/repo_name
clang_cpp_code_model can be installed into /usr/local/bin/
Need an install script for that too.
An uninstall option for ffig will go through and rm -rf all deps from specified locations.
If you agree to do that as part of setup/locally, we can reuse the same install script in the Dockerfile. After that, we can remove the externals/ dir, which will make your project even easier to install and allow docker to cache intermediary images.
What else is the build process missing?

It would be good to provide a way to install to locations other than /usr/local.
If this is to be a Python module it should follow best practice for Python module setup/install; whatever that is these days. I had intended to look at this tonight.

That was just a suggestion to give a concrete example. Options where to install is a good idea for the future, I would agree on a default location, so we can get a working prototype asap.
What are good defaults?

I think my point was there are no good defaults. /usr (and /usr/local) are off limits in many systems. At the very least, any install script should be provided with something like a --prefix= (configure style) or similar.
I think the best approach would be to follow the latest recommendations for a Python package. This would ensure that we are compatible with people installing into a virtual env, etc.

This is blocked by issue #52
Once we have FFIG.py and some template files, all we need to install for a user is FFIG.py and the template files. There are dependencies on other Python modules, but that's it.
The user will need to install libclang (it's a dependency of clang.py, which we depend on) and let FFIG know where to find it. Flexibility is king here.
I don't think that FFIG should be building shared libraries for now, just producing source files from headers and templates. That will keep the user requirements simple.
To use the generated files the user may or may not need extra libs, CMake etc. Let's defer handling those for now.

Ok, then I can take care of docker installation problems descrubed in #56, by putting the specific header files into /usr/local/include during the early stage of container build.

I'll try and make a start on this today.


Create a Helm chart and a local kubernetest cluster with Kind to deploy the service

To later test integration with third parties or more complex architecture (kafka) implement a local kubernetes deployment
TODOs

[x] helm chart
[x] Kind cluster
[x] Add Postgres DB
[ ] Add Kotlin-playground Deployment
[x] Kubernetes Service + Ingress

Outside exposition (ingress + service + nginx) ok
Remains:

Mindee & insee secret clean configuration

Insee KO because wrongly encrypted in the secret ?
Mindee KO internal error 500 about   500: java.io.IOException: Failed to parse multipart: Content-Type's boundary parameter is missing

open postgres datasource to outside the appl and plug infra <-> app

Mindee + insee connexion from deployment OK
Postgres is up and the application is connecting to it.
Remains
But sqldelight does not install the schema yet (so no table)


Responsive Navbar

This PR includes changes to fix the issues seen when resizing the navbar (see video attached). The Dropdown menu for language selection has been removed due to only our docs currently only supporting English.
Before this PR:
https://github.com/ava-labs/avalanche-docs/assets/99047250/fb2abce8-7988-480e-a99d-d810de055f96
After this PR:
https://github.com/ava-labs/avalanche-docs/assets/99047250/b8eebd8e-a7cd-4ab3-b690-3c61e85bb627

Not sure of what the issue might be, but I find the menu is not displaying correctly with some window size.
https://github.com/ava-labs/avalanche-docs/assets/43045203/188a18c5-e5a5-49c6-be95-a7c04111203e

@Andyvargtz good catch, going to address this asap

Closing this after a conversation with docusaurus team. The only current solution to this issue is to "Have fewer or shorter navbar items." At the moment the breakpoints aren't adjustable.
This aligns with our long terms goals to simplify the docs so best not to mess with the CSS too much to try to achieve it in the short term.


Switch over to react and es6

Oh the joys of the react toolchain. After losing a couple of hours this morning, I feel I need to switch over to a more standard react app vs. this frankenstein experiment.
The culprit turned out to be express-react-views and in particular this block of code in the ./index.js:
        // Remove all files from the module cache that are in the view folder.
        Object.keys(require.cache).forEach(function(module) {
          if (moduleDetectRegEx.test(require.cache[module].filename)) {
            delete require.cache[module];
          }
        });

Tried switching versions of node, appears to be a problem with the cache, or at least the cache references on my system somehow becoming undefined.

For now, immediate solution will be to fork that module and use it to give me time to dump the module.


Make the border sign waterloggable

It used to be waterloggable till the project updated to 1.18

Done


Bundle whole thing w/ js2bin or similar

Standalone executable
Option for where to store db
Option for port to listen on
Pipeline to bundle and rebuild

option to reset admin user or password


*.msftauth.net missing in network requirements list

in order to onboard a machine on azure, also the domain *.msftauth.net is required
N

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: f3c90181-0889-2bae-be2e-97fdccb509f6
Version Independent ID: 76aa348b-f072-fa5f-4403-5fb83d4ee2a2
Content: Connected Machine agent network requirements - Azure Arc
Content Source: articles/azure-arc/servers/network-requirements.md
Service: azure-arc
Sub-service: azure-arc-servers
GitHub Login: @johnmarco
Microsoft Alias: johnmarc

@nicolgit
Thanks for your feedback! We will investigate and update as appropriate.

@nicolgit - Thanks again for bringing this to our attention. We have updated the doc and it will be live once it's merged.  We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

As far as I can see, the domain is still missing from the documentation page.


Refine load/save contract for qbeast-spark

Problem
It is necessary to make the qbeast-spark contract more precise in the part responsible for loading and saving indexed data.
Currently, qbeast-spark implements CreatableRelationProvider and RelationProvider traits on the top of Delta Lake. The createRelation methods are generic in terms of supported parameters, namely the parameters of the operation are specified as Map[String, String]. Our implementation passes the received parameters directly to the corresponding Delta Lake API. It means that the customer can use Delta Lake specific parameters to invoke some Delta Lake features like partitioning or user metadata. Our implementation tries to handle those parameters where it is possible.
The problem is that the intent to provide a transparent support of the Delta Lake behind the Qbeast can lead to the situation when the customer expects our system to implement a scenario that is supported by Delta Lake and which is not compatible with our indexing system. For example, at the moment we cannot support the partitioning as it is specified by the customer, we have to extend the partitioning by adding the cube and state fields.
The goal of this task is

To specify the features and the corresponding options supported by Qbeast save/load operations
To isolate the Delta Lake based implementation from the options which are not supported by Qbeast.
If it is necessary to support some Delta Lake features then to define the corresponding Qbeast options and to implement their translation to the original Delta Lake options as a part of the implementation.

In brief, the proposed approach is to hide the used Delta Lake instance from the direct access by the customer applications. Or course, we cannot hide it completely, because it is in the classpath, however, it should be done at the contract level.
On the load/save contract
At the moment DataFrameReader and DataFrameWriter are the only API supported by Qbeast for loading and saving data. To be precise only a subset of available methods of DataFrameReader and DataFrameWriter are supported by Qbeast. Below they are described in mo details.
The load contract

Client obtains a DataFrameReader instance from the SparkSession.
Client uses "qbeast" as format.
Client can specify standard option "timeZone"
Client uses one of the "load" methods to load the DataFrame.
Alternatively a client can use "qbeast" method with the table path as a shortcut for "format(...).load(...)".
Alternatively a client can specify the table path as the "path" option. This scenario is supported by Spark, though it is not recommended.

The save contract

Client obtains a DataFrameWriter instance from the DataFrame "write" method.
Client uses the "mode" method to specify the save mode.
Client uses "qbeast" as the format.
Client uses "columnsToIndex" option to specify a comma-separated list of columns to be used by the index.
Client can specify standard option "timeZone"
Client can specify the partition columns using the "partitionBy" method.
Client uses the "save" method with the table path to write the data.
Alternatively the client can use the "qbeast" method with the table path as a shortcut for "format(...).save(...)".
Alternatively the client can specify the table path as the "path" option. This scenario is supported, though is not recommended.
The methods "bucketBy", "sortBy", "insertInto" and "saveToTable" are not supported at the moment, because they require a certain type of the underlying table.
The methods "csv", "json", "jdbc", "text", "orc", and alike are not supported, because they require a different data format.

On implementation
QbeastDataSource should remove all unsupported options from the parameters passed to the implementations of TableProvider, CreatableRelationProvider and RelationProvider before those parameters could be passed further to the persistence layer implemented on the top of Delta Lake.

Cleaning issues, this one is irrelevant for the moment


Latest MDRL not working with Unity 2017

The latest MRDL does not seem to work with the latest Unity 2017 release even though it says it does. I'm using 2017.2.0f3 and get a whole list of errors and warnings. I have found this youtube showing that it's easier to roll back Unity but that can't be the only fix, can it?
https://www.youtube.com/watch?v=eNG336Wzp3s

Hi @MrGaryB,
There are 2 branches with one compatible with 2017.2.0f3 MRTP:

https://github.com/Microsoft/MRDesignLabs_Unity/tree/Unity2017.2-Dev

And the master branch compatible with 2012.1.  We are in the process of merging MRDL functionality in MRTK and then upgrading the main projects with MRTK instead of the old version of HoloToolkit currently checked in.  This work will be done over the next month.  Until then, here is what works:
Unity 2017.2 : use Dev Branch

https://github.com/Microsoft/MRDesignLabs_Unity/tree/Unity2017.2-Dev

Unity 2017.1.0f3 : use Master branch

https://github.com/Microsoft/MRDesignLabs_Unity

The problem is that the namespaces and APIs have changed around VR and the input stack.  Since we were focused on ratifying the input management and singletons with MRTK we have not yet updated the base project to 2012.2.
thanks,
-pat

Hi Pat,
Thank you for your reply, much appreciated.
I'm wondering if you could assist me further regarding the final update as per the instructions. It doesn't seem to be updating as expected. Is there a something I'm not doing correctly?
Thank again for you help.
Gary


MSSQL inserts fail on table with trigger

Inserts on a table with a trigger fail because the OUTPUT clause does not include an INTO. I am currently working on a project where we are using triggers to track database changes in SQL Server.  After investigating we discovered that the insert is failing because of the OUTPUT clause in the sql generated by the query builder does not use INTO.
[1563975875] ERROR (13578 on ubuntu-vbox):
    Error: RequestError: insert into [tablename] ([field0], [field1], [field2]) output inserted.[auto_id] values (@p0, @p1, @p2) - The target table 'tablename' of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause.

We have been unable to find a workaround for the issue.

Unfortunately I've never used MSSQL and there are zero tests for it in objection. Someone else needs to fix this.

I think I may have come up with a solution, but it doesn't apply to objection, it applies to knex.js. I can't say for certain whether or not there are code implications in objection.js, but reforming the sql statements on inserts to create a temp table to insert the output into, then returning the insert values by selecting them out of the temp table seems to resolve the issue, but this is totally in the knex query builder. I plan to open an issue in the knex.js repo. Thanks.

Hi guys, I'm using knex.js and I'm having exactly the same issue with the following code using knex query builder:
let result = await db('products')
.returning(['productId', 'productCode'])
.insert({...})
products table has a trigger as the error reflected:
RequestError: The target table 'xxx' of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause.
@cludwig28 have you got any luck with the issue raised for knex.js? May I ask if you have any workaround on this?
Appreciate helps and tips!

We actually forked knex and wrote a fix for it. It's up on npm at https://www.npmjs.com/package/knex-navistone. I didn't get the opportunity to open a trouble ticket on the knex repo and our fix is completely unsupported, but it works.

@cludwig28 Thanks for sharing that. Umm, that sounds like a bit extreme in our case.. I'm currently doing this with MSSQL as a workaround since the only thing is not working for me is just returning method:
let result = await db('products').insert({...})
let productId = await db.raw('select @@identity as productId')
Does anyone see any problem with this approach?

In case anyone comes across this like me, this issue has been fixed in knex https://github.com/knex/knex/pull/4152


The "Create a test" section should follow the "best practices" article

The "Create a test" section should follow the guidelines specified in Unit testing best practices, in particular the naming convention and the practice of avoiding a Setup (constructor in the case of xUnit) method.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e39c2f1b-f41a-bdf9-2646-09379941453d
Version Independent ID: 422811cb-6287-03af-ba8d-1daebee9744d
Content: Unit testing C# code in .NET Core using dotnet test and xUnit - .NET Core
Content Source: docs/core/testing/unit-testing-with-dotnet-test.md
Product: dotnet-core
GitHub Login: @ardalis
Microsoft Alias: wiwagn

Hi @Saborion - that is a fair observation, I can fix that. Thanks


Fix button position

I don't know if that button position is a good idea, because the space next to the "submit" button is usually reserved for a "cancel" action. In this case it's "delete", which is very different and also a destructive action. So I don't think we should have any ambiguity here?