[Builtins] Add support for pattern matching builtins

This PR is an EXPERIMENT, it's not intended for merging, so don't.
It's a proof-of-concept, there's undefined in the code and whatnot.
The main change is replacing
data BuiltinRuntime val
    = BuiltinResult ExBudget ~(MakeKnownM val)
    | <...>

with
data BuiltinRuntime val
    = BuiltinResult ExBudget ~(MakeKnownM (HeadSpine val))
    | <...>

where HeadSpine is a fancy name for NonEmpty:
data Spine a
    = NilSpine
    | ConsSpine a (Spine a)

data HeadSpine a
    = HeadSpine a (Spine a)

(we define a separate type, because we want strictness, and you don't see any bangs, because it's in a module with StrictData enabled).
The idea is that a builtin application can return a function applied to a bunch of arguments, which is exactly what we need to be able to express caseList
caseList xs0 f z = case xs0 of
   []   -> z
   x:xs -> f x xs

as a builtin:
-- | Package a function and a list of its arguments as a 'HeadSpine'.
headSpine :: Opaque val ab -> [val] -> Opaque (HeadSpine val) b
headSpine (Opaque f) = Opaque . HeadSpine f . foldr ConsSpine NilSpine

instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where
    <...>
    toBuiltinMeaning _ver CaseList =
        makeBuiltinMeaning
            caseListPlc
            (\_ _ _ _ -> ExBudget 1 0)  -- TODO.
        where
          caseListPlc
              :: SomeConstant uni [a]
              -> Opaque val b
              -> Opaque val (a -> [a] -> b)
              -> EvaluationResult (Opaque (HeadSpine val) b)
          caseListPlc (SomeConstant (Some (ValueOf uniListA xs0))) z f = do
            DefaultUniList uniA <- pure uniListA
            pure $ case xs0 of
                []     -> headSpine z []                                             -- [1]
                x : xs -> headSpine f [fromValueOf uniA x, fromValueOf uniListA xs]  -- [2]

Being able to express [1] (representing z) and [2] (representing f x xs) is precisely what this PR enables.
Adding support for the new functionality to the CEK machine is trivial. All we need is a way to push a Spine of arguments onto the context:
    pushArgs :: Spine (CekValue uni fun ann) -> Context uni fun ann -> Context uni fun ann
    pushArgs args ctx = foldr FrameAwaitFunValue ctx args

and a HeadSpine version of returnCek:
    returnCekHeadSpine
        :: Context uni fun ann
        -> HeadSpine (CekValue uni fun ann)
        -> CekM uni fun s (Term NamedDeBruijn uni fun ())
    returnCekHeadSpine ctx (HeadSpine f xs) = returnCek (pushArgs xs ctx) f

Then replacing
    MakeKnownSuccess x -> returnCek

with
    MakeKnownSuccess fXs -> returnCekNonEmpty ctx fXs

(and similarly for MakeKnownSuccessWithLogs) will do the trick.
We used to define caseList in terms of IfThenElse, NullList and either HeadList or TailList depending on the result of NullList, i.e. three builtin calls in the worst and in the best case. Then we introduced ChooseList, which replaced both IfThenElse and NullList in caseList thus bringing total amount of builtin calls down to 2 in all cases. This turned out to have a substantial impact on performance. This PR allows us to bring total number of builtin calls per caseList invokation down to 1 -- the CaseList builtin itself.
If we're going to officially support encoding data types using Data the ideas described here may be worthwhile.

I'm a bit confused about what this would entail for the PLC language.
Would there be a new builtin-function? would case be a new language construct?

No new language constructs. New built-in functions (caseList in the description of the PR, plus caseData in the PR), plus a bit of changes to the builtins machinery and the CEK machine (see in the PR, it's a surprisingly small amount of changes).

I saw the PR, but it's about code and I don't fully understand the consequences of the code for PLC. What would be the type of caseList?

What would be the type of caseList?

It's in the PR, the plutus-core/plutus-core/test/TypeSynthesis/Golden/CaseList.plc.golden file (there's a golden file with a type signature for every builtin, including the proposed ones):
(all
  a
  (type)
  (all
    b
    (type)
    (fun [ (con list) a ] (fun b (fun (fun a (fun [ (con list) a ] b)) b)))
  )
)

or if you're not a Cylon:
all a b. list a -> b -> (a -> list a -> b) -> b

This is the type of the built-in function, i.e. what this PR proposed to implement support for.
We also have a function that is confusingly named the same (the one in stdlib), but has all b and the subsequent list a swapped, because it's some extremely outdated legacy code that was introduced in order to make it easy to replace unwrap-based code with code that uses pattern matching. Basically, if you see StdLib in the name of a file in this PR, ignore it, it's not really useful for anything and it's not used other than for tests. I apologize for the confusion, I should've specified that stdlib stuff should be ignored, it was just for me to test that the proposed builtins type check and evaluate fine.

Which is why my original plan was to allow arbitrary trees of application (in the sense of Data.Tree.Tree), not just a head and a spine-as-a-list.

Is the "real" answer here that we can return any term that introduces no new variable binders? e.g. introducing force/delay/constr all also seem fine, because it's adding new binders that really throws us off (because then we'd need to shift any binders in the input terms depending on where we put them, etc.
Of course, our arguments are values and not terms, so we can't actually construct a term, instead we have to construct an evaluation continuation or something, so that does make things more complicated. And maybe the most useful and straightforward evaluation continuation is just a spine of applications. Although even then... can I do this?
\h a -> h 1 a

or this?
\h a -> h (addInteger 1 2) a

/benchmark plutus-benchmark:nofib

/benchmark plutus-benchmark:lists

+3% on average on the builtins-heavy nofib benchmarks. Not too bad I guess and maybe I could squeeze some performance out of it.

@michaelpj seems like I forgot to hit "comment" last time I wrote a response to your latest comment. Here's another attempt.

Is the "real" answer here that we can return any term that introduces no new variable binders? e.g. introducing force/delay/constr all also seem fine, because it's adding new binders that really throws us off (because then we'd need to shift any binders in the input terms depending on where we put them, etc.

Yeah, I guess, although we don't seem to need force or delay. Yet anyway.
Although we could allow constructing arbitrary terms as long as it's impossible to embed values supplied as arguments into them, so that there's no chance of mixing up original and created-by-the-builtin variables, but I'm not even sure what we could use that for, so probably not worth discussing it.

Although even then... can I do this?
\h a -> h 1 a

Yep, the machinery implemented in this PR is enough for that, just checked:
this :: Opaque val (Integer -> a -> b) -> Opaque val a -> Opaque (HeadSpine val) b
this h (Opaque a) = headSpine h [fromValue (1 :: Integer), a]

or this?
\h a -> h (addInteger 1 2) a

Not with the machinery implemented in this PR (neither nested application nor builtin calls are supported within the denotation of a builtin), but we can add support for those later if we want to.

/benchmark plutus-benchmark:lists

/benchmark plutus-benchmark:lists

/benchmark plutus-benchmark:lists

/benchmark plutus-benchmark:lists

/benchmark lists

/benchmark lists

/benchmark lists

/benchmark marlowe

/benchmark marlowe

/benchmark marlowe

Now we're talking!

The data ones have smaller speedup compared to the list ones, because there's more stuff unaffected by the changes going on in them. Gonna experiment a bit to see if I can optimize those benchmarks only using the new builtins.

/benchmark lists

/benchmark lists

/benchmark nofib

/benchmark nofib

/benchmark validation

/benchmark validation

Classic.

/benchmark lists

/benchmark lists

/benchmark lists

/benchmark lists

Closing in favor of #6530.


Allow empty value.

I just had a case where the  phone I got form a database didn't contain a country code and I got an excepion from this package that says that the country code was not found and it just crashed.

missing:

sample
expected behavior

move to https://github.com/cedvdb/phone_numbers_parser/issues/67


Mark fields not needing to be nullable as with gogoproto.nullable = false option

This applies to both fields on the MsgTransfer and fields of the new ForwardingInfo message.
Surfaced during internal walkthrough of ics20 v2 forwarding (commit efcfa5d)

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

I was originally in favour of using a non-nullable field as I couldn't see a benefit from a go perspective. But I did some investigation. Both protobuf and json act in synchrony regarding the following behaviour.
Pointer, empty = no field emitted/encoded
Pointer, set = field emitted/encoded
No pointer, empty = field emitted/encoded as empty ({} in json, *\x00 something like this in protobuf)
No pointer, set = field emitted/encoded
Given this. By using nullable:

the decoding actor can differentiate between non-set and empty values
smaller encoding size (slightly more performant)


FR: Keyboard shortcut to open main application window after it has been closed

OS:
Mac OS 10.12.1
Issue Descriptions:
Please add a keyboard shortcut that allows for the application window to be re-opened in the foreground.  Most Mac apps do this via cmd+1 or cmd+0 or sometimes opt+cmd+1.  Currently (as far as I can tell) the only way to re-open the GPMDP main window after closing (cmd+w) is to navigate to the dock and click the icon. Toggling "full size player/mini player" and clicking "bring all to front" does not do it.
I primarily use GPMDP because of the keyboard shortcuts, and after starting a song will close the window. This would vastly improve the workflow, and bring it in sync with other desktop application patterns.
Steps to Reproduce:
1 - Open GPMDP and play a song
2 - Close GPMDP window (cmd+w) with song still playing in the background
3 - Try to re-open GPMDP window (to change songs, search, whatever) via keyboard.

Most Mac apps do this via cmd+1 or cmd+0 or sometimes opt+cmd+1

I've never seen this before, can you provide an example?
FWIW the current behavior is just to be consistent with other platforms.

Closing until a response is given


rust-analyzer reports errors parsing that are accepted by rustc

I have a file (https://github.com/samuela/rustybox/blob/master/procps/ps.rs) that rust-analyzer complains about. Specifically, it's not happy with the ellipsis type here: https://github.com/samuela/rustybox/blob/master/procps/ps.rs#L18:

However, the file is syntactically correct and the project compiles fine as of all recent rust versions including
  nightly-x86_64-unknown-linux-gnu updated - rustc 1.43.0-nightly (c20d7eecb 2020-03-11) (from rustc 1.43.0-nightly (158127853 2020-03-10))

oh my, haven't realizes this is actually valid: https://github.com/rust-lang/reference/pull/781


Cleanup old cython files before testing again

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify.
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @robertwb PTAL

Thanks.

Coverage decreased (-0.003%) to 70.511% when pulling e9571b9b9f867d4d95cff61b250dddf9e200c557 on sb2nov:BEAM-cython-cleanup into 24c6ff44e88d5c42e6685a1db4d8ff4973a5baa5 on apache:master.


Possible bug in Profiles - Active program doesn't change the colours if an app already open

So I created a couple of profiles to test the switching.
Chrome - Green
Citrix Workstation - Blue
CoinOps Next2 - Red
They all work fine on their own, and closing the app moves the colour back to default.
However, if I open Chrome, the light turns green (as it should) then I open Citrix, the light stays green.
If I then close Chrome, the light will change to blue as expected.
Is there a way to make the active window trigger the colour change? So if I tabbed between three open apps, it would dynamically change (this is how AWCC was working for me).

Hmm... Good idea. Now i use first app found in memory as a reference, i mention it in readme, but also keep active app in mind is reasonable.
Ok, i'll try to add this into the next release. But it will be not so soon (some days), now i add support for multiply devices.
I'll drop a message here with the results.

Check new release (1.1.7), now active window application profile always selected (if any).
Also, i add a checkbox "Only then active" at "Profiles" tab - if checked, profile only activates if application window active and de-activated if background.

Wow, super fast! Works great on initial testing, thanks so much :)

You are welcome.
Please test more and close this issue if ok for you.

One minor issue.
I set up a profile for Chrome - it seems to stay active when minimised, I have to close it for the default to restore.
All other apps, when minimised, the default profile kicks in

File explorer is a bit sticky too, if I open that (with nothing else open) then close it, the profile doesn't reset. If I go into AlienFX, I can hit refresh and it updates.

I set up a profile for Chrome - it seems to stay active when minimised, I have to close it for the default to restore.
It's normal behavior.  Enable checkbox on "profiles" tab if you want it acting like this.

All other apps, when minimised, the default profile kicks in
This should not be. Maybe they compete to last selected profile... I check.

File explorer is a bit sticky too, if I open that (with nothing else open) then close it, the profile doesn't reset. If I go into AlienFX, I can hit refresh and it updates.
"explorer.exe" is also a name for desktop. I don't recommend to assign any profile to it.

It seems I fixed the Chrome issue by adding Explorer.exe as a profile to override the bug with Chrome :)

I assume it fixed now, re-open if you found some scratch in stability or functional.
Close this issue.


Moving shared jdbc driver dependencies to parent pom

add MS SQL Server JDBC driver

fixed indentation to use tab

Resolves: spring-cloud-task-app-starters/app-starters-release/issues/24

LGTM


[question] Move to 3-way merging?

Updating resources can result in the removal of changes made at runtime. For example Kubernetes adds annotations to persistent volume claims that are deleted when a second deploy is run. Helm also moved to a 3-way merging strategy during the release of Helm 3.
This Helm issue contains the reasoning behind the decision to move: https://github.com/helm/helm/issues/3805
And the eventual PR: https://github.com/helm/helm/pull/6124

hey @ioben, kapp explicitly decided to not do 3 way merge, and instead allow the user to specify how to resolve "conflicts". here is our thinking:

you as an operator have a set of files (input files given to kapp via -f) which state what is the desired
cluster has some state that needs to be converged to whatever input files specify, with one exception: in some cases cluster is the source of truth for certain information (but not most) and will maintain that state on resources (common examples: some annotation on Deployment, clusterIP on Service, etc.)

given information above there are multiple ways to converge: make assumptions about how to merge things (basic 3 way merge), be explicit about how to merge things (kapp with its rebase rules), and just override.
overriding is not really an option as it removes potentially important cluster changes.
regarding explicit vs implicit, we decided to go with the explicit option. kapp allows users to add rebase rules to specify exactly which information to retain from existing resources. that gives control to the user to decide what's important to be kept based on cluster state and what's not. this method ensures that there are no surprising changes left in the cluster (if 3 way merge was used, then user cannot confidently know how final resource will look like; ... imagine if you had a field allowUnauthenticatedRequests: true in some resource that someone flipped on in your cluster, and your configs never specified it; it would not be removed unless you decide to also specify this field in your configs).
kapp comes with some common k8s rebase rules. you can see them via kapp deploy-config.

hopefully that answered your question. ill close it at this point. feel free to reopen for more discussion.

Hey @cppforlife, appreciate the detailed answer to this! I'll need to dig into the rebase rules further. I had previously seen them, but honestly didn't quite understand what they were for till now.
Thanks!

@ioben if you have some ideas in how to make docs better in this regard, it would be much appreciated.


macOS install fails: 'Failed building wheel for scandir'

Description
Outline the issue here:
Install fails: 'Failed building wheel for scandir'
Environment summary
Install Method: How did you install the CLI? (e.g. pip, interactive script, apt-get, Docker, MSI, nightly)
Answer here: curl -L https://aka.ms/InstallAzureCli | bash
CLI Version: What version of the CLI and modules are installed? (Use az --version)
Answer here: N/A, unable to install
OS Version: What OS and version are you using?
Answer here: macOS Sierra 10.12.5
Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows)
Answer here: terminal (bash)
EVW-MBA-2013:~ eric$ curl -L https://aka.ms/InstallAzureCli | bash
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100   167  100   167    0     0    594      0 --:--:-- --:--:-- --:--:--   600
100  1252  100  1252    0     0   1157      0  0:00:01  0:00:01 --:--:--  3243
Downloading Azure CLI install script from https://azurecliprod.blob.core.windows.net/install.py to /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/azure_cli_install_tmp_XXXX.umWbggEO.
######################################################################## 100.0%
5.84
/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/azure_cli_install_tmp_XXXX.umWbggEO: OK
Running install script.
-- Verifying Python version.
-- Python version 2.7.10 okay.
===> In what directory would you like to place the install? (leave blank to use '/Users/eric/lib/azure-cli'):
-- '/Users/eric/lib/azure-cli' is not empty and may contain a previous installation.
===> Remove this directory? (y/N):
===> In what directory would you like to place the install? (leave blank to use '/Users/eric/lib/azure-cli'):
-- '/Users/eric/lib/azure-cli' is not empty and may contain a previous installation.
===> Remove this directory? (y/N):
===> In what directory would you like to place the install? (leave blank to use '/Users/eric/lib/azure-cli'):
-- '/Users/eric/lib/azure-cli' is not empty and may contain a previous installation.
===> Remove this directory? (y/N):
===> In what directory would you like to place the install? (leave blank to use '/Users/eric/lib/azure-cli'):
-- '/Users/eric/lib/azure-cli' is not empty and may contain a previous installation.
===> Remove this directory? (y/N): y
-- Deleted '/Users/eric/lib/azure-cli'.
-- Creating directory '/Users/eric/lib/azure-cli'.
-- We will install at '/Users/eric/lib/azure-cli'.
===> In what directory would you like to place the 'az' executable? (leave blank to use '/Users/eric/bin'):
-- The executable will be in '/Users/eric/bin'.
-- Downloading virtualenv package from https://pypi.python.org/packages/source/v/virtualenv/virtualenv-15.0.0.tar.gz.
-- Downloaded virtualenv package to /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/virtualenv-15.0.0.tar.gz.
-- Checksum of /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/virtualenv-15.0.0.tar.gz OK.
-- Extracting '/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/virtualenv-15.0.0.tar.gz' to '/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i'.
-- Executing: ['/usr/bin/python', 'virtualenv.py', '--python', '/usr/bin/python', '/Users/eric/lib/azure-cli']
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /Users/eric/lib/azure-cli/bin/python
Installing setuptools, pip, wheel...done.
-- Executing: ['/Users/eric/lib/azure-cli/bin/pip', 'install', '--cache-dir', '/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i', 'azure-cli', '--upgrade']
Collecting azure-cli
Downloading azure_cli-2.0.6-py2.py3-none-any.whl
Collecting azure-cli-nspkg>=2.0.0 (from azure-cli)
Downloading azure_cli_nspkg-3.0.0-py2.py3-none-any.whl
Collecting azure-cli-iot (from azure-cli)
Downloading azure_cli_iot-0.1.5-py2.py3-none-any.whl
Collecting azure-cli-role (from azure-cli)
Downloading azure_cli_role-2.0.4-py2.py3-none-any.whl
Collecting azure-cli-interactive (from azure-cli)
Downloading azure_cli_interactive-0.3.2-py2.py3-none-any.whl
Collecting azure-cli-cdn (from azure-cli)
Downloading azure_cli_cdn-0.0.2-py2.py3-none-any.whl
Collecting azure-cli-feedback (from azure-cli)
Downloading azure_cli_feedback-2.0.2-py2.py3-none-any.whl
Collecting azure-cli-cognitiveservices (from azure-cli)
Downloading azure_cli_cognitiveservices-0.1.2-py2.py3-none-any.whl
Collecting azure-cli-resource (from azure-cli)
Downloading azure_cli_resource-2.0.6-py2.py3-none-any.whl
Collecting azure-cli-lab (from azure-cli)
Downloading azure_cli_lab-0.0.4-py2.py3-none-any.whl
Collecting azure-cli-core (from azure-cli)
Downloading azure_cli_core-2.0.6-py2.py3-none-any.whl (83kB)
100% |████████████████████████████████| 92kB 766kB/s
Collecting azure-cli-profile (from azure-cli)
Downloading azure_cli_profile-2.0.4-py2.py3-none-any.whl
Collecting azure-cli-sql (from azure-cli)
Downloading azure_cli_sql-2.0.3-py2.py3-none-any.whl
Collecting azure-cli-cosmosdb (from azure-cli)
Downloading azure_cli_cosmosdb-0.1.6-py2.py3-none-any.whl
Collecting azure-cli-dla (from azure-cli)
Downloading azure_cli_dla-0.0.6-py2.py3-none-any.whl
Collecting azure-cli-acs (from azure-cli)
Downloading azure_cli_acs-2.0.6-py2.py3-none-any.whl
Collecting azure-cli-redis (from azure-cli)
Downloading azure_cli_redis-0.2.3-py2.py3-none-any.whl
Collecting azure-cli-keyvault (from azure-cli)
Downloading azure_cli_keyvault-2.0.4-py2.py3-none-any.whl
Collecting azure-cli-dls (from azure-cli)
Downloading azure_cli_dls-0.0.6-py2.py3-none-any.whl
Collecting azure-cli-rdbms (from azure-cli)
Downloading azure_cli_rdbms-0.0.1-py2.py3-none-any.whl
Collecting azure-cli-batch (from azure-cli)
Downloading azure_cli_batch-2.0.4-py2.py3-none-any.whl
Collecting azure-cli-component (from azure-cli)
Downloading azure_cli_component-2.0.4-py2.py3-none-any.whl
Collecting azure-cli-network (from azure-cli)
Downloading azure_cli_network-2.0.6-py2.py3-none-any.whl (76kB)
100% |████████████████████████████████| 81kB 1.6MB/s
Collecting azure-cli-vm (from azure-cli)
Downloading azure_cli_vm-2.0.6-py2.py3-none-any.whl (65kB)
100% |████████████████████████████████| 71kB 539kB/s
Collecting azure-cli-monitor (from azure-cli)
Downloading azure_cli_monitor-0.0.4-py2.py3-none-any.whl
Collecting azure-cli-find (from azure-cli)
Downloading azure_cli_find-0.2.2-py2.py3-none-any.whl
Collecting azure-cli-appservice (from azure-cli)
Downloading azure_cli_appservice-0.1.6-py2.py3-none-any.whl
Collecting azure-cli-storage (from azure-cli)
Downloading azure_cli_storage-2.0.6-py2.py3-none-any.whl (45kB)
100% |████████████████████████████████| 51kB 1.3MB/s
Collecting azure-cli-acr (from azure-cli)
Downloading azure_cli_acr-2.0.4-py2.py3-none-any.whl
Collecting azure-cli-sf (from azure-cli)
Downloading azure_cli_sf-1.0.1-py2.py3-none-any.whl
Collecting azure-cli-cloud (from azure-cli)
Downloading azure_cli_cloud-2.0.2-py2.py3-none-any.whl
Collecting azure-cli-configure (from azure-cli)
Downloading azure_cli_configure-2.0.6-py2.py3-none-any.whl
Collecting azure-nspkg>=2.0.0 (from azure-cli-nspkg>=2.0.0->azure-cli)
Downloading azure_nspkg-2.0.0-py2.py3-none-any.whl
Collecting pyOpenSSL (from azure-cli-iot->azure-cli)
Downloading pyOpenSSL-17.0.0-py2.py3-none-any.whl (51kB)
100% |████████████████████████████████| 61kB 3.4MB/s
Collecting azure-cli-command-modules-nspkg>=2.0.0 (from azure-cli-iot->azure-cli)
Downloading azure_cli_command_modules_nspkg-2.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-iothub==0.2.2 (from azure-cli-iot->azure-cli)
Downloading azure_mgmt_iothub-0.2.2-py2.py3-none-any.whl
Collecting azure-mgmt-authorization==0.30.0rc6 (from azure-cli-role->azure-cli)
Downloading azure_mgmt_authorization-0.30.0rc6-py2.py3-none-any.whl
Collecting azure-graphrbac==0.30.0rc6 (from azure-cli-role->azure-cli)
Downloading azure_graphrbac-0.30.0rc6-py2.py3-none-any.whl (43kB)
100% |████████████████████████████████| 51kB 1.6MB/s
Collecting applicationinsights (from azure-cli-interactive->azure-cli)
Downloading applicationinsights-0.10.0.tar.gz
Collecting jmespath (from azure-cli-interactive->azure-cli)
Downloading jmespath-0.9.2-py2.py3-none-any.whl
Collecting prompt-toolkit (from azure-cli-interactive->azure-cli)
Downloading prompt_toolkit-1.0.14-py2-none-any.whl (248kB)
100% |████████████████████████████████| 256kB 191kB/s
Collecting pyyaml (from azure-cli-interactive->azure-cli)
Downloading PyYAML-3.12.tar.gz (253kB)
100% |████████████████████████████████| 256kB 257kB/s
Requirement already up-to-date: six in ./lib/azure-cli/lib/python2.7/site-packages (from azure-cli-interactive->azure-cli)
Collecting azure-mgmt-cdn==0.30.2 (from azure-cli-cdn->azure-cli)
Downloading azure_mgmt_cdn-0.30.2-py2.py3-none-any.whl (50kB)
100% |████████████████████████████████| 51kB 1.1MB/s
Collecting azure-mgmt-cognitiveservices==1.0.0 (from azure-cli-cognitiveservices->azure-cli)
Downloading azure_mgmt_cognitiveservices-1.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-resource==1.1.0rc1 (from azure-cli-resource->azure-cli)
Downloading azure_mgmt_resource-1.1.0rc1-py2.py3-none-any.whl (285kB)
100% |████████████████████████████████| 286kB 1.0MB/s
Collecting azure-mgmt-devtestlabs==2.0.0 (from azure-cli-lab->azure-cli)
Downloading azure_mgmt_devtestlabs-2.0.0-py2.py3-none-any.whl (182kB)
100% |████████████████████████████████| 184kB 699kB/s
Collecting tabulate (from azure-cli-core->azure-cli)
Downloading tabulate-0.7.7-py2.py3-none-any.whl
Collecting msrestazure>=0.4.7 (from azure-cli-core->azure-cli)
Downloading msrestazure-0.4.7-py2.py3-none-any.whl
Collecting argcomplete>=1.8.0 (from azure-cli-core->azure-cli)
Downloading argcomplete-1.8.2-py2.py3-none-any.whl
Collecting adal>=0.4.3 (from azure-cli-core->azure-cli)
Downloading adal-0.4.5-py2.py3-none-any.whl (49kB)
100% |████████████████████████████████| 51kB 879kB/s
Collecting msrest>=0.4.4 (from azure-cli-core->azure-cli)
Downloading msrest-0.4.8-py2.py3-none-any.whl
Collecting colorama (from azure-cli-core->azure-cli)
Downloading colorama-0.3.9-py2.py3-none-any.whl
Collecting pygments (from azure-cli-core->azure-cli)
Downloading Pygments-2.2.0-py2.py3-none-any.whl (841kB)
100% |████████████████████████████████| 849kB 131kB/s
Requirement already up-to-date: pip in ./lib/azure-cli/lib/python2.7/site-packages (from azure-cli-core->azure-cli)
Collecting requests (from azure-cli-core->azure-cli)
Downloading requests-2.14.2-py2.py3-none-any.whl (560kB)
100% |████████████████████████████████| 563kB 238kB/s
Collecting azure-mgmt-storage==1.0.0rc1 (from azure-cli-sql->azure-cli)
Downloading azure_mgmt_storage-1.0.0rc1-py2.py3-none-any.whl (61kB)
100% |████████████████████████████████| 61kB 698kB/s
Collecting azure-mgmt-sql==0.4.0 (from azure-cli-sql->azure-cli)
Downloading azure_mgmt_sql-0.4.0-py2.py3-none-any.whl (80kB)
100% |████████████████████████████████| 81kB 655kB/s
Collecting pydocumentdb>=2.0.1 (from azure-cli-cosmosdb->azure-cli)
Downloading pydocumentdb-2.2.0-py2-none-any.whl (87kB)
100% |████████████████████████████████| 92kB 1.4MB/s
Collecting azure-mgmt-documentdb==0.1.3 (from azure-cli-cosmosdb->azure-cli)
Downloading azure_mgmt_documentdb-0.1.3-py2.py3-none-any.whl
Collecting azure-mgmt-datalake-analytics==0.1.4 (from azure-cli-dla->azure-cli)
Downloading azure_mgmt_datalake_analytics-0.1.4-py2.py3-none-any.whl (113kB)
100% |████████████████████████████████| 122kB 725kB/s
Collecting azure-mgmt-datalake-store==0.1.4 (from azure-cli-dla->azure-cli)
Downloading azure_mgmt_datalake_store-0.1.4-py2.py3-none-any.whl
Collecting paramiko (from azure-cli-acs->azure-cli)
Downloading paramiko-2.1.2-py2.py3-none-any.whl (172kB)
100% |████████████████████████████████| 174kB 758kB/s
Collecting scp (from azure-cli-acs->azure-cli)
Downloading scp-0.10.2-py2.py3-none-any.whl
Collecting sshtunnel (from azure-cli-acs->azure-cli)
Downloading sshtunnel-0.1.2.tar.gz
Collecting azure-mgmt-compute==1.0.0rc1 (from azure-cli-acs->azure-cli)
Downloading azure_mgmt_compute-1.0.0rc1-py2.py3-none-any.whl (269kB)
100% |████████████████████████████████| 276kB 1.1MB/s
Collecting azure-mgmt-redis==1.0.0 (from azure-cli-redis->azure-cli)
Downloading azure_mgmt_redis-1.0.0-py2.py3-none-any.whl
Collecting azure-mgmt-keyvault==0.31.0 (from azure-cli-keyvault->azure-cli)
Downloading azure_mgmt_keyvault-0.31.0-py2.py3-none-any.whl
Collecting azure-keyvault==0.2.0 (from azure-cli-keyvault->azure-cli)
Downloading azure_keyvault-0.2.0-py2.py3-none-any.whl (67kB)
100% |████████████████████████████████| 71kB 1.5MB/s
Collecting azure-datalake-store==0.0.8 (from azure-cli-dls->azure-cli)
Downloading azure-datalake-store-0.0.8.tar.gz (47kB)
100% |████████████████████████████████| 51kB 1.8MB/s
Collecting azure-mgmt-rdbms==0.1.0 (from azure-cli-rdbms->azure-cli)
Downloading azure_mgmt_rdbms-0.1.0-py2.py3-none-any.whl (79kB)
100% |████████████████████████████████| 81kB 977kB/s
Collecting azure-batch==2.0.1 (from azure-cli-batch->azure-cli)
Downloading azure_batch-2.0.1-py2.py3-none-any.whl (272kB)
100% |████████████████████████████████| 276kB 714kB/s
Collecting azure-mgmt-batch==3.0.1 (from azure-cli-batch->azure-cli)
Downloading azure_mgmt_batch-3.0.1-py2.py3-none-any.whl
Collecting azure-mgmt-trafficmanager==0.30.0 (from azure-cli-network->azure-cli)
Downloading azure_mgmt_trafficmanager-0.30.0-py2.py3-none-any.whl
Collecting azure-mgmt-network==1.0.0rc3 (from azure-cli-network->azure-cli)
Downloading azure_mgmt_network-1.0.0rc3-py2.py3-none-any.whl (810kB)
100% |████████████████████████████████| 819kB 366kB/s
Collecting azure-mgmt-dns==1.0.1 (from azure-cli-network->azure-cli)
Downloading azure_mgmt_dns-1.0.1-py2.py3-none-any.whl
Collecting azure-multiapi-storage==0.1.0 (from azure-cli-vm->azure-cli)
Downloading azure_multiapi_storage-0.1.0-py2.py3-none-any.whl (333kB)
100% |████████████████████████████████| 337kB 352kB/s
Collecting azure-mgmt-monitor==0.2.1 (from azure-cli-monitor->azure-cli)
Downloading azure_mgmt_monitor-0.2.1-py2.py3-none-any.whl (62kB)
100% |████████████████████████████████| 71kB 1.1MB/s
Collecting azure-monitor==0.3.0 (from azure-cli-monitor->azure-cli)
Downloading azure_monitor-0.3.0-py2.py3-none-any.whl
Collecting whoosh (from azure-cli-find->azure-cli)
Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
100% |████████████████████████████████| 471kB 272kB/s
Collecting urllib3[secure]==1.16 (from azure-cli-appservice->azure-cli)
Downloading urllib3-1.16-py2.py3-none-any.whl (98kB)
100% |████████████████████████████████| 102kB 1.0MB/s
Collecting vsts-cd-manager (from azure-cli-appservice->azure-cli)
Downloading vsts-cd-manager-0.118.0.tar.gz
Collecting xmltodict (from azure-cli-appservice->azure-cli)
Downloading xmltodict-0.11.0-py2.py3-none-any.whl
Collecting azure-mgmt-web==0.32.0 (from azure-cli-appservice->azure-cli)
Downloading azure_mgmt_web-0.32.0-py2.py3-none-any.whl (257kB)
100% |████████████████████████████████| 266kB 386kB/s
Collecting azure-mgmt-containerregistry==0.2.1 (from azure-cli-acr->azure-cli)
Downloading azure_mgmt_containerregistry-0.2.1-py2.py3-none-any.whl
Collecting azure-servicefabric==5.6.130 (from azure-cli-sf->azure-cli)
Downloading azure_servicefabric-5.6.130-py2.py3-none-any.whl (283kB)
100% |████████████████████████████████| 286kB 1.0MB/s
Collecting cryptography>=1.7 (from pyOpenSSL->azure-cli-iot->azure-cli)
Downloading cryptography-1.8.2-cp27-cp27m-macosx_10_10_intel.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 83kB/s
Collecting azure-common~=1.1.5 (from azure-mgmt-iothub==0.2.2->azure-cli-iot->azure-cli)
Downloading azure_common-1.1.6-py2.py3-none-any.whl
Collecting azure-mgmt-nspkg>=2.0.0 (from azure-mgmt-iothub==0.2.2->azure-cli-iot->azure-cli)
Downloading azure_mgmt_nspkg-2.0.0-py2.py3-none-any.whl
Collecting wcwidth (from prompt-toolkit->azure-cli-interactive->azure-cli)
Downloading wcwidth-0.1.7-py2.py3-none-any.whl
Collecting keyring>=5.6 (from msrestazure>=0.4.7->azure-cli-core->azure-cli)
Downloading keyring-10.3.2-py2.py3-none-any.whl
Collecting python-dateutil>=2.1.0 (from adal>=0.4.3->azure-cli-core->azure-cli)
Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
100% |████████████████████████████████| 194kB 1.4MB/s
Collecting PyJWT>=1.0.0 (from adal>=0.4.3->azure-cli-core->azure-cli)
Downloading PyJWT-1.5.0-py2.py3-none-any.whl
Collecting requests-oauthlib>=0.5.0 (from msrest>=0.4.4->azure-cli-core->azure-cli)
Downloading requests_oauthlib-0.8.0-py2.py3-none-any.whl
Collecting isodate>=0.5.4 (from msrest>=0.4.4->azure-cli-core->azure-cli)
Downloading isodate-0.5.4.tar.gz
Collecting certifi>=2017.4.17 (from msrest>=0.4.4->azure-cli-core->azure-cli)
Downloading certifi-2017.4.17-py2.py3-none-any.whl (375kB)
100% |████████████████████████████████| 378kB 1.1MB/s
Collecting enum34>=1.0.4; python_version < "3.4" (from msrest>=0.4.4->azure-cli-core->azure-cli)
Downloading enum34-1.1.6-py2-none-any.whl
Collecting azure-mgmt-datalake-nspkg>=2.0.0 (from azure-mgmt-datalake-analytics==0.1.4->azure-cli-dla->azure-cli)
Downloading azure_mgmt_datalake_nspkg-2.0.0-py2.py3-none-any.whl
Collecting pyasn1>=0.1.7 (from paramiko->azure-cli-acs->azure-cli)
Downloading pyasn1-0.2.3-py2.py3-none-any.whl (53kB)
100% |████████████████████████████████| 61kB 679kB/s
Collecting cffi (from azure-datalake-store==0.0.8->azure-cli-dls->azure-cli)
Downloading cffi-1.10.0-cp27-cp27m-macosx_10_6_intel.whl (226kB)
100% |████████████████████████████████| 235kB 902kB/s
Collecting pathlib2 (from azure-datalake-store==0.0.8->azure-cli-dls->azure-cli)
Downloading pathlib2-2.2.1-py2.py3-none-any.whl
Collecting futures (from azure-datalake-store==0.0.8->azure-cli-dls->azure-cli)
Downloading futures-3.1.1-py2-none-any.whl
Collecting ndg-httpsclient; python_version <= "2.7" and extra == "secure" (from urllib3[secure]==1.16->azure-cli-appservice->azure-cli)
Downloading ndg_httpsclient-0.4.2.tar.gz
Requirement already up-to-date: packaging in ./lib/azure-cli/lib/python2.7/site-packages (from cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Collecting ipaddress (from cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Downloading ipaddress-1.0.18-py2-none-any.whl
Collecting asn1crypto>=0.21.0 (from cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Downloading asn1crypto-0.22.0-py2.py3-none-any.whl (97kB)
100% |████████████████████████████████| 102kB 1.6MB/s
Collecting idna>=2.1 (from cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Downloading idna-2.5-py2.py3-none-any.whl (55kB)
100% |████████████████████████████████| 61kB 2.5MB/s
Requirement already up-to-date: setuptools>=11.3 in ./lib/azure-cli/lib/python2.7/site-packages (from cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Collecting oauthlib>=0.6.2 (from requests-oauthlib>=0.5.0->msrest>=0.4.4->azure-cli-core->azure-cli)
Downloading oauthlib-2.0.2.tar.gz (125kB)
100% |████████████████████████████████| 133kB 2.5MB/s
Collecting pycparser (from cffi->azure-datalake-store==0.0.8->azure-cli-dls->azure-cli)
Downloading pycparser-2.17.tar.gz (231kB)
100% |████████████████████████████████| 235kB 1.5MB/s
Collecting scandir; python_version < "3.5" (from pathlib2->azure-datalake-store==0.0.8->azure-cli-dls->azure-cli)
Downloading scandir-1.5.tar.gz
Requirement already up-to-date: pyparsing in ./lib/azure-cli/lib/python2.7/site-packages (from packaging->cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Requirement already up-to-date: appdirs>=1.4.0 in ./lib/azure-cli/lib/python2.7/site-packages (from setuptools>=11.3->cryptography>=1.7->pyOpenSSL->azure-cli-iot->azure-cli)
Building wheels for collected packages: applicationinsights, pyyaml, sshtunnel, azure-datalake-store, vsts-cd-manager, isodate, ndg-httpsclient, oauthlib, pycparser, scandir
Running setup.py bdist_wheel for applicationinsights ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/5d/00/c9/6cae03c0f0dd766574b08bee1a05f91f88d68e6990a1e4282b
Running setup.py bdist_wheel for pyyaml ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/2c/f7/79/13f3a12cd723892437c0cfbde1230ab4d82947ff7b3839a4fc
Running setup.py bdist_wheel for sshtunnel ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/2f/92/75/a2db92ad2905bfc8663e980b8963625b4dd728fd64523f1da9
Running setup.py bdist_wheel for azure-datalake-store ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/63/82/1a/465c07cc48a03266541a4a19cfd05490f638a5ff6fe835baa5
Running setup.py bdist_wheel for vsts-cd-manager ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/6f/69/58/23fc80b987a15698bee59dcd3595eabb7f838396c0cc4cc0a6
Running setup.py bdist_wheel for isodate ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/61/c0/d2/6b4a10c222ba9261ab9872a8f05d471652962284e8c677e5e7
Running setup.py bdist_wheel for ndg-httpsclient ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/44/6b/b1/eef816d523c0aa93f350fd2a78d74769e010e2f26623921b76
Running setup.py bdist_wheel for oauthlib ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/84/98/7a/fba7268f61097bea6081cbe5480bc439b38975748ea7684fd5
Running setup.py bdist_wheel for pycparser ... done
Stored in directory: /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i/wheels/a8/0b/41/dc95621f9d3a0da7bc191b8a71f0e8182ffd3cc5f33ac55005
Running setup.py bdist_wheel for scandir ... error
Complete output from command /Users/eric/lib/azure-cli/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/pip-build-HxgAdj/scandir/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmp0v53sCpip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.12-intel-2.7
copying scandir.py -> build/lib.macosx-10.12-intel-2.7
running build_ext
building '_scandir' extension
creating build/temp.macosx-10.12-intel-2.7
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _scandir.c -o build/temp.macosx-10.12-intel-2.7/_scandir.o
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
error: command 'cc' failed with exit status 1

Failed building wheel for scandir
Running setup.py clean for scandir
Successfully built applicationinsights pyyaml sshtunnel azure-datalake-store vsts-cd-manager isodate ndg-httpsclient oauthlib pycparser
Failed to build scandir
Installing collected packages: azure-nspkg, azure-cli-nspkg, ipaddress, asn1crypto, enum34, idna, pycparser, cffi, cryptography, pyOpenSSL, azure-cli-command-modules-nspkg, keyring, python-dateutil, requests, PyJWT, adal, oauthlib, requests-oauthlib, isodate, certifi, msrest, msrestazure, azure-common, azure-mgmt-nspkg, azure-mgmt-iothub, applicationinsights, tabulate, pyyaml, jmespath, argcomplete, colorama, pygments, azure-cli-core, azure-cli-iot, azure-mgmt-authorization, azure-graphrbac, azure-cli-role, wcwidth, prompt-toolkit, azure-cli-interactive, azure-mgmt-cdn, azure-cli-cdn, azure-cli-feedback, azure-mgmt-cognitiveservices, azure-cli-cognitiveservices, azure-mgmt-resource, azure-cli-resource, azure-mgmt-devtestlabs, azure-cli-lab, azure-cli-profile, azure-mgmt-storage, azure-mgmt-sql, azure-cli-sql, pydocumentdb, azure-mgmt-documentdb, azure-cli-cosmosdb, azure-mgmt-datalake-nspkg, azure-mgmt-datalake-analytics, azure-mgmt-datalake-store, azure-cli-dla, pyasn1, paramiko, scp, sshtunnel, azure-mgmt-compute, azure-cli-acs, azure-mgmt-redis, azure-cli-redis, azure-mgmt-keyvault, azure-keyvault, azure-cli-keyvault, scandir, pathlib2, futures, azure-datalake-store, azure-cli-dls, azure-mgmt-rdbms, azure-cli-rdbms, azure-batch, azure-mgmt-batch, azure-cli-batch, azure-cli-component, azure-mgmt-trafficmanager, azure-mgmt-network, azure-mgmt-dns, azure-cli-network, azure-multiapi-storage, azure-cli-vm, azure-mgmt-monitor, azure-monitor, azure-cli-monitor, whoosh, azure-cli-find, ndg-httpsclient, urllib3, vsts-cd-manager, xmltodict, azure-mgmt-web, azure-cli-appservice, azure-cli-storage, azure-mgmt-containerregistry, azure-cli-acr, azure-servicefabric, azure-cli-sf, azure-cli-cloud, azure-cli-configure, azure-cli
Running setup.py install for scandir ... error
Complete output from command /Users/eric/lib/azure-cli/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/pip-build-HxgAdj/scandir/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/pip-__9pjU-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/eric/lib/azure-cli/include/site/python2.7/scandir:
running install
running build
running build_py
creating build
creating build/lib.macosx-10.12-intel-2.7
copying scandir.py -> build/lib.macosx-10.12-intel-2.7
running build_ext
building '_scandir' extension
creating build/temp.macosx-10.12-intel-2.7
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _scandir.c -o build/temp.macosx-10.12-intel-2.7/_scandir.o
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
error: command 'cc' failed with exit status 1
----------------------------------------

Command "/Users/eric/lib/azure-cli/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/pip-build-HxgAdj/scandir/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/pip-__9pjU-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/eric/lib/azure-cli/include/site/python2.7/scandir" failed with error code 1 in /private/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/pip-build-HxgAdj/scandir/
Traceback (most recent call last):
File "/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/azure_cli_install_tmp_XXXX.umWbggEO", line 370, in
main()
File "/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/azure_cli_install_tmp_XXXX.umWbggEO", line 356, in main
install_cli(install_dir, tmp_dir)
File "/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/azure_cli_install_tmp_XXXX.umWbggEO", line 140, in install_cli
exec_command(cmd)
File "/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/azure_cli_install_tmp_XXXX.umWbggEO", line 100, in exec_command
subprocess.check_call(command_list, cwd=cwd, env=env)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/Users/eric/lib/azure-cli/bin/pip', 'install', '--cache-dir', '/var/folders/7m/gx5xyr990jjc26l2_mzcft840000gn/T/tmpuNq74i', 'azure-cli', '--upgrade']' returned non-zero exit status 1

Run xcode-select --install.
There will be an xcode license agreement to be signed. Afterwards, run the CLI install again.

Thx, that worked

Nope -
Received "xcode-select: error: command line tools are already installed, use "Software Update" to install updates"
and "Software Update" isn't a valid command

@TMWagner "Software Update" isn't a command.
https://support.apple.com/en-us/HT201541

Still not working.
Running version "El Capitan" 10.11.6.
Also, I've installed already installed previous version of the CLI. version: 0.10.4

Spent the afternoon updating MacOs to latest Sierra (10.12.5).
Went through install again...
WAS able to run xcode-select --install
Ran installer again per instructions above. Same error

What version of Python do you have installed? python -c 'import sys; print(sys.version)'

Also there is a similar closed issue here - https://github.com/Azure/azure-cli/issues/1522.
Do any of the points there help?

Also are you using a different Python distribution?

Thank you for the reply. Python version is:
2.7.10 (default, Jul  6 2015, 13:26:37)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)]

Okay I don't see this as a CLI issue but to confirm:

Create a virtual environment and install only scandir into it with pip install scandir.

Do you have pip installed? pip --version would tell you.
If you don't have pip, install it with curl -O https://bootstrap.pypa.io/get-pip.py then sudo python get-pip.py.
If you don't have virtualenv installed, use sudo pip install virtualenv.
Create a virtual environment with virtualenv myenv

Actually - I think it still very much is a CLI issue. There are either dependancies that are unknown or undocumented.
The early "beta" version of CLI works... the 2.0 version will not install per instructions.

@TMWagner since I can't repro here, can you run these commands that isolate the CLI from the issue? If this still doesn't work, then there's something else wrong. If it does work, it may be something to investigate further with the CLI install.
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo pip install virtualenv
virtualenv myenv
source myenv/bin/activate
pip install scandir

I created a new macOS Sierra VM (version 10.12) and ran those above commands.
I got the error command 'cc' failed with exit status 1 as reported initially in this issue, installed XCode and I was able to install scandir. This is why I suspect there's something else going on here.
Full logs below.
sierra.txt
Thanks!

Here is log from the command set you specified (failed)

Thomass-MacBook-Pro:~ thomaswagner$ curl -O https://bootstrap.pypa.io/get-pip.py
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  5104k      0 --:--:-- --:--:-- --:--:— 7018k
Thomass-MacBook-Pro:~ thomaswagner$ sudo python get-pip.py
Password:
The directory '/Users/thomaswagner/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/thomaswagner/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 654kB/s
Collecting setuptools
Downloading setuptools-36.0.1-py2.py3-none-any.whl (476kB)
100% |████████████████████████████████| 481kB 1.6MB/s
Collecting wheel
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
100% |████████████████████████████████| 71kB 5.8MB/s
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-36.0.1 wheel-0.29.0
Thomass-MacBook-Pro:~ thomaswagner$ sudo pip install virtualenv
The directory '/Users/thomaswagner/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/thomaswagner/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting virtualenv
Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 426kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
Thomass-MacBook-Pro:~ thomaswagner$ virtualenv myenv
New python executable in /Users/thomaswagner/myenv/bin/python
Installing setuptools, pip, wheel...done.
Thomass-MacBook-Pro:~ thomaswagner$ source myenv/bin/activate
(myenv) Thomass-MacBook-Pro:~ thomaswagner$ pip install scandir
Collecting scandir
Downloading scandir-1.5.tar.gz
Building wheels for collected packages: scandir
Running setup.py bdist_wheel for scandir ... error
Complete output from command /Users/thomaswagner/myenv/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/pip-build-AuAhdj/scandir/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/tmpvtFbzqpip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.6-x86_64-2.7
copying scandir.py -> build/lib.macosx-10.6-x86_64-2.7
running build_ext
building '_scandir' extension
creating build/temp.macosx-10.6-x86_64-2.7
gcc -fno-strict-aliasing -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Applications/MAMP/Library/include/python2.7 -c _scandir.c -o build/temp.macosx-10.6-x86_64-2.7/_scandir.o
_scandir.c:14:10: fatal error: 'Python.h' file not found
#include <Python.h>
^
1 error generated.
error: command 'gcc' failed with exit status 1

Failed building wheel for scandir
Running setup.py clean for scandir
Failed to build scandir
Installing collected packages: scandir
Running setup.py install for scandir ... error
Complete output from command /Users/thomaswagner/myenv/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/pip-build-AuAhdj/scandir/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/pip-Oo02mY-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/thomaswagner/myenv/include/site/python2.7/scandir:
running install
running build
running build_py
creating build
creating build/lib.macosx-10.6-x86_64-2.7
copying scandir.py -> build/lib.macosx-10.6-x86_64-2.7
running build_ext
building '_scandir' extension
creating build/temp.macosx-10.6-x86_64-2.7
gcc -fno-strict-aliasing -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Applications/MAMP/Library/include/python2.7 -c _scandir.c -o build/temp.macosx-10.6-x86_64-2.7/_scandir.o
_scandir.c:14:10: fatal error: 'Python.h' file not found
#include <Python.h>
^
1 error generated.
error: command 'gcc' failed with exit status 1
----------------------------------------

Command "/Users/thomaswagner/myenv/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/pip-build-AuAhdj/scandir/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/pip-Oo02mY-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/thomaswagner/myenv/include/site/python2.7/scandir" failed with error code 1 in /private/var/folders/f4/0zjyjj1d6db6z__bfq55m6rm0000gn/T/pip-build-AuAhdj/scandir/
(myenv) Thomass-MacBook-Pro:~ thomaswagner$

On Jun 20, 2017, at 1:23 PM, Derek Bekoe<EMAIL_ADDRESS>wrote:
pip install scandir

@TMWagner please create an issue at https://github.com/benhoyt/scandir/issues as the commands I suggested take the CLI install out of the picture.
I have seen the error: command 'cc' failed with exit status 1 several times and the solution was the xcode install command but haven't seen the error command 'gcc' failed with exit status 1 before.


Update terraform to 1.8.4

Prepare a 0.8.0 release

@Prodesire Could you please take a look at this PR?

Awsome job!


docker support

I'd like this stalebot to automatically publish to docker hub, all we need is APP_ID, WEBHOOK_SECRET and PRIVATE_KEY in base64 as env variables. I want to deploy this for our internal gh.

yes, this is still relevant, please!


chore/INT-5539: Add test to validate reading interpolated variables in the entrypoints array

Adding a test to validate that the changes in this PR work

Nice. Ping me if shipit flakes again, I can confirm whether or not it's because the container got killed for memory but only within 1h of it getting killed, then AWS ECR removes the log.


Crash when viewing pentacle preview

Describe the bug
When trying to view the pentacle preview for Ophyx' Calling the game crashes
To Reproduce
Steps to reproduce the behavior:

Open Dictionary of Spirits
Navigate to the pentacles
Go to Ophyx' Calling
Press the preview ritual eye

Expected behavior
No crash
Screenshots
N/A
System (please complete the following information):

Occultism Version: occultism-1.21-neoforge-1.148.0
OS: Windows 11
Minecraft Version: Neoforge 1.21.1
Modpack Link and Version, or list of mods:  https://www.curseforge.com/minecraft/modpacks/craftoria Ver. 0.8.0

Additional context
If I had to guess...its probably all rituals that involve a skull since I've tried other rituals and they worked just fine.
crash-2024-08-18_19.06.15-client.txt

Please update modonomicon to v1.100.2, it fixes this crash


Create "last n board states" feature as used in AlphaGo Zero

This feature will contain 2*n plains, with even planes corresponding to the current player's stones and odd planes corresponding to the other player's stones. Planes 0 and 1 will contain the current board state, 2 and 3 the previous state, 4 and 5 from 2 turns ago, etc..
On turn t, we should avoid any "undo" operations to reconstruct what the board looked like at turn t-n. The right way to do this is to simply shift the feature planes back by 2 each turn:
current_feature[2:] = previous_feature[0:-2]
current_feature[:2] = get_board_state[:2]

This is only tricky because our current feature preprocessing is not "stateful," so we do not have access to previous_feature. I propose the following design:

The Preprocessing class will maintain a copy of the previous features that will be passed into the feature-generating functions.
Add a flag to Preprocessing.state_to_tensor that, if True, indicates that the state argument has advanced by exactly 2 turns since the last time state_to_tensor was called. (Or, we may do this 'transparently' from inside state_to_tensor by looking at state history and hashes)
Implement a fast "push-back" version of this feature, as described above, when possible. Else, fall back onto very slow reconstruction of the last n states from the game history.

Depends on #220

we have two use cases:

during MCTS ( we can create parent in GameState and mcts_do_move function: copy state, set parent and do move. that way we can use preprocessing as it is, this means additions GameState copies have to be created during game-converter usage )
non MCTS like game-converter ( we could implement some sort of history in preprocessing, this means we need to copy preprocessor for each branch in MCTS )

To me MCTS case is most important, python is already slow we do not need anything slowing MCTS down any further.
game-converter got a huge speedup because of the cython implementation. even with the gamestate copies being made it will be faster than the python implementation and there is even room for improvement with a multiprocessing implementation

The right way to do this is to simply shift the feature planes back by 2 each turn

in addition to the shift every 2 planes also have to switch order ( current player, opponent player switches each turn )

I agree MCTS speed is the priority, but copying the state after each move would be more expensive than creating a new Preprocess object per MCTS chain, no?

in addition to the shift every 2 planes also have to switch order ( current player, opponent player switches each turn )

Similarly, we have separate Preprocess objects per NN (or, per player), so a given object would always create features from the perspective of the same player.

MCTS needs a copy of gamestate for each move expansion

MCTS needs a copy of gamestate for each move expansion

Why is that? It needs separate copies for each branch, but within a branch moves are played out linearly according to the current action probability p(a|s) at node s.

My interpretation of the paper is that their MCTS looks like
Expand tree n times:

select most urgent move to explore (somewhere in tree)
play move and preprocess features ( needs to copy gamestate before move is played )
run prediction on preprocessed features
expand tree with prediction data and gamestate

play move -> most visited child
no rollout is used

If each node in the tree is a state, and each node stores {action: N}, {action: Q}, {action: W}, {action: P} maps, then the tree search can work like the following pseudo-code (ignore my poor choice of function names for now):
init_policy_value = model.evaluate(root_state)
root_node = MCTSNode(init_policy_value)
for thread in range(1600):
    state = root_state.copy()  # The only place states need to be copied
    node = root_node
    for t in range(L):
        action = node.select()  # PUCT algorithm, updates virtual loss, etc...
        state.do_move(action)
        if not node.has_child(action):
            next_policy_value = model.evaluate(state)
            node.init_child(state, next_policy_value)  # Create a new node for the state resulting from 'action'
        node = node.children[action]
    # ... evaluate leaf node on a queue
    # ... backup result through the tree
# ... return (pi, value) of root node

I only see a need for state.copy() once per thread, and a linear progression of actions within each thread. Did I misunderstand your point?

i don't understand why you want to copy the rootstate..
you have to replay all the moves up to the expansion node..
also not sure why you have for t in range(L): what is this L?
please have a look at my selfplaytrainer code, right now my branch is not working but i have a working version with the same mcts code.


Use application name in XmlFileErrorLog when logging an error

@nbulusanjr @atifaziz I did fix a similar issue in the memory error log. Maybe this code can just be ported to the XML file logger as well. Looks like it is missing the application name completely.

The application name setting was primarily designed to be used for isolation purposes where you'd want to share a single store like a database as the error log store across several applications. It doesn't make much sense in the case of XmlFileErrorLog where you can get isolation simply by using different path per application to store the XML files. This is not so much an issue at the time of writing as it is when listing the error log. ELMAH will have to crack open each XML files in large directory of files to be able to filter by application. A database can do this efficiently via an index. The application name is not an integral part of the logged error but I think most people want to use it for informational purposes.

Since this is by-design, I've changed the title and label to reflect that this is an enhancement.

But if you want to share the directory where XmlFileErrorLog puts its files between multiple applications (like a SAN), application name may still make sense, right?

@ThomasArdal It could but it cannot be efficiently implemented as I pointed out:

ELMAH will have to crack open each XML files in large directory of files to be able to filter by application. A database can do this efficiently via an index.

The only way to make this work would be to use the application name as the last component of file path and then each application's errors would sit isolated in a separate directory. Historically, this made sense if you configured the error log machine-wide via machine.config (e.g. in a shared application hosting environment) and then the only thing an app had left to do was configure it's application name. Isolation would then happen automagically if the error log implementation supported it. I would discourage anyone using XmlFileErrorLog in the same way even if could be technically possible. It's meant for a lightweight solution where a database is not available.

A guy from OrbitOne did an application thats logs to a central database and filter it using by application name. The design log an error  to a xml file and an agent will check if there is a new xml file in your log directory and throws into a webservice.

@nbulusanjr I'm guessing you're referring to ASP.NET Exception Reporter (based on ELMAH)?

an agent will check if there is a new xml file in your log directory and throws into a webservice.

Can the agent not be configured with the application for which it is collection?

Hi, I want to fix this issue in Elmah. Can I get access to make PR in master and publish new nuget for the same?

@vyasabhishek You don't need any access rights to make a PR. You prepare the work in your fork and create a PR from there to here. Also, the fix should go primarily into the 1x branch as that relates to 1.x releases. As for NuGet, you'd need the package owners (@JamesDriscoll & I) to push out a release. @JamesDriscoll used to take care of most of the packaging but I think he's quite busy now.

Thanks @atifaziz . I have created PR to main branch. I would appreciate, If you can review/merge that PR and publish a new version of Elmah.


Create an object not attached to a collection?

If I set helpers for a collection, then on each call to colliection like findOne, etc I will obtain an object with these helpers set. However, I do not see any way to create a similar object without a call to a collection.
For example, if I follow the approach from Meteor documentation:
Animal = function (doc) {
  _.extend(this, doc);
};
_.extend(Animal.prototype, {
  makeNoise: function () {
    console.log(this.sound);
  }
});

// Define a Collection that uses Animal as its document
Animals = new Mongo.Collection("Animals", {
  transform: function (doc) { return new Animal(doc); }
});

// Create an Animal and call its makeNoise method
Animals.insert({name: "raptor", sound: "roar"});
Animals.findOne({name: "raptor"}).makeNoise(); // prints "roar"

then I can use something like
var an = new Animal({"sound" : "aaa"});
an.makeNoise();

without any need to have any entries in a collection, etc. Is this possible, or can this be done possible with collection-helpers?
(Actual my issue is that in a test code, I would like to create an object and test its methods without having a collection.)

In fact, I see two ways of doing this: either expose Documents array as a global variable, or attack a new field to the collection intself. Both are illustrated below:
--- /home/petr/.meteor/packages/dburles_collection-helpers/.<IP_ADDRESS>h46h++os+web.browser+web.cordova/os/packages/dburles:collection-helpers.js 2015-03-21 22:18:58.900579647 +0300
+++ /home/petr/meteor-univ/univ/lib/collection-helpers-my2.js   2015-03-22 13:23:25.940586048 +0300
@@ -1,3 +1,4 @@
+CollectionHelpers = {};
 (function () {

 /////////////////////////////////////////////////////////////////////////////////
@@ -18,12 +19,14 @@
     Document[self._name] = function(doc) { return _.extend(this, doc); };      // 10
     self._transform = function(doc) { return new Document[self._name](doc); }; // 11
     self._hasCollectionHelpers = true;                                         // 12
+    self.collectionHelper = Document[self._name];
   }                                                                            // 13
                                                                                // 14
   _.each(helpers, function(helper, key) {                                      // 15
     Document[self._name].prototype[key] = helper;                              // 16
   });                                                                          // 17
 };                                                                             // 18
+CollectionHelpers = Document;
                                                                                // 19
 /////////////////////////////////////////////////////////////////////////////////

After this, I seem to be able to do
univ = new CollectionHelpers["universities"]({name :"abc"})

or
univ = new UniversitiesCollection.collectionHelper({name:"abc"})

Is there any drawback from this approach? Or is there any better way to accomplish this?

Hey @petr-kalinin just do this: univ = UniversitiesCollection._transform({ name: "abc" });

Oh, yes, indeed, did not think about this!
(Though I do not completely like this solution, as it seems to be some internal Meteor field that can be renamed or dropped in future, but I think it's ok for my tests, so thank you!)


super_editor doesn't use scroll activities, instead scrolls using .jumpTo()

Hi!
Noticed this when trying to put super_editor in a DraggableScrollableSheet. Not sure why here:
https://github.com/superlistapp/super_editor/blob/f471c2435083181a893e1d7278c7c6c27ca5dd69/super_editor/lib/src/default_editor/document_gestures_touch_ios.dart#L827
the scrolling is done with .jumpTo(). In order for the scroll to be detectable by DraggableScrollableSheet (to allow it to close), I had to modify the scrolling a bit:
Drag? _drag;

void _onPanStart(DragStartDetails details) {
    final selection = widget.selection.value;
    if (selection == null) {
      _drag = scrollPosition.drag(details, () => _drag = null);
      return;
    }

    // ...
}

void _onPanUpdate(DragUpdateDetails details) {
  if (_drag != null) {
    _drag!.update(details);
    _positionToolbar();
    return;
  }

  if (_globalStartDragOffset == null) {
    return;
  }

  // ...
}

void _onPanEnd(DragEndDetails details) {
  if (_drag != null) {
    _drag!.end(details);
    _drag = null;
  } else {
    // The user was dragging a handle. Stop any auto-scrolling that may have started.
    _onHandleDragEnd();
  }
}

^ and a similar patch for the Android scroller. While testing, this didn't cause any noticeable issues yet.
I'm not 100% sure that this won't break any other complex positioning things that happen inside of super_editor so I just wanted to know if this looks alright, and if it does, I can open a pull request with changes to document_gestures_touch_ios.dart and document_gestures_touch_android.dart.

Hey @kekland, thanx for reporting the issue. To better understand this issue, could you please share steps to reproduce it? a reproducible example would also help if you can share.

@kekland Flutter's scroll system is very messy. It's unclear to me how one is supposed to plug in to a broader scrolling interaction. You mentioned scroll activities, specifically. Is there any documentation around how something like SuperEditor would be expected to interact with those ancestor scrollables?

@kekland do you have any further info or input based on my above comment?

I'm closing this due to non-response.


Function: IS_CF_std - Calculate Others -  CF Operating Activities, Investing Activities, Financing Activities

"OTHER" TO BE CALCULATED

[x] (Operating Activities) Change in Other Working Capital = difference from (Operating Activities) Cash Flow from Operating Activities
[x] (Investing Activities) Gain (Losses) in Other Investing Activities = difference from (Investing Activities) Cash Flow from Investing Activities
[x] (Financing Activities) Impact of Stock Options and Other =difference from (Financing Activities) Cash Flow from Financing Activities
[x] Other impact from Operating, Investing, Financing Activities = difference from Change in Cash, Cash Equivalents

File: data_retrieval.R

Completed.


fix(setwarning): update docs & bump epsagon version

:tada: This PR is included in version 1.23.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Is it possible to restream an ongoing private channel livestream to an outside platform?

Fill in this template completely. Issues not following this template will be closed and ignored.
Check the boxes below by filling [ ] with an x so it looks like [x].
Use the Preview button to ensure the template is filled in correctly.

[x] I am using the latest version of PyInstaLive: 3.2.4.
[x] I have installed either Python 2.7.x or 3.5+: YOUR VERSION HERE
[x] I have read the README.
[x] I have read the FAQ.
[x] I have checked all existing issues, none of which could solve my issue.

I am using:

[x] Linux (distribution:Ubuntu 18.04)

Question
On other platforms, I can use youtube-dl to grab a .m3u8 file of an ongoing livestream, and then pass the m3u8 file to ffmpeg to restream to an rtmp key elsewhere.
My use case is for a private account that I'm a follower of, which PyInstaLive can access with my login credentials. But is it possible for PyInstaLive to grab a m3u8 key and restream elsewhere (via ffmpeg most likely), or somehow restream the ongoing downloaded files elsewhere?
I'm going to guess the answer is no, but I thought I'd ask just in case.
Thanks

There is no m3u8 playback url, only a DASH (.mpd) playback url.
"dash_playback_url": "https://scontent-amt2-1.cdninstagram.com/hvideo-vll1/_nc_ohc-yJ4-4GeGv0kAX_EwfjG/_nc_cat-109/v/rWWRtPfj3fW95FCuOCnyA/live-dash/dash-hd/18125662417125936.mpd?_nc_rl=AfCMIByVpGHIDO6X&oh=ac730cf361dbd3bbd3eb99b01687baf8&oe=5F5AA9C3",

To obtain it (and the rest of the broadcast info with it) add the following line after L104 in dlfuncs.py
open("broadcasts.json", 'w').write(json.dumps(pil.livestream_obj))

PyInstaLive cannot restream ongoing broadcasts elsewhere, and new feature requests are not accepted at this time.
Hope this information is of any use to you


Allow duplicate friendlyname attributes in SAML2 assertions

In the SAML spec, the "friendlyName" is defined as a completely optional for attribute naming, and should not be relied upon for retrieving attributes. It exists simply to provide a more human-readable method to decipher attributes. From the spec (https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf):
FriendlyName [Optional]
A string that provides a more human-readable form of the attribute's name, which may be useful in cases in which the actual Name is complex or opaque, such as an OID or a UUID. This attribute's value MUST NOT be used as a basis for formally identifying SAML attributes.
This MR adds the possibility of multiple attributes with the same FriendlyName, and creates a list with all of the attributes with the same FriendlyName appended to it.

Certainly. I'll work on it more next week. Should the setting be part of
the SP config, and should it default to true or false?
On Fri, Jun 4, 2021, 6:01 PM Sixto Martin @.***> wrote:

In the php-saml toolkit, we added a new setting to allow/disallow
duplicated Names/Friendlynames
In order to be aligned, we should implement it here in a similar way.
Are you able to extend your PR to allow duplicate names or friendlynames,
when the new setting is enabled?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/onelogin/python3-saml/pull/261#issuecomment-855026246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIYCGXG7WRXWZPBFW76VYLTRFEMHANCNFSM46DB5PUA
.

At php-saml it was a new setting parameter at the advanced section: [allowRepeatAttributeName(https://github.com/onelogin/php-saml/blob/master/advanced_settings_example.php#L90)
Here is the commit that introduced the feature on php-saml: https://github.com/onelogin/php-saml/commit/370a5d9c8432ede5776f278edcdcf3b8e8212cc6

I have updated the MR to pass the style checks, added tests for both the positive and negative cases, and condensed the attribute retrieval logic into one method.
I added a setting under security that mirrors the name in the php-saml repo, and a settings file called settings11.json to ensure the attribute loading works as intended.

@pitbulk Any changes requested?

Ah, yes that was an oversight on my part. Will add it back and add tests
for it
On Mon, Jun 14, 2021, 10:31 AM Sixto Martin @.***>
wrote:

@.**** commented on this pull request.
In src/onelogin/saml2/response.py
https://github.com/onelogin/python3-saml/pull/261#discussion_r651101460:

       attr_name = attribute_node.get('Name')

       if attr_name in attributes.keys():

           raise OneLogin_Saml2_ValidationError(

               'Found an Attribute element with duplicated Name',

               OneLogin_Saml2_ValidationError.DUPLICATED_ATTRIBUTE_NAME_FOUND

           )

       values = []

       for attr in attribute_node.iterchildren('{%s}AttributeValue' % OneLogin_Saml2_Constants.NSMAP['saml']):

           attr_text = OneLogin_Saml2_XML.element_text(attr)

           if attr_text:

               attr_text = attr_text.strip()

               if attr_text:

                   values.append(attr_text)

           # Parse any nested NameID children

You removed the support of the nested NameID children
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/onelogin/python3-saml/pull/261#pullrequestreview-683120988,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIYCGXFYGRIHYLYK7YFN4LTSYVFJANCNFSM46DB5PUA
.

@pitbulk there is an existing test for getting nested NameID attributes, and the code is still included in the _get_attributes() method.
The testGetNestedNameIDAttributes test on line 760 of response_test.py tests this scenario and still passes as expected. Unless I am misunderstanding the issue I do not believe it breaks support for this case

I added a test for nested NameID attributes when retrieving FriendlyName attributes, all tests pass as expected. Please let me know if I have missed something


可以支持 iOS 9 吗

Flutter 好像最低可以支持 iOS 9
强制修改之后无法过编译：
Run flutter build ios --release --no-codesign

  ╔════════════════════════════════════════════════════════════════════════════╗
  ║                 Welcome to Flutter! - https://flutter.dev                  ║
  ║                                                                            ║
  ║ The Flutter tool uses Google Analytics to anonymously report feature usage ║
  ║ statistics and basic crash reports. This data is used to help improve      ║
  ║ Flutter tools over time.                                                   ║
  ║                                                                            ║
  ║ Flutter tool analytics are not sent on the very first run. To disable      ║
  ║ reporting, type 'flutter config --no-analytics'. To display the current    ║
  ║ setting, type 'flutter config'. If you opt out of analytics, an opt-out    ║
  ║ event will be sent, and then no further information will be sent by the    ║
  ║ Flutter tool.                                                              ║
  ║                                                                            ║
  ║ By downloading the Flutter SDK, you agree to the Google Terms of Service.  ║
  ║ Note: The Google Privacy Policy describes how data is handled in this      ║
  ║ service.                                                                   ║
  ║                                                                            ║
  ║ Moreover, Flutter includes the Dart SDK, which may send usage metrics and  ║
  ║ crash reports to Google.                                                   ║
  ║                                                                            ║
  ║ Read about data we send with crash reports:                                ║
  ║ https://flutter.dev/docs/reference/crash-reporting                         ║
  ║                                                                            ║
  ║ See Google's privacy policy:                                               ║
  ║ https://policies.google.com/privacy                                        ║
  ╚════════════════════════════════════════════════════════════════════════════╝

Running "flutter pub get" in flutter_tools...                       5.1s
Running "flutter pub get" in pikapika...                           21.1s
Warning: Building for device with codesigning disabled. You will have to manually codesign before deploying to device.
Building niuhuan.pikapika for device (ios-release)...
Upgrading AppFrameworkInfo.plist
Running pod install...                                           2,963ms
Running Xcode build...
Xcode build done.                                           141.0s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **

Xcode's output:
↳
    /Users/runner/work/pikapika/pikapika/ios/Runner/AppDelegate.swift:20:13: error: 'init(block:)' is only available in iOS 10.0 or newer
                Thread {
                ^
    /Users/runner/work/pikapika/pikapika/ios/Runner/AppDelegate.swift:20:13: note: add 'if #available' version check
                Thread {
                ^
    /Users/runner/work/pikapika/pikapika/ios/Runner/AppDelegate.swift:7:19: note: add @available attribute to enclosing instance method
        override func application(
                      ^
    /Users/runner/work/pikapika/pikapika/ios/Runner/AppDelegate.swift:6:13: note: add @available attribute to enclosing class
    @objc class AppDelegate: FlutterAppDelegate {
                ^
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description

════════════════════════════════════════════════════════════════════════════════
Building a deployable iOS app requires a selected Development Team with a
Provisioning Profile. Please ensure that a Development Team is selected by:
  1- Open the Flutter project's Xcode target with
       open ios/Runner.xcworkspace
  2- Select the 'Runner' project in the navigator then the 'Runner' target
     in the project settings
  3- Make sure a 'Development Team' is selected under Signing & Capabilities > Team.
     You may need to:
         - Log in with your Apple ID in Xcode first
         - Ensure you have a valid unique Bundle ID
         - Register your device with your Apple Developer Account
         - Let Xcode automatically provision a profile for your app
  4- Build or run your project again

For more information, please visit:
  https://flutter.dev/docs/get-started/install/macos#deploy-to-ios-devices

Or run on an iOS simulator without code signing
════════════════════════════════════════════════════════════════════════════════
Encountered error while building for device.
Error: Process completed with exit code 1.

看起来没什么不对 IPA

我没有 64 位的 iOS 9 设备来测试，但在我自己的机器（iPhone 7 + iOS 12.4.1）能够正常安装使用
总之感谢大佬，然后我先把这个关了吧（


Self Sign Certificate Command Seems as Import keeps on throwing Password Error

https://docs.microsoft.com/en-us/azure/application-gateway/create-ssl-portal#create-a-self-signed-certificate
Create Self Sign Certificate Command seems wrong and PFX file during Import in Listener keeps on throwing Password error. While i use CLI based Self Sign Certificate Command, it worked fine.
Review PowerShell Command for Self Sign Certificate

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

ID: 3d23a57b-1327-786e-f27d-1a52b0e4712d
Version Independent ID: e1050c6a-d3ea-e3b7-c6ca-a0427b1f9379
Content: Tutorial: Configure TLS termination in portal - Azure Application Gateway
Content Source: articles/application-gateway/create-ssl-portal.md
Service: application-gateway
GitHub Login: @vhorne
Microsoft Alias: victorh

@spotakash - Thanks for brining this to our attention. We will investigate it further and update you shortly.

@spotakash , Apologies for the delay in response. Hope you have referred the password limitation of 4 to 12 characters here. Else, everything looks fine. Could you please confirm on this? Thanks!

@Spotakash, since we have not heard back from you, 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 reopen the issue and continue the discussion.


Intermediate Level Implementation of Class Progress Management Feature

Abstracted Homework and Exam to abstract Assessment class.
Implemented Academics class (to store and track assessments), AcademicsCommand and AcademicsAddCommand
note: Missing AcademicsCommandParser and writing to the addressbook database

I can really see the students' academic progress feature coming into place, keep up the good work Huiting!


Grafana query search limits the shown measurements to 100

Continuation of  https://github.com/victronenergy/venus-docker-grafana/issues/8 in the new repository on request of @mman

To not forget where this is coming from, this is the original patch that limits the number of returned measurements in the auto complete popup to 100:
https://github.com/grafana/grafana/blob/8f38ef70ceaea12ca27bc0d856951e6e036da115/public/app/plugins/datasource/influxdb/influxql_query_builder.ts#L118-L123


add a cache eviction policy

Currently the prediction cache in Clipper can grow without bound. This is basically a memory leak an we should implement cache eviction. This involves determining how to safely delete cache entries.

Using a clock cache eviction policy is probably the best balance of simplicity and efficiency.


Fix Role::name() lifetime, fix html container role name while at it

@TTWNO could the failing test be related to #74 ?

Don't worry about the tests. The CI is having issues with versions of atspi I'm pretty sure. I'm still working on it.
But it's just one test, and it's an old one, so I'll get a different PR running to fix it.
Good change.


Callbacks examples???

Where have they gone?  It seems like they are now missing.  y tho

Examples are back!


troubleshooting cluster page

[meta-http] 2016/09/19 09:08:53 <IP_ADDRESS> - - [19/Sep/2016:09:08:53 +0000] GET /lease?name=continuous_querier&node_id=5 HTTP/1.1 409 105 - InfluxDB Meta Client b00e4943-7e48-11e6-86a6-000000000000 380.542µs
[meta-http] 2016/09/19 09:08:54 <IP_ADDRESS> - - [19/Sep/2016:09:08:54 +0000] GET /lease?name=continuous_querier&node_id=0 HTTP/1.1 200 105 - InfluxDB Meta Client b05a3861-7e48-11e6-86a7-000000000000 8.87547ms

All data nodes ask for the lease to run continuous queries, one should get it (200), and the rest should be denied (409)

Fixed by: https://github.com/influxdata/docs.influxdata.com/pull/724


Falcon7b prefill single/multi-chip bringup and optimizations

High level issue tracking bringup and optimizations.
Plan of actions:

support 2048 seq_len
Improve MLP, Attention, LM_Head and overall perf
Make it working for data parallel

#5592


Added Guardian article to AI incidents

Added Guardian article published on July 2nd on algorithms making 'wildly irrational' healthcare decisions to list of AI incidents in README.

Hey Collin! We're not going to be tracking AI incidents as we did before, but I can process this in the AIID for you.


Update docker recipe to install from source

Before you start, read CONTRIBUTING.md and the guide for diagnostic developers.
Please discuss your idea with the development team before getting started, to avoid disappointment later. The way to do this is to open a new issue on GitHub. If you are planning to modify an existing functionality, please discuss it with the original author(s) by tagging them in the issue.

Tasks

[x] Create an issue to discuss what you are going to do, if you haven't done so already (and add the link at the bottom)
[x] Give this pull request a descriptive title that can be used as a one line summary in a changelog
[x] Make sure your code is composed of functions of no more than 50 lines and uses meaningful names for variables
[ ] Circle/CI tests pass. Status can be seen below your pull request. If the tests are failing, click the link to find out why.
[ ] Preferably Codacy code quality checks pass, however a few remaining hard to solve Codacy issues are still acceptable. Status can be seen below your pull request. If there is an error, click the link to find out why. If you suspect Codacy may be wrong, please ask by commenting.
[ ] Please use yamllint to check that your YAML files do not contain mistakes
[ ] (Only if really necessary) Add any additional dependencies needed for the diagnostic script to setup.py, esmvaltool/install/R/r_requirements.txt or esmvaltool/install/Julia/julia_requirements.txt (depending on the language of your script) and also to package/meta.yaml for conda dependencies (includes Python and others, but not R/Julia)
[ ] If new dependencies are introduced, check that the license is compatible with Apache2.0

If you need help with any of the tasks above, please do not hesitate to ask by commenting in the issue or pull request.

Closes #1579

Can not be merge until ESMValGroup/ESMValCore#603 is merged

ESMValGroup/ESMValCore#603 has now been merged.

I am having the same issue @ledm describes here #1698
I have removed esmvalcore  from the environment and it works well.
I also had trouble with Julia (it made the dependencies incompatible)

I am having the same issue @ledm describes here #1698

I'm not able to reproduce that problem. Would you be able to provide a bash script that I can run to reproduce the issue?

Looks good @jvegasbsc! Only the documentation is still missing. Were you planning on having this included in the v2.0.0 release?

Yes, I will try to finish the documentation tonight

Done! It its more or less what we have in ESMValCore with a 'esmvalcore' -> 'esmvaltool' replacement

There is an extra docker file that is not to be automatically built yet (Dockerfile.exp). It will install ESMValTool on top of ESMValCore latest container. It is exp because I think we can have 'stable' for latest release, 'latest' for latest ESMValTool on top of ESMValCore stable and 'experimental' for latest ESMValTool on top of  latest ESMValCore.
It requires ESMValGroup/ESMValCore#723 to work, and it is by no means required for v2.0.0 release

Done! It its more or less what we have in ESMValCore with a 'esmvalcore' -> 'esmvaltool' replacement

Thanks!

The pyproj issue is this: https://github.com/conda-forge/geopandas-feedstock/issues/63

Julia diagnostics do not seem to work, they crash with the error message:
Thats weird, in the logs it looks like it is installed and it is even citing the same hash:

[91m[ Info: Installed Julia packages:

Status `/src/ESMValTool/esmvaltool/install/Julia/Project.toml`
[c7e460c6] ArgParse v1.1.0
[34da2185] Compat v3.13.0
[a93c6f00] DataFrames v0.21.4
[682c06a0] JSON v0.21.0
[30363a11] NetCDF v0.8.0
[438e738f] PyCall v1.91.4
[d330b81b] PyPlot v2.9.0
[e9a4e08f] RainFARM v1.1.0
[ddb6d928] YAML v0.4.0
[10745b16] Statistics

OK, now I know what's happening: our installation procedure is creating an environment that we are not loading, it seems:
Our installation script:
#!/usr/bin/env julia
@info "Installing Julia dependencies"

if VERSION >= v"0.7.0-DEV.2005"
    using Pkg
end

Pkg.activate(@__DIR__)
Pkg.instantiate()

@info "Installed Julia packages:"
Pkg.status()

and pkg.activate documentation
https://docs.julialang.org/en/v1.0/stdlib/Pkg/#Pkg.activate

The key to reduce the image size is to properly set the .dockerignore file, but I'm struggling with it

It works with -e option...


Regression (beta 51) - Manifest entries for SVG assets lack information to resolve the file

Description 📖
When adding a non-JS and non-CSS entrypoint, such as an .svg, in the manifest entry:

A fingerprinted version of the file is added correctly to the output dir, but
file points to an empty JS chunk, and it can't be used to resolve the file

Background 📜
Prior to beta 51 file had the resolved path to the fingerprinted file.
Reproduction 🐞
The issue can be replicated in this simple application, by going to the directory and running pnpm install and pnpm build.
Look for logo.svg in the public/vite/manifest.json file.
Logs 📜
Manifest entry:
  "logo.svg": {
    "file": "assets/logo.f1745d22.js",
    "src": "logo.svg",
    "isEntry": true
  },

But the fingerprinted file is actually assets/logo.41cff365.svg, which is not in the manifest, but is in the output dir.

I've experimented with the manifest generation, to re-enable support for non-JS entrypoints:

Beta 52
{
  "application.js": {
    "file": "assets/application.d9514acc.js",
    "src": "application.js",
    "isEntry": true,
    "imports": [
      "_vendor.880705da.js",
      "example_import.js"
    ],
    "css": "assets/application.f510c1e9.css"
  },
  "example_import.js": {
    "file": "assets/example_import.8e1fddc0.js",
    "src": "example_import.js",
    "isEntry": true
  },
  "logo.svg": {
    "file": "assets/logo.f1745d22.js",
    "src": "logo.svg",
    "isEntry": true
  },
  "styles.css": {
    "file": "assets/styles.81b3e972.js",
    "src": "styles.css",
    "isEntry": true,
    "css": "assets/styles.0e53e684.css"
  },
  "_vendor.880705da.js": {
    "file": "assets/vendor.880705da.js"
  }
}

Modified Version
{
  "application.js": {
    "file": "assets/application.d9514acc.js",
    "src": "application.js",
    "isEntry": true,
    "imports": [
      "_vendor.880705da.js",
      "example_import.js"
    ],
    "css": "assets/application.f510c1e9.css"
  },
  "example_import.js": {
    "file": "assets/example_import.8e1fddc0.js",
    "src": "example_import.js",
    "isEntry": true
  },
  "logo.svg": {
    "file": "assets/logo.41cff365.svg"
  },
  "styles.css": {
    "file": "assets/styles.0e53e684.css"
  },
  "_vendor.880705da.js": {
    "file": "assets/vendor.880705da.js"
  }
}

This manifest would fix the issue, and also makes it a lot easier to streamline URL output for generic assets, without having to check their type (file is always the source of truth for entries).
Thoughts?

I've experimented with the manifest generation, to re-enable support for non-JS entrypoints:

Beta 52
{
  "application.js": {
    "file": "assets/application.d9514acc.js",
    "src": "application.js",
    "isEntry": true,
    "imports": [
      "_vendor.880705da.js",
      "example_import.js"
    ],
    "css": "assets/application.f510c1e9.css"
  },
  "example_import.js": {
    "file": "assets/example_import.8e1fddc0.js",
    "src": "example_import.js",
    "isEntry": true
  },
  "logo.svg": {
    "file": "assets/logo.f1745d22.js",
    "src": "logo.svg",
    "isEntry": true
  },
  "styles.css": {
    "file": "assets/styles.81b3e972.js",
    "src": "styles.css",
    "isEntry": true,
    "css": "assets/styles.0e53e684.css"
  },
  "_vendor.880705da.js": {
    "file": "assets/vendor.880705da.js"
  }
}

Modified Version
{
  "application.js": {
    "file": "assets/application.d9514acc.js",
    "src": "application.js",
    "isEntry": true,
    "imports": [
      "_vendor.880705da.js",
      "example_import.js"
    ],
    "css": "assets/application.f510c1e9.css"
  },
  "example_import.js": {
    "file": "assets/example_import.8e1fddc0.js",
    "src": "example_import.js",
    "isEntry": true
  },
  "logo.svg": {
    "file": "assets/logo.41cff365.svg"
  },
  "styles.css": {
    "file": "assets/styles.0e53e684.css"
  },
  "_vendor.880705da.js": {
    "file": "assets/vendor.880705da.js"
  }
}

This manifest would fix the issue, and also makes it a lot easier to streamline URL output for generic assets, without having to check their type (file is always the source of truth for entries).
Thoughts?

Can you explain why would you use asset as entry points in the first place?

Can you explain why would you use asset as entry points in the first place?

To take advantage of the fingerprinting performed by Rollup for assets that are linked externally.
Example, where logo.svg and styles.css are entrypoints.
They are not imported by any JS, but instead have their fingerprinted URL rendered in the HTML.

To take advantage of the fingerprinting performed by Rollup for assets that are linked externally.
Example, where logo.svg and styles.css are entrypoints.
They are not imported by any JS, but instead have their fingerprinted URL rendered in the HTML.

Actually I'm not sure why this has to be done through Vite. Since you have to manually specify them as entries, it means they are not used in Vite's module graph (i.e. never imported by any of the js files) - why can't you just hash them yourself?

Actually I'm not sure why this has to be done through Vite. Since you have to manually specify them as entries, it means they are not used in Vite's module graph (i.e. never imported by any of the js files) - why can't you just hash them yourself?

It's a nice convenience that makes the tool more flexible (or as flexible as prior to beta 51).
In a way, referencing assets from HTML is very similar to the behavior here; this provides a way to obtain the same when not using HTML as the entry point.

It's a nice convenience that makes the tool more flexible (or as flexible as prior to beta 51).
In a way, referencing assets from HTML is very similar to the behavior here; this provides a way to obtain the same when not using HTML as the entry point.

The thing is Vite actually is supposed to automatically eliminate empty CSS chunks.
I think your use case can be better achieved with a custom generateBundle hook that has access to the entire chunk/module graph instead of relying on Vite's manifest (which isn't really designed for this use case).

The thing is Vite actually is supposed to automatically eliminate empty CSS chunks.
I think your use case can be better achieved with a custom generateBundle hook that has access to the entire chunk/module graph instead of relying on Vite's manifest (which isn't really designed for this use case).

Thanks for pointing me in the direction of generateBundle, worked like a charm 👍

Thanks for pointing me in the direction of generateBundle, worked like a charm 👍


Fineract 1991 : Added search feature to antora generated documentation site

Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

See screencast below for a preview of the feature
https://github.com/apache/fineract/assets/8235531/b02a8bbc-208c-4126-9115-b8b892bb573e

@jogathogo builds are failing with the following: Apache Rat audit failure - 421 unapproved licenses, please check and fix this.
Also, please squash the commits into only 1 commit.

Please don't merge this one before we've created release 1.9.0. Let's target 1.10.0. Jira tickets updated.

Bringing some side conversations back to this PR, see below
Hello James,
I managed to run RAT which identified the licenses it deems
incompatible. In my opinion, this is a false positive, here is the
license message. It allows for Redistribution and use in source and
binary forms, with or without modification.
Therefore I think we can go ahead. Let me know what you think.
Copyright (c) Felix Böhm
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

If this is the only rat error, then yes
I think this is a BSD clause 2 and therefore a Category A license
https://www.apache.org/legal/resolved.html#category-a
Github should tell you what license it is.
Sent from Gmail Mobile

Please don't merge this one before we've created release 1.9.0. Let's target 1.10.0. Jira tickets updated.

@vidakovic now that 1.9 is out, can we resume this? This PR is purely documentation related and does not contain any fineract code and therefore should be safe to merge without breaking anything.

I would like to commit this.
LGTM