Puppet attempts to restart running varnish service

OS: Debian 8.9
Puppet: 3.8.7
After an upgrade of various puppet modules, puppet is now trying to restart the varnish service although it is already running. This only happens for the varnish service, so I'm pretty sure it's related to this module, not puppet in general:
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: Could not start Service[varnish]: Execution of '/etc/init.d/varnish start' returned 1: Starting HTTP accelerator: varnishd failed!
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: bind(): Address already in use
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: bind(): Address already in use
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: Error: Failed to open (any) accept sockets.
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: Wrapped exception:
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: Execution of '/etc/init.d/varnish start' returned 1: Starting HTTP accelerator: varnishd failed!
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: bind(): Address already in use
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: bind(): Address already in use
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: Error: Failed to open (any) accept sockets.
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: (/Stage[main]/Varnish::Service/Service[varnish]/ensure) change from stopped to running failed: Could not start Service[varnish]: Execution of '/etc/init.d/varnish start' returned 1: Starting HTTP accelerator: varnishd failed!
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: (/Stage[main]/Varnish::Service/Service[varnish]/ensure) bind(): Address already in use
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: (/Stage[main]/Varnish::Service/Service[varnish]/ensure) bind(): Address already in use
Aug 08 16:49:20 loadbalancer puppet-agent[16858]: (/Stage[main]/Varnish::Service/Service[varnish]/ensure) Error: Failed to open (any) accept sockets.

It incorrectly detects varnish as not running. Looking at the service output, we can see that it is running:
root@loadbalancer:~# service varnish status
● varnish.service - Varnish Cache, a high-performance HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; enabled)
   Active: active (running) since Tue 2017-08-08 13:08:16 CEST; 4h 9min ago
 Main PID: 30600 (varnishd)
   CGroup: /system.slice/varnish.service
           ├─30600 /usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m -p ht...
           └─30601 /usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m -p ht...

The most confusing part about this is that the error only occurs when puppet is run by the service, not when I manually run the agent.
Edit: I modified the DAEMON_OPTS to make puppet log output more verbose, and I discovered that it is indeed calling the status action on the init.d script:
Aug 08 17:48:12 loadbalancer puppet-agent[28735]: Executing '/etc/init.d/nginx status'
Aug 08 17:48:12 loadbalancer puppet-agent[28735]: Executing '/etc/init.d/varnish status'
Aug 08 17:48:12 loadbalancer puppet-agent[28735]: Executing '/etc/init.d/varnish start'
Aug 08 17:48:12 loadbalancer puppet-agent[28735]: Could not start Service[varnish]: Execution of '/etc/init.d/varnish start' returned 1: Starting HTTP accelerator: varnishd failed!

So it must be misinterpreting the result it sees from the status call…
I also made sure the status call actually exits with a code of 0, which it does and which is, according to the documentation of the service resource, what puppet is looking for.

Have you checked the size of /var/lib/varnish? The module default of 128M was (legitimately) crashing varnish for me repeatedly. If yours is fine and running, then this is indeed just a signalling issue.

@cyberscribe I've checked, because we've had the issue of if filling up and preventing varnish from restarting in the past.
But this is a completely different issue. Varnish is running just fine, it's just that somehow - and I just can't get to the bottom of this – the puppet service resource is unable to determine so from its checks.
It also seems that the status check (or rather, the ensure => running check) is only made when puppet runs from the periodic checks, not when run manually.
This happend on all machines which use varnish, so it's not just a glitch somewhere. And the varnish puppet module hasn't changed, so I really am dumbfounded.
But I posted this here so maybe anyone else with the same problem would find it and be able to share their findings.

OK, definitely sounds like a separate/signalling issue. Just thought I'd
check as the shmlog tmpfs filing up was a baffling one for me for awhile!
On 10 August 2017 at 11:50, David Raison<EMAIL_ADDRESS>wrote:

@cyberscribe https://github.com/cyberscribe I've checked, because we've
had the issue of if filling up and preventing varnish from restarting in
the past.
But this is a completely different issue. Varnish is running just fine,
it's just that somehow - and I just can't get to the bottom of this – the
puppet service resource is unable to determine so from its checks.
It also seems that the status check (or rather, the ensure => running
check) is only made when puppet runs from the periodic checks, not when run
manually.
This happend on all machines which use varnish, so it's not just a glitch
somewhere. And the varnish puppet module hasn't changed, so I really am
dumbfounded.
But I posted this here so maybe anyone else with the same problem would
find it and be able to share their findings.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/maxchk/puppet-varnish/issues/145#issuecomment-321518223,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAqV5bO3m0O9HFNtegGmHrZ6wYEKXOEKks5sWuB6gaJpZM4Ow44z
.

OK, I just figured out that it must be a problem with or bug in the puppet package distributed by puppetlabs. If I install 3.7.2 from the debian repos, it works. My guess is that the version in the debian repos has a different method of checking service status… but I haven't dug deeper yet.
root@loadbalancer:~# apt-get install puppet=3.7.2-4+deb8u1 puppet-common=3.7.2-4+deb8u1
[…]
The following NEW packages will be installed:
  ruby-safe-yaml
The following packages will be upgraded:
  puppet puppet-common
2 upgraded, 1 newly installed, 0 to remove and 47 not upgraded.
Need to get 0 B/1,053 kB of archives.
After this operation, 2,318 kB disk space will be freed.
Do you want to continue? [Y/n]
[…]
Unpacking puppet (3.7.2-4+deb8u1) over (3.7.2-1puppetlabs1) ...
Preparing to unpack .../puppet-common_3.7.2-4+deb8u1_all.deb ...
Unpacking puppet-common (3.7.2-4+deb8u1) over (3.7.2-1puppetlabs1) ...

@kwisatz So this is not a bug of this module?

@func0der well, it only occurs on this module for me, but that might be related to the varnish service definition for systemd on debian, rather than this module's code.
I'm sorry I didn't have the time to dig deeper into this, e.g. checking what the differences are between the puppetlabs and debian versions of 3.7.2 release of puppet.

My 2 cent: varnish::service doesn't know you're using systemd. The module uses fact service_provider, from stdlib, which doesn't return 'systemd' for Debian 8, then populates variable varnish::params::systemd with true or false according to the fact.
Out of curiosity, I grabbed one of my Puppet test setups - the one with more distinct VMs - and tested the fact and variable above. They are indeed incorrect for Debian 8:
==> debian-82: Notice: Scope(Class[main]): Service provider: debian
==> debian-82: Notice: Scope(Class[main]): systemd: false
==> debian-75: Notice: Scope(Class[main]): Service provider: debian
==> debian-75: Notice: Scope(Class[main]): systemd: false
==> debian-60: Notice: Scope(Class[main]): Service provider: debian
==> debian-60: Notice: Scope(Class[main]): systemd: false
==> redhat-70: Notice: Scope(Class[main]): Service provider: systemd
==> redhat-70: Notice: Scope(Class[main]): systemd: true
==> redhat-65: Notice: Scope(Class[main]): Service provider: redhat
==> redhat-65: Notice: Scope(Class[main]): systemd: false
==> redhat-56: Notice: Scope(Class[main]): Service provider: redhat
==> redhat-56: Notice: Scope(Class[main]): systemd: false
==> centos-59: Notice: Scope(Class[main]): Service provider: redhat
==> centos-59: Notice: Scope(Class[main]): systemd: false

BTW, I am sure 'debian-82' VM uses systemd:
$ vagrant ssh -c 'ps -p 1' debian-82
  PID TTY          TIME CMD
    1 ?        00:00:00 systemd

So the issue is indeed in stdlib. We could workaround by creating a custom fact in varnish module, but I prefer fixing stuff where the problem is.

In fact, I'm not quite sure stdlib's service_provider custom fact should return the init system. The description just says it "Returns the default provider Puppet uses to manage services on this system". The code, mentioned in the previous message, doesn't show any intention related to knowing the init system. So the assertion about fixing stdlib might just be plain wrong.
I tried to find a module in Forge which detects the init system. As strange as it is to me, I found none. All modules that claim to do so either guess it from the distro and OS major version, or detected the installed init systems and guess the used one. So, the only option left is writing a custom fact (or a separate module for that).

Added PR 159 implementing the init system check with a more reliable custom fact.


Crash when .toml containing post-calibration ppm suggestions are dragged into GUI

When the .toml containing the suggested PrecursorMassTolerance and ProductMassTolerance for a specific calibrated .mzml is dragged into MM, a crash results

Yep! Those tomls shouldn't be dragged into the GUI, as they are file specific.

This .toml should not be allowed to be added to the GUI (it is automatically read if it is available)

It is difficult to handle that gracefully. Perhaps a check rejects the toml if it does not contain the string "Common Parameters"?

That's fine - a check for elements that are supposed to be there. Some kind of error message in the "Warnings" that simply says this type of .toml isn't supposed to be dragged into the GUI should result, not a crash.

Here is an example
02-15-17_YL-stnd_old-heat-calib.zip

fixed in #992


Quarterly selection of date picker

What problem does this feature solve?
Quarterly selection of date range will be available

What does the proposed API look like?
<nz-date-picker nzMode="quarter" [(ngModel)]="date" (ngModelChange)="onChange($event)">

any update on this feature request ? please let me know..

This feature seems helpful, any updates on this?

It's supported in ant-design, so it would be good to match the API.


Mikeyb31 wpml menu theme location

Test for #1414

Coverage increased (+0.004%) to 93.374% when pulling d7c02e7599ec5f4f3ee125ba1012f0b576982962 on mikeyb31-wpml-menu-theme-location into c893ecf7560ccc7275f32aef11df255823a8a293 on master.

Codecov Report

Merging #1437 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #1437      +/-   ##
============================================
+ Coverage     93.91%   93.91%   +<.01%
- Complexity     1403     1404       +1
============================================
  Files            45       45
  Lines          3383     3385       +2
============================================
+ Hits           3177     3179       +2
  Misses          206      206

Impacted Files
Coverage Δ
Complexity Δ

lib/Menu.php
88.37% <100%> (+0.27%)
44 <0> (+1)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c893ecf...d7c02e7. Read the comment docs.


[Relay] Fix Fuse

Thanks for contributing to TVM!   Please refer to guideline https://docs.tvm.ai/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers.

@tqchen @masahi this fix #3026 .

I believe that we will need a bit more discussion about what is happening here. In particular, the usage of fusor and primitive functions. There might be a better fix to this problem e.g. (not fuse these ops)

@tqchen I believe the fusion algorithm need some update to handle tuple correctly - see #2931 . I think we should chat a bit as I am confused about the code. In particluar sometimes information flow forward and sometimes backward (but in dataflow analysis it is always one directional AFAICT).

Move discussion to https://github.com/dmlc/tvm/issues/3039


[WIP] spawn_many function

This work in progress pull request implements handle.spawn_many function, which is very close to what Stream::buffered() does except it spawns all the futures as separate tasks.
In this implementation, it works but does not limit the number of tasks spawned simultaneously. This is just to show you the usage.
It simplifies example:
    let done = socket.incoming().for_each(move |(socket, addr)| {
        let pair = futures::lazy(|| futures::finished(socket.split()));
        let amt = pair.and_then(|(reader, writer)| copy(reader, writer));

        // Once all that is done we print out how much we wrote, and then
        // critically we *spawn* this future which allows it to run
        // concurrently with other connections.
        let msg = amt.map(move |amt| {
            println!("wrote {} bytes to {}", amt, addr)
        }).map_err(|e| {
            panic!("error: {}", e);
        });
        handle.spawn(msg);

        Ok(())
    });

Into:
    handle.spawn_many(100, socket.incoming().map(move |(socket, addr)| {
        futures::lazy(|| futures::finished(socket.split()))
        .and_then(|(reader, writer)| copy(reader, writer))
        .map(move |amt| {
            println!("wrote {} bytes to {}", amt, addr)
            })
        .map_err(|e| {
            panic!("error: {}", e);
            })
    }).map_err(|_| ()));

And also limits number of simultenous connections (eventually, when fully implemented).
I think in proposed form it looks quite cool:

You don't have to care about the result of for_each, as the stream is infinite anyway
The number of tasks is limited, which should be implemented in any decent server
It works for any stream
It allows nice error reporting (every error is required to converge to (), so you ought to log and drop it)
It doesn't require cloning a handle from user point of view which is quite common point of problems for newcomers

Is this going to be accepted? Do you like this interface or should it be changed? Thoughts?

Ideally I'd love to see this implemented as a combinator as I think that'd also enable this sort of power to be built externally. In theory this should be possible with the buffered_unordered method on streams, right?

Ideally I'd love to see this implemented as a combinator as I think that'd also enable this sort of power to be built externally. In theory this should be possible with the buffered_unordered method on streams, right?

I don't see how you expect this to work. buffered_unordered does just the same, but it doesn't scale. You can't make stream.buffered_unordered(1_000_000). But you can do that even with this example implementation of spawn_many.
I can imagine something like stream.buffered_unordered_spawn(1_000_000, |f| handle.spawn(f)), but I'm not sure it's possible to implement in such a generic way (or do you have any ideas?) I think the exact backpressure mechanism is specific to tokio_core.
It can be built externally as a function spawn_many(1_000_000, handle, stream) but I feel it's very basic building block that should be out of the box.
I mean showing  spawn with unlimited number of tasks in examples and providing no upgrade path leads to the fact that everyone uses exactly same bad code. While it can be fixed directly in service::listen, I think more basic solution which works on arbitrary streams is better.

IMO if this is a combinator targeted specifically for accepting sockets, it should live as a helper vs. including it on handle. At the very least it can start as a helper and get promoted as it evolves.

That being said, having a way to cap incoming connections seems good, but in practice it probably ideally wouldn't be based on a fixed number and instead somehow fall out of a back pressure system.

This is really cool combinator!
Current implementation of buffer_unordered indeed does not scale well with
the number of concurrent futures, as it may have to poll every single
underlying future to find which one is ready.
Though, the task::with_unpark_event could be used to quickly determine which
future should be polled from. Effectively providing a very similar functionality.
For one place where with_unpark_event is already used see unix version of
tokio-curl: https://github.com/tokio-rs/tokio-curl/blob/master/src/unix.rs

IMO if this is a combinator targeted specifically for accepting sockets, it should live as a helper vs. including it on handle. At the very least it can start as a helper and get promoted as it evolves.

A function tokio_core::reactor::spawn_many would be fine?

That being said, having a way to cap incoming connections seems good, but in practice it probably ideally wouldn't be based on a fixed number and instead somehow fall out of a back pressure system.

Well, I think even if there is a flexible backpressure, a hard limit is good too. While actual hard limit is EMFILE usually we want to leave some file descriptors for processing requests otherwise we could have a deadlock (or a livelock).
But maybe you can elaborate on this topic a litle bit.

Though, the task::with_unpark_event  lcould be used to quickly determine which future should be polled from.

Well, I'm not sure, is it really as scalable as spawn() ? Also, I'm still not sure how it works... At a glance, it requires cooperation with the implementation of every Future to work efficienly.

It sounds like whether this is a combinator or not boils down to whether buffered or buffered_unordered can be used. As @tmiasko pointed out with_unpark_event is not currently used but could be used to efficiently implement this with buffered_unordered.
In that sense I don't see a reason why this can't be just another combinator? We could perhaps provide it by default in tokio-core to start, but I could imagine that it'd want to migrate down to the futures layer eventually as well.

Ok with https://github.com/alexcrichton/futures-rs/pull/216 landed and the numbers you posted there I'm going to close this, but we can continue to explore our options here if that's not sufficient!


Fixing formatting for template literal types page

Fixes #3249

Hello,
Thanks for the fix.
When  will changes be visible on the website ?


Add to 7GUIs

I think it'd be good to add this cool UI lib to 7GUIs (ideally including also additional proposals) to ease understanding of its usage for newcomers as well as to compare its capabilities and approaches with other UI libs side by side in a fair comparison.
It'd also partially pinpoint whether layouting and "live" capabilities are well enough architectured or whether there are some sharp edges.

I like the idea of this, but it looks like a long term goal at best - particularly Circle Drawer as the whole point of Thyme is that all drawing is image based, and this would require drawing custom primitives.
The other items appear to be more doable at present.

particularly Circle Drawer as the whole point of Thyme is that all drawing is image based, and this would require drawing custom primitives.

I think this could be skipped completely with just a comment, that this UI lib doesn't offer this capability which is IMHO completely fine (and that's the purpose of 7GUIs - to show to which extent and if then how certain aspects of UI can be implemented using the particular lib).


using pouchdb-validation fatally breaks replication

This line of code (which I'm not sure I even understand the purpose for) line 34 of pouchdb-validation/lib/index.js
    function validate(validationFuncs, newDoc, oldDoc, options) {
 >>    newDoc._revisions = (oldDoc || {})._revisions;

breaks (incoming) replication (and probably other forms of writing docs).  It overwrites._revisions in newDoc (an object which is later passed into bulkDocs).  In bulkDocs the revisions are compared and by copying the revisions from the original doc, it will appear that the revision already exists in the destination DB (and the write will be SILENTLY skipped).
I suggest:
newDoc = Object.assign({},newDoc,{_revisions:(oldDoc || {})._revisions});
or deleting that whole line if someone cannot explain why it is there.
Note that if you do not actually define any validate_doc_update functions, you will not experience this bug.

Hm... looking more carefully, maybe the intent here is more like:
if(!newDoc._revisions && oldDoc) {
     newDoc = Object.assign({_revisions:oldDoc._revisions},newDoc);
}

to cover the case (replication) where the newDoc does actually have _revisions.


Peer to peer review

In this pull request, the below feature were implemented:

Event listener to the checkbox (change).
Update items object's value for completed key upon user actions.
Implemented a function for the Clear all completed button using the filter() method.
Store the updated array of items in local storage, so the user gets the correct list of values after the page reloads meaning that any changes made to the list are preserved.

👨💻  John - Code Reviewer
Hi @kambereBr, I'm your Code Reviewer for this session.
1⃣ What to Check

Does the reviewed project run on your machine?
✔ Yes, it's working pretty well.
Does the reviewed project work properly?
✔ Yes, it handles correctly each function add, remove, edit, and so on.
Are there any linters errors?
✔ No, the Linters are working properly and don't present any problem.
Is the correct flow used?
✔ Yes, it starts with making a new branch, then creating a Pull Request to get reviewed and finally, it will do the merge onto the master branch.
Is the repository documented in a professional way?
✔ Yes, it contains an excellent README.md presentation with his own LICENSE.md. Also, it has a descriptive Pull Request.
Are there any bugs that were missed by the author?
🟡  Yes, it contains a few design bugs and no function implemented, like the reset button to restart the array and the yellow colors need to cover the whole container.
Is there any room for improvement in the project?
✔ Absolutely, by fixing his design bugs and improving his JavaScript files he can improve a low his project in general.

2⃣ Suggestions

I would like to suggest you reduce the amount of direct CSS used within your JavaScript files, here's an example:
https://github.com/kambereBr/ToDoList-Best-Practices/blob/259cca08a4b3e9a77eaf32f935836e03c3bb75c5/src/index.js#L27-L40
I would like to suggest you reduce the use of createElement method to reduce the memory used in the browser, here's an example:
https://github.com/kambereBr/ToDoList-Best-Practices/blob/259cca08a4b3e9a77eaf32f935836e03c3bb75c5/src/index.js#L53-L63
I would like to suggest you change the span tag for an h1 tag in order to enhance your website readability, here's the code:
https://github.com/kambereBr/ToDoList-Best-Practices/blob/259cca08a4b3e9a77eaf32f935836e03c3bb75c5/src/template.html#L12-L15
I would like to suggest you to change the function notation for a class notation to follow the ES6 syntax.
https://github.com/kambereBr/ToDoList-Best-Practices/blob/259cca08a4b3e9a77eaf32f935836e03c3bb75c5/src/utils.js#L3-L7


Selection without weights

Thanks for the changes @haddadanas, looks good!
I just tested locally and I would have a single commit that I would like to add to this PR. Could you give me permissions to append to the branch on your fork?


Fix: RestartPolicy serde results in different revision

The change to ommit the RestartPolicy when not set (introduce in #449) results in null not be included in the json serialization resulting in different revision number causing Stopped clusters to Update.
We should ommitempty for RestartPolicy but that should be deffered to v1beta2

Hey @regadas ,
Do I understand this correctly?

Whenever there is a change in the API spec (serde) we get a new controller-revision.
Whenever there is a new controller-revision, all old CRDs are also reconciled.
If old CRDs didn't have a RestartPolicy set, they would be restarted. <- If this is correct, shouldn't we have a default value for RestartPolicy while computing "desired state"? 🤔

@live-wire RestartPolicy has the default value of "Never".

Whenever there is a change in the API spec (serde) we get a new controller-revision.
It depends but in general yes. There are some fields that will make it a backwards incompatible change.

Whenever there is a new controller-revision, all old CRDs are also reconciled.
Yes, if there's a new revision it's because there's a "seen" change and it triggers the Update on all clusters.

If old CRDs didn't have a RestartPolicy set, they would be restarted. <- If this is correct, shouldn't we have a default value for RestartPolicy while computing "desired state"?
There's a default value for it.
https://github.com/spotify/flink-on-k8s-operator/blob/6a004ef2ee063481abe5dcfafee076e3890ea848/apis/flinkcluster/v1beta1/flinkcluster_types.go#L558-L559

Whenever there is a new controller-revision, all old CRDs are restarted. (expected behaviour)
RestartPolicy being set or not is not respected if there is a controller-revision update.


Support for running from a script

I want to be able to run/debug my services in eclipse/pydev. I faked it by doing this in my hug API file:
if __name__ == '__main__':
    import sys
    from hug import run
    # run.terminal() gets its args from sys.argv so give it what it expects
    sys.argv[0] = "hug"
    sys.argv.extend(['-f', __file__])
    run.terminal()

and it seems to work.
Is there a better way that I have missed?

Hi @glennra,
Yes there is a better way! And you where so close to it :)
import hug
if __name__ == '__main__':
    import sys
    hug.run.server(sys.modules[__name__])

Let me know if this works for you
Thanks!
~Timothy

Hi @timothycrosley,
That doesn't do what I want. It just '''Returns a WSGI compatible API server for the given Hug API module''' but doesn't call some sort of run_forever(). I see from the source of run.terminal() that I need to pass that to make_server and then call serve_forever() on the returned httpd object. It seems easier to just modify sys.argv.

@glennra,
You are correct, and sorry for the confusion! I've added quicker way to start hug servers to the framework to the API, merged into develop, in preparation for the next release. You can see an example of it's usage here:
https://github.com/timothycrosley/hug/blob/develop/examples/quick_server.py
Let me know if this would work for your needs.
Thanks!
~Timothy

Almost, but why do you need to use hug? Couldn't you just add hug.run.serve()?
Also people may want to set the port, etc, so serve should probably take the same parameters that are set with the command line switches in hug.run.terminal(). Would it work if you factored out the server running part from hug.run.terminal() and allowed it to be called with parameters and then call this new function from hug.run.terminal() after parsing sys.argv?
So it would be still a single line for my use case, something like:
hug.run.serve(port=8888, version=2) # etc

Hi @glennra,
The __hug__.serve method does take the same arguments including port, and no_documentation. The reason the functionality doesn't existing on hug.run is because determining what module a function is being ran from is not straight forward or performant.
Thanks!
~Timothy

Ok, I see. Thanks. I'll switch to using the develop branch.

This has officially been released in 1.3.0
Thanks!
~Timothy


global: addition of models from view args

NOTE It is necessary to add models retrieved as view arguments to
current database session since new SQLAlchemy scoped session is
created when request context is pushed.

Signed-off-by: Jiri Kuncar<EMAIL_ADDRESS>

Coverage increased (+0.002%) to 98.58% when pulling e9be3a9295d2cba2445b493020b904cde9b365e5 on jirikuncar:scoped-session-fix into d5382c12e5bc8101aa167b80d0e12e8baf2bc6c8 on inveniosoftware:master.


Sometimes error may refer to type aliases, instead of place where they're used wrong

Here is some example. I defined some perfectly right type aliases in it, but then defined a function that uses them wrong. I may have a lot of other correct code that uses same type aliases, and it could be very hard to find the code that causes error in this situation.
/* @flow */

type Sink<T> = ( payload:T ) => void
type Disposer = () => void
type Stream<T> = ( s:Sink<T> ) => Disposer

const empty:Stream<any> = () => () => {}

function foo<A>(): (s:Stream<A>) => Stream<A> {
  // We are supposed to return a function `Stream => Stream`,
  // but return a Stream instead
  return empty
}

src/tmp.js:4
  4: type Disposer = () => void
                           ^^^^ undefined. This type is incompatible with
  5: type Stream<T> = ( s:Sink<T> ) => Disposer
                                       ^^^^^^^^ function type

src/tmp.js:5
  5: type Stream<T> = ( s:Sink<T> ) => Disposer
                                       ^^^^^^^^ function type. This type is incompatible with
  3: type Sink<T> = ( payload:T ) => void
                                     ^^^^ undefined

flow check --traces n where n is a number might help you. Tagging this so we can use this example in future error message improvement efforts. Thanks!

Didn't know about  --traces, thank you!

These errors are now a lot more clear in master.
Error: test.js:12
 12:   return empty
              ^^^^^ function type. This type is incompatible with the expected return type of
  9: function foo<A>(): (s:Stream<A>) => Stream<A> {
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^ function type
  This parameter is incompatible:
      5: type Stream<T> = ( s:Sink<T> ) => Disposer
                                           ^^^^^^^^ function type. This type is incompatible with
      9: function foo<A>(): (s:Stream<A>) => Stream<A> {
                                             ^^^^^^^^^ function type
      This parameter is incompatible:
          4: type Disposer = () => void
                                   ^^^^ undefined. This type is incompatible with
          5: type Stream<T> = ( s:Sink<T> ) => Disposer
                                               ^^^^^^^^ function type

Error: test.js:12
 12:   return empty
              ^^^^^ function type. This type is incompatible with the expected return type of
  9: function foo<A>(): (s:Stream<A>) => Stream<A> {
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^ function type
  This parameter is incompatible:
      9: function foo<A>(): (s:Stream<A>) => Stream<A> {
                               ^^^^^^^^^ function type. This type is incompatible with
      5: type Stream<T> = ( s:Sink<T> ) => Disposer
                              ^^^^^^^ function type
      This parameter is incompatible:
          5: type Stream<T> = ( s:Sink<T> ) => Disposer
                                               ^^^^^^^^ function type. This type is incompatible with
          3: type Sink<T> = ( payload:T ) => void
                                             ^^^^ undefined

Found 2 errors


Issue on docs

Path: /sdk/ts/orm/prisma
Can you add a section on how to safely run migrations with Turso?

Hey @mourraille
We're waiting for official support to land with Prisma for migrations, but here's the workaround that might be useful: https://www.unwrapdesign.com/blog/turso-prisma-migrations


Replace grpc streaming response UI with a console-like message feed

This PR replaces the gRPC streaming response pane for something that is more useful when testing. It also contains some small improvements to how the gRPC state is stored and loaded.
Old response pane:

New response pane:

this is dope; thanks!


Add a health check on the process that allows to test reachability

Describe the feature
There should be an additional endpoint provided by the process (e.g. /healthz) that can be probed to detect general functioning.
Describe the reason for such feature
This allows us to employ better monitoring, for alerting when the server side goes offline for some reason. Additionally it allows to plug into load balancing services that are aware of the health of their backends to provide dynamic failover.
Describe alternatives you've considered
None.

Hello,
It can be possible, but for now there is no such metric to tell if the server is correctly running, beside that the listening port is open, which can be tested without an http healthcheck endpoint.
There is no limit of nb of connection or whatsoever for now.
Have you seen a case where the server was not responding ?

The main reason I'd like a dedicated endpoint is to avoid side effects of the probing.
I think both the client side and the server side return some non-200 HTTP Status on a GET (instead of upgrade/connect) and log error messages.
When we tried t use the kubernetes TCP-probe on the client, it sent the <IP_ADDRESS> connection requests to the server that I mentioned in a PR previously.
We've not seen it not react at all, but the cloud native tooling is better at probing HTTP endpoints than just probing ports, and we've run into a situation where it failed due to our own mistakes.

separate port is fine, though I'd like to have it in the same main execution logic, so in case anything's stuck it's stuck as well.
WRT. time: This is half a request, half coordination if I want to start something. so there's a decent chance I'll provide at least /healthz, maybe /metrics if I can think of good ones.


Statically link the binary

It currently expects that libgmp.so.3 is in a certain place.

For now I'm just building the binary for multiple platforms.


Crash when holding left click then scroll wheel

With pan and zoom both enabled, holding mouse left button on the table then scroll the mouse wheel, the graph will become blank.

good one. I guess the solution is to disable zoom when pan in progress, want to do a PR?
enclose this
with a
if (!this.panInProgress) {
  // https://github.com/rrag/react-stockcharts/blob/master/src/lib/ChartCanvas.js#L550-L596
}


onStreamProgress not handling undefined date property

I am pushing through a NestJS fastify client, it technically does work, but throws an error here every single request. Curios as to why this may be happening.
  private onStreamProgress(data: string, observer: Subscriber<string>): void {
    data = data.substring(this.progress); // right here, data is undefined
    this.progress += data.length;
    data.split(/(\r\n|\r|\n){2}/g).forEach((part) => this.parseEventData(part, observer));
  }

same issue here any one found solutions?

same issue here any one found solutions?

I have a small patch that just returns void. I do not track progress or anything so it seems to work fine for now, your mileage may vary. Use https://www.npmjs.com/package/patch-package or pnpm patch
diff --git a/esm2022/lib/sse-client-subscriber.mjs b/esm2022/lib/sse-client-subscriber.mjs
index f9cb513a79bf474f7856392c01c84a8a31d20ac1..48bfe6c5fcac5133acced2549f0ae743ceec0ba6 100644
--- a/esm2022/lib/sse-client-subscriber.mjs
+++ b/esm2022/lib/sse-client-subscriber.mjs
@@ -63,6 +63,7 @@ export class SseClientSubscriber {
         }
     }
     onStreamProgress(data, observer) {
+        if (!data) return;
         data = data.substring(this.progress);
         this.progress += data.length;
         data.split(/(\r\n|\r|\n){2}/g).forEach((part) => this.parseEventData(part, observer));
diff --git a/fesm2022/ngx-sse-client.mjs b/fesm2022/ngx-sse-client.mjs
index daba8326bb58940e8a1f1c4a6c664998160f3d2e..576a76bb6364a5b8912343d641e124d873579b02 100644
--- a/fesm2022/ngx-sse-client.mjs
+++ b/fesm2022/ngx-sse-client.mjs
@@ -71,6 +71,7 @@ class SseClientSubscriber {
         }
     }
     onStreamProgress(data, observer) {
+        if (!data) return;
         data = data.substring(this.progress);
         this.progress += data.length;
         data.split(/(\r\n|\r|\n){2}/g).forEach((part) => this.parseEventData(part, observer));


python3Packages.certifi: 2020.11.8 -> 2020.12.5

Motivation for this change
Update to latest upstream release 2020.12.5
Commit log: https://github.com/certifi/python-certifi/commits/master
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python3Packages.certifi

@GrahamcOfBorg build python3Packages.certifi

@GrahamcOfBorg eval

@GrahamcOfBorg eval

/rebase_staging

/rebase_staging

/rebase-staging

/rebase-staging

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108297 run on x86_64-linux 1

1 package built:

python38Packages.certifi

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108297 run on x86_64-linux 1

1 package built:

python38Packages.certifi


Set up step size in nevergrad

I am using nevergrad to optimize and has got several hyperparameters to tune in.
I am assigning one of them as x = ng.p.Scalar(lower=0, upper=1) and nevergrad takes any value between 0 to 1. However I want to include step size like increase by 0.1 always so values can be any from 0, 0.1, 0.2, 0.3 ... 1. I tried looking into how to achieve this in nevergrad but no success. Can anyone please help me to setup this step size ?

Hello.
If I understand correctly, you want x to be in {0, 0.1, 0.2, ..., 1.} ?
A solution for this is to use
ng.p.Scalar(lower=0., upper=10.).set_integer_casting() and divide by 10.
For example
x = [float(ng.p.Scalar(lower=0., upper=10.).set_integer_casting().sample().value) / 10. for _ in range(1000)] ; print(min(x), max(x), x[:15])
Have a great day.


Errors in latest deno release

error: TS2304 [ERROR]: Cannot find name 'ErrorInit'.
export interface HttpErrorInit extends ErrorInit {
                                       ~~~~~~~~~
    at https://deno.land/x/http_error@0.1.2/mod.ts:4:40

TS2559 [ERROR]: Type 'HttpErrorInit' has no properties in common with type 'ErrorOptions'.
    super(message, init);
                   ~~~~
    at https://deno.land/x/http_error@0.1.2/mod.ts:104:20

Found 2 errors.

I believe the issue is that ErrorInit was replaced with ErrorOptions recently by TypeScript. I'll update this interface to extend that instead.
https://github.com/microsoft/TypeScript/blob/363e3a78f4def6084cc7371c8b1104485a7fe5f8/src/lib/es2022.error.d.ts
I probably won't get around to it until later this week.

No worries. Very kind of you!

Thank you!


Fixing various things for sync bank account screen

Description

Fixes #2108, #2110 , also fixes the string on link bank account error screen

Tested
unit tested / manual tested

@lisaqyli does QA need to test this during the release cycle?


add missing iseq line for eoan

Thanks, reason for this is that when the latest version comes out they don’t have the -updates kernel immediately.  We can probably drop the disco line if disco-updates exists now too.


Not implemented: HTMLCanvasElement.prototype.getContext

Describe the bug
I have a component that uses the canvas html tag, and when I try to run tests on it I get the following error:
Not implemented: HTMLCanvasElement.prototype.getContext (without installing the canvas npm package)
and if i install it I get another error:
Module did not self-register
Reproduction
use html canvas tag on a component and try to test the component with vitest
System Info
System:
    OS: Linux 5.17 Pop!_OS 20.04 LTS
    CPU: (12) x64 AMD Ryzen 5 5600X 6-Core Processor
    Memory: 19.96 GB / 31.31 GB
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
  Binaries:
    Node: 16.19.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 8.19.3 - /usr/local/bin/npm
  Browsers:
    Chrome: 109.0.5414.74
    Firefox: 108.0.2
  npmPackages:
    @vitejs/plugin-react: 1.3.2 => 1.3.2
    vite: 2.6.13 => 2.6.13
    vitest: ^0.29.2 => 0.29.2

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

See: https://github.com/vitest-dev/vitest/issues/740
Run with --no-threads

@sheremet-va Is this really the only possible option ? I assume that --no-threads make everything work with single thread making all the tests being much slower to process. I guess it is possible to somehow adress this since with Jest it does seem to work properly ?


Switch to using differential backups

From what I'm seeing on enikshay, the incremental backups are taking up almost the same amount of room as the the full backups (looking at repository backup size in pgbackrest info).
I also don't see a way to expire incremental backups until the full backups they depend on expire, so this is causing us to run out of space on the standby machine unless we aggressively expire full backups.
What I'm proposing is that we switch from using incremental backups to differential backups so that we can use retention-diff to expire them. With this approach, based on our default settings in our ansible repo, we would then keep 4 weeks of weekly backups (retention-full) and 3 days of daily backups (retention-diff), mimicking the old pg basebackup method.
@javierwilson @snopoke

If there's no objections I'll deploy this to enikshay tomorrow before the daily backup runs

deployed this change and https://github.com/dimagi/commcarehq-ansible/pull/961 to softlayer as well since we're running into space issues there too


No ready nodes

I applied all the standard configuration and the standard example with a <IP_ADDRESS>/0CIDR and one of the Gateway Pods is constantly logging:
2020/01/20 11:17:25 Failed to allocate a Gateway node for static egress IP custom resource: test due to: Failed to allocate gatewway as there are no ready nodes

Am I missing something? The development docs said something about an annotations. But that doesn't seem to work either.
I appreciate any help

@NicolaiSchmid Just tried setting this up and am running into the same problem. You ever find a solution on your own?

Unfortunately, I did not

Should be caused by the judgment here:
https://github.com/nirmata/kube-static-egress-ip/blob/94b369f6e30bf060ef14d67c75f0cadcb74dd0ab/pkg/ha/gateway_manager.go#L207-L210


[BUG] Open Graph Image is Missing

Description
Open Graph Image Metadata is not working properly which is very helpful when we share links on different social media plateforms.
Screenshots
Current:

After Changes:

Additional information
Official Docs: https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started
🥦 Browser
Google Chrome
👀 Have you checked if this issue has been raised before?

[X] I checked and didn't find a similar issue

🏢 Have you read the Contributing Guidelines?

[X] I have read and understood the rules in the Contributing Guidelines

Are you willing to work on this issue?
Yes I am willing to submit a PR!

Please assign me on this issue

Please assign me on this issue

Hi listen here so it doesn't feel like I'm taking anyway anything you raise, I like to give easy things to new contributors. But they only get it once so they don't get stuck in the loop of super easy issues and stop being scared of going further, if easy is all they have to contribute I rather they don't at all.
With that being said, will make this a good first issue. Thanks for raising

Please assign me on this issue

Sure, it's the same rules as the one on whisper, so you can follow them the same way.

:tada: This issue has been resolved in version 2.72.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Slider does not work with iOS 13 in a collection view

New Issue Checklist

[x] Updated RangeSeekSlider to the latest version
[x] Checked Gitter

Issue Description
I am using the RangeSeekSlider in a project that uses iOS 12. The slider is embedded in a not expandable collection view cell. When updated to iOS 13 beta, the slider does not respond anymore. I tested it also with other iOS versions and it works as always.
Environment
iOS version: iOS 13 beta 6

I'm facing same problem as well. In my case, my slider embed in a collection view cell. It cannot drag the handles smoothly. I found that, in iOS 13, the modally presentation is embed with a gesture automatically for pulling down to dismiss the view. I think this gesture is conflict with the collection view scrolling which stop the drag action of handles of the slider. My workaround is set the presentation from "Same As Destination" to "Full Screen".

The same issue happened in my project as well. I am using this SDK in SwiftUI and rendering it on a sheet presentation. The handles are not dragging smoothly and causing the sheet to move up or down. I think the touch events are being registered by the sheet to move it up/down to dismiss it, the SDK needs to handle the touches on sheet properly. Any solution available with anyone?

Found this answer on Stackoverflow https://stackoverflow.com/questions/58001780/swipe-gesture-interrupts-uislider-control-in-ios-13-but-not-previous-ios-versio
 so if it works for you give the OP on StackOverflow some credit!
If you add a panGesture to a RangeSlider as follows, the cancelTouchesInView = false should allow RangeSlider to operate normally as well as the swipe to dismiss gesture.
let panGesture = UIPanGestureRecognizer(target: nil, action:nil) panGesture.cancelsTouchesInView = false slider.addGestureRecognizer(panGesture)

The solution given by @sanvean worked !
Thanks

I also confirm that the solution by @sanvean worked !
It also work in every views that include scrolling. I had the issue in a scroll view, and this helped a lot !

+1 for @sanvean's suggestion!

Good one @sanvean !

The solution given by @sanvean worked !
Thanks

Found this answer on Stackoverflow https://stackoverflow.com/questions/58001780/swipe-gesture-interrupts-uislider-control-in-ios-13-but-not-previous-ios-versio  so if it works for you give the OP on StackOverflow some credit!
If you add a panGesture to a RangeSlider as follows, the cancelTouchesInView = false should allow RangeSlider to operate normally.
let panGesture = UIPanGestureRecognizer(target: nil, action:nil) panGesture.cancelsTouchesInView = false slider.addGestureRecognizer(panGesture)

thanks worked forme


How to show that the bridge device is offline？ (CON-1397)

There are many bridge devices in the bridge, but not all of them are online. How can I inform the bridge devices that have been powered off?
Currently included bridge device types: light，occupancy sensor, window covering,

Attribute 0x11 on the Bridge Basic Info cluster is Reachable.
The Reachable attribute SHALL be used to indicate whether the bridged device is reachable by the
bridge over the non-Matter network, so a Matter Node which wants to communicate with a bridged
device can get an indication that this might fail (when the attribute is False). Determination of
reachability MAY not be perfect (e.g. depending on technology employed), so the Matter Node
SHOULD be aware of the risk of false positives and negatives on reachability determination. For
example, a bridged device MAY be marked as unreachable while it could actually be reached, and
vice-versa.
<IP_ADDRESS>. ReachableChanged Event
This event SHALL be generated when there is a change in the Reachable attribute. Its purpose is to
provide an indication towards interested parties that the reachability of a bridged device (over the
non-Matter network) has changed, so they MAY take appropriate action.
After (re)start of a bridge this event MAY be generated.


revert: Firestore cache snapshot connections with underlying native listener (#6819)

Description
This reverts commit caaae99a9588ebec00be185bdc24aafda3fc4365.
Related Issues
See #6948
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (melos run analyze) does not report any problems on my PR.
[ ] I read and followed the Flutter Style Guide.
[ ] I signed the CLA.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

PRs to fix issues analyzer and web tests issues on master from new Flutter release coming separately.


Trying to start with --v2 --ts throws an error

From @KerryRitter on April 30, 2016 16:31
Here is my command line output:
c:\Workspaces\RevRadio\mobile>ionic start revradio --v2 --ts
Creating Ionic app in folder c:\Workspaces\RevRadio\mobile\revradio based on tabs project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/typescript.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-tabs/archive/typescript.zip
[=============================]  100%  0.0s
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall

Running the install without the --ts argument works as expected.
Copied from original issue: driftyco/ionic2-app-base#24

From @KerryRitter on May 1, 2016 13:55
Sorry bout that.
npm -v = 3.3.12
node -v = 5.1.0
ionic-v = 2.0.0-beta.25

From @mhartington on April 30, 2016 23:58
What's your node version, npm version and ionic cli version

From @vg33 on May 17, 2016 6:48
I'm having exactly the same issue, with the following versions:
npm -v = 3.3.12
node -v = 5.4.0
ionic -v = 2.0.0-beta.25
Any suggestions?

After the latest update (or re-install), i'm no longer having this problem. Perhaps it is resolved.

I'm having the issue with Node 5.11. Will try updating to 5.4.

Sorry - ignore my last comment. I did a reinstall of Ionic and I'm not at beta.26. I still have the same issue, unless I use sudo to make the app.
So... maybe I was wrong to use sudo to install ionic? But I had done that before with v1 and had no problem making apps.
I don't quite see how using sudo to install the Ionic CLI would make the apps generated by it not work right unless run with sudo.
I know some folks recommend against using sudo when installing CLI apps globally, but I always thought it was more a suggestion then anything else.

I'm having the same issue with
npm -v = 1.3.10
node -v = v0.10.25
ionic -v = 2.0.0-beta.30
I previously had ionic 1.0 installed,
but have run this as root:
npm uninstall -g ionic ; npm uninstall -g cordova ; npm cache clear ; npm cache clean
to clean up before installing the beta

On OSX I resolved this by installing npm as non-root. I followed the steps in the following article: https://johnpapa.net/how-to-use-npm-global-without-sudo-on-osx/
Now it works like a charm.

@104player The beta requires at least node v0.12. Could you please update and try the command again?

Thanks!
Good to know...
I'm just using the node and npm that Ubuntu 14.04 gives me at the moment.

for now I am using Docker to get my node 5 as a workaround:

Dockerfile
FROM node:5-onbuild
RUN npm install -g ionic@beta

docker build -t ionic-beta .
docker run -t -i -v $HOME/git/ionic/:/ionic/ ionic-beta /bin/bash
then I can run it..

still have to try a nice way to fix up permissions, for now doing
chown -R 1000 .
as needed

@104player Usually Ubuntu has old versions of node available within their distribution network.  Luckly nodesource hosts new versions.  If you would like to update your native os distro instead of using docker you can follow these instructions.  https://github.com/nodesource/distributions#installation-instructions

in my case, i was using very old npm (version less that less than 2.0).
i made it working by updating the npm to 3.9.5.

The error provided is very general and appears to not be providing enough insight for CLI users.  I will work on improving this messaging so that we can get better details.
Usually providing the --verbose flag and provide more insight into the issue that is occuring.
Example: ionic start cutePuppyPics --v2 --verbose

I'm getting the same error on OS X 10.11.5 with npm 3.10.3, node v4.4.7 and ionic 2.0.0-beta.32.
Running ionic start cutePuppyPics --v2 --verbose gives (skipping the beginning as everything seems to be okay there):

[...]
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-tabs/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
Running exec command: npminstall
npm
ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.4.7
npm ERR! npm  v3.10.3
npm
ERR! path /Users/hhiptmair/.npm/inquirer/0.11.0
npm ERR! code EACCES
npm
ERR! errno -13
npm ERR! syscall mkdir
npm ERR!
Error: EACCES: permission denied, mkdir '/Users/hhiptmair/.npm/inquirer/0.11.0'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/Users/hhiptmair/.npm/inquirer/0.11.0']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/Users/hhiptmair/.npm/inquirer/0.11.0',
npm
ERR!   parent: 'ionic-angular' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/hhiptmair/Sites/cutePuppyPics/npm-debug.log
Spawn command completed
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues

@hhiptmair Looks like you might have installed node as admin. Could you try running the start command with sudo?  sudo ionic start cutePuppyPics --v2 --verbose

@jthoms1 yep, you were right. i was able to recreate this issue by installing node as admin and then it worked running ionic with sudo.
nevertheless, i think the better solution is to fix the node-installation. for me, this was done by removing node and npm completely and then just using the official installer.
thanks for your help!

I am closing this issue.  It has been kind of a catch all for npm install issues from ionic start.  If you are having issues please try running with the verbose flag.
sudo ionic start cutePuppyPics --v2 --verbose
This should provide more insight into what is happening.  In most cases it will report issues with network connectivity or permissions issues. If this is not the case please open an issue with your ionic info output.

Spawn command completed
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
i have this same error
You have been opted out of telemetry. To change this, run: cordova telemetry on.
6.3.1
Ionic CLI Version: 2.1.0-beta.3
Ionic App Lib Version: 2.1.0-beta.1
OS:
Node Version: v4.6.0

E:\SocialLoginDemo>ionic start HelloWorld12 blank --v2
Creating Ionic app in folder E:\SocialLoginDemo\HelloWorld12 based on blank project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-blank/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues

my version information
E:\SocialLoginDemo>ionic info
Your system information:
You have been opted out of telemetry. To change this, run: cordova telemetry on.
6.3.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS:
Node Version: v4.6.0

Dependency warning - for the CLI to run correctly,
it is highly recommended to install/upgrade the following:
Please install your Cordova CLI to version  >=4.2.0 npm install -g cordova

please help for same

I had a same issue when installing ionic start projectname blank --v2 on Windows 7.
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
The issue is now fixed.
My methods are:

Choose the option "Run Git from Windows Command Prompt" when reinstalling Git.
Right click Command Prompt and choose Run as an administrator (It is not permitted to make any changes, e.g: mkdir or install, with my user account. Don't know why).

the problem is the npm sudo permissions.
To solve this, you can see https://docs.npmjs.com/getting-started/fixing-npm-permissions

@chenbobowu Thanks！！！
已经 解决了
http://user.qzone.qq.com/19643604/blog/1475133805

Same problem here:
Creating Ionic app in folder /home/sierran/js/mobilestado based on tabs project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-tabs/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
 undefined

Mind letting us know? https://github.com/driftyco/ionic-cli/issues

node -v
v6.7.0

npm -v
3.10.3

lsb_release -a
No LSB modules are available.
Distributor ID:	LinuxMint
Description:	Linux Mint 18 Sarah
Release:	18
Codename:	sarah

I wonder if this is anything new as for the ionic and npm. I have node and npm installed as root and doing sudo npm install -g all the time - has something changed in ionic regarding this? if so it this really necessary?

Thanks @sierran,  fixed by installing git.
I just followed the node and npm installation here.
https://www.youtube.com/watch?v=AcUfdajsKg8
and for the ionic installation I just followed
https://www.youtube.com/watch?v=geuW_BjR9hE.
Then upon creating my first up using
sudo ionic start myApp tutotial --v2
There was an error with the spawned command: npminstall
Do
sudo apt-get install git
then run again
sudo ionic start myApp tutotial --v2
Linux ubuntu desktop 16.04.01 amd64 via virtual machine
Node 6.7.0
npm 3.10.3

just a BTW note - I've hit exactly same issue (There was an error with the spawned command: npminstall) yet in my case the reason was completely different (which possibly could help someone). I was recently changing the .npmrc to use some private repository and the solution was to just clear the bogus values (or simply remove the .npmrc)

I had the same problem and to resolve needed only update the nodejs.
sudo npm cache clean -f sudo npm install -g n sudo n stable

npm  3.10.3
ionic 2.10
node 6.7.0
I'm still getting this error:
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
 undefined

I'm running on a windows 10 home x64 :( I tried installing git, but nothing changed!

Same.
npm 3.10.8
ionic 2.1.0
node 6.7.0
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
 undefined

macOS Sierra

I have the same problem, but only happens with --v2
D:>ionic start comunidades blank --v2 --ts
Directory already exists: D:\comunidades
Would you like to overwrite the directory with this new project?
(yes/no): yes
yes
Creating Ionic app in folder D:\comunidades based on blank project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-blank/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues
D:>ionic info
Your system information:
Cordova CLI: 6.3.1
Ionic CLI Version: 2.1.0-beta.3
Ionic App Lib Version: 2.1.0-beta.1
OS:
Node Version: v5.12.0

I've the same problem:
E:>ionic start Test --v2
Creating Ionic app in folder E:\Test based on tabs project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-tabs/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues
E:>ionic info
Your system information:
Cordova CLI: 6.3.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS:
Node Version: v6.7.0

starting the console as administrator doesn't seem to solve anything for me. I tried to install python on the pc, but it didn't help too :(

I could create ionic  v2 project with this command  ionic start app blank --version2 --ts.Please try
Open command prompt as admin and try the command

Hi i Have the same issue,starting the console as administrator doesn't seem to solve anything for me.

Installing git seems to solve the problem

@Lafaa
Thanks for the info, but please can you tell me which git you installed, as i already have gitbatch installed.

I installed the last version from here https://git-scm.com/downloads !

@Lafaa
Appreciated your help, i confirm that installing git (and selecting for windows command line) fixed the issue for me.
Thanks.

Great! installing Git works for me, thank you very much for your help

please help. i am also getting following error.
my system information:
WINDOWS 7
Cordova CLI: 6.3.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.0.0-beta.20
OS: Windows 7 SP1
Node Version: v4.5.0
npm version 2.15.9
i am also getting following error,-
[=============================]  100%  0.0s
Installing npm packages...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues

i already have git installed and still i am getting above error.

@plnkr2015 did you tried starting the command prompt with administrator privileges

For me, on Mac OS X 10.12 and the following info viasudo ionic info.
Your system information:

Cordova CLI: 6.3.0
Gulp version:  CLI version 1.2.2
Gulp local:
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.0.0-beta.20
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.6.0
Xcode version: Xcode 8.0 Build version 8A218a

It turns out I created ionic 2 project on folder with group name other than wheel. Thus even executing command via sudo it still show the same error. I then have to do sudo chgrp -R usrname /folder/myfolder (just put your username and folder there). Then it's successfully run without error.
PS. Why OS returns El Capitan instead of Sierra, as I'm on Sierra.

For me it was only to upgrade to new version of npm
npm install -g npm

This my error log

Cannot download "https://github.com/sass/node-sass/releases/download/v3.10.1/win
32-ia32-46_binding.node":
HTTP error 403 Forbidden
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.
  export HTTP_PROXY=http://example.com:1234

or configure npm proxy via
  npm config set proxy http://example.com:8080

<EMAIL_ADDRESS>postinstall C:\apps\practice\node_modules\gulp-sass\node_modu
les\node-sass
node scripts/build.js

Building: C:\Program Files\nodejs\node.exe C:\apps\practice\node_modules\gulp-sa
ss\node_modules\node-sass\node_modules\node-gyp\bin\node-gyp.js rebuild --verbos
e --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp
info it worked if it ends with
ok
gyp
verb cli [ 'C:\Program Files\nodejs\node.exe',
gyp verb cli   'C:\apps\practice\node_modules\gulp-sass\node_modules\node-
sass\node_modules\node-gyp\bin\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp
verb cli   '--libsass_library=' ]
gyp info using<EMAIL_ADDRESS>gyp info
using<EMAIL_ADDRESS>| win32 | ia32
gyp
verb command rebuild []
gyp
verb command clean []
gyp
verb clean removing "build" directory
gyp
verb command configure []
gyp
verb check python checking for Python executable "python2" in the PATH
gyp verb which failed Error: not found: python2
gyp
verb which failed     at getNotFoundError (C:\apps\practice\node_modules\gulp
-sass\node_modules\node-sass\node_modules\node-gyp\node_modules\which\which.js:1
4:12)
gyp verb which failed     at F (C:\apps\practice\node_modules\gulp-sass\node_m
odules\node-sass\node_modules\node-gyp\node_modules\which\which.js:69:19)
gyp verb which failed     at E (C:\apps\practice\node_modules\gulp-sass\node_m
odules\node-sass\node_modules\node-gyp\node_modules\which\which.js:81:29)
gyp verb which failed     at C:\apps\practice\node_modules\gulp-sass\node_modu
les\node-sass\node_modules\node-gyp\node_modules\which\which.js:90:16
gyp verb
which failed
at C:\apps\practice\node_modules\gulp-sass\node_modules\node-sass\node_modu
les\node-gyp\node_modules\which\node_modules\isexe\index.js:44:5
gyp
verb which failed     at C:\apps\practice\node_modules\gulp-sass\node_modules
\node-sass\node_modules\node-gyp\node_modules\which\node_modules\isexe\windows.j
s:29:5
gyp
verb which failed     at FSReqWrap.oncomplete (fs.js:82:15)
gyp verb which failed  python2 { [Error: not found: python2] code: 'ENOENT' }
gyp
verb check python checking for Python executable "python" in the PATH
gyp
verb which failed Error: not found: python
gyp verb which failed     at getNotFoundError (C:\apps\practice\node_modules\g
ulp-sass\node_modules\node-sass\node_modules\node-gyp\node_modules\which\which.j
s:14:12)
gyp verb which failed     at F (C:\apps\practice\node_modules\gulp-sass\node_m
odules\node-sass\node_modules\node-gyp\node_modules\which\which.js:69:19)
gyp verb which failed     at E (C:\apps\practice\node_modules\gulp-sass\node_m
odules\node-sass\node_modules\node-gyp\node_modules\which\which.js:81:29)
gyp verb
which failed     at C:\apps\practice\node_modules\gulp-sass\node_modules\node
-sass\node_modules\node-gyp\node_modules\which\which.js:90:16
gyp verb which failed     at C:\apps\practice\node_modules\gulp-sass\node_modu
les\node-sass\node_modules\node-gyp\node_modules\which\node_modules\isexe\index.
js:44:5
gyp verb which failed     at C:\apps\practice\node_modules\gulp-sass\node_modu
les\node-sass\node_modules\node-gyp\node_modules\which\node_modules\isexe\window
s.js:29:5
gyp verb which failed     at FSReqWrap.oncomplete (fs.js:82:15)
gyp verb which failed  python { [Error: not found: python] code: 'ENOENT' }
gyp verb could not find "python". checking python launcher
gyp
verb could not find "python". guessing location
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp
ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
HON env variable.
gyp ERR! stack     at failNoPython (C:\apps\practice\node_modules\gulp-sass\node
_modules\node-sass\node_modules\node-gyp\lib\configure.js:449:14)
gyp ERR! stack     at C:\apps\practice\node_modules\gulp-sass\node_modules\node-
sass\node_modules\node-gyp\lib\configure.js:404:11
gyp ERR!
stack     at C:\apps\practice\node_modules\gulp-sass\node_modules\node-sass\node
_modules\node-gyp\node_modules\graceful-fs\polyfills.js:264:29
gyp
ERR! stack     at FSReqWrap.oncomplete (fs.js:82:15)
gyp ERR!
System Windows_NT 6.1.7600
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\apps\practice\node
_modules\gulp-sass\node_modules\node-sass\node_modules\node-gyp\bin\node-
gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ld
flags=" "--libsass_library="
gyp ERR! cwd C:\apps\practice\node_modules\gulp-sass\node_modules\node-sass
gyp ERR! node -v v4.5.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
Build failed
npm
ERR! Windows_NT 6.1.7600
npm ERR!
argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_mod
ules\npm\bin\npm-cli.js" "install"
npm ERR! node v4.5.0
npm ERR! npm  v2.15.9
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>postinstall: node scripts/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'node scripts/build.j
s'.
npm ERR! This is most likely a problem with the node-sass package,
npm
ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/build.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-sass
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     C:\apps\practice\npm-debug.log
Spawn command completed
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues

@intheb0x do you have python installed? One of the errors seems to be it being unable to find the python executable on your system. Additionally, try updating npm.

Run into this problem very offen, at last, remove totally the .nvm dir, then reinstall nvm, node, ionic, cordova. Then run 'ionic start xxx --v2', will be ok.

Running into this again. Previously it was on a Mac, now on PC.

G:> ionic start piaD sidemenu --v2
Creating Ionic app in folder G:\piaD based on sidemenu project
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
[=============================]  100%  0.0s
Downloading: https://github.com/driftyco/ionic2-starter-sidemenu/archive/master.zip
[=============================]  100%  0.0s
Installing npm packages...
npm WARN peerDependencies The peer dependency @angular/tsc-wrapped@* included from @ionic/app-scripts will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN peerDependencies The peer dependency rxjs@* included from @ionic/app-scripts will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN optional dep failed, continuing<EMAIL_ADDRESS>/

<EMAIL_ADDRESS>install G:\piaD\node_modules@ionic\app-scripts\node_modules\node-sass
node scripts/install.js

Cached binary found at C:\Users\HP\AppData\Roaming\npm-cache\node-sass\4.5.0\win32-ia32-46_binding.node

<EMAIL_ADDRESS>postinstall G:\piaD\node_modules@ionic\app-scripts\node_modules\node-sass
node scripts/build.js

Binary found at<EMAIL_ADDRESS>Testing binary
Binary is fine
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" "install"
npm ERR! node v4.4.1
npm ERR! npm  v2.14.20
npm ERR! code EPEERINVALID
npm ERR! peerinvalid The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>npm ERR! Please include the following file with any support request:
npm ERR!     G:\piaD\npm-debug.log
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall

Having this error today on Ubuntu 14.04
System info:
Cordova CLI: 6.3.1
Gulp version:  CLI version 3.9.1
Gulp local:
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS: Distributor ID:	Ubuntu Description:	Ubuntu 14.04.5 LTS
Node Version: v6.7.0

npm -v -> 4.3.0

After hours of research I finally got it working by installing node-sass globally.

Upgrading npm solve it for me.

None of these solutions work for me. I ran command line as administrator. I cleared the npm cache. I upgraded npm. I installed node-sass globally. I re-installed git, re-installed nodejs, cordova and ionic. Still the same error. It appears ionic does not work on my OS/platform combination (Win10/AMDx64). I'm new to ionic and it looks good on the website, but not being able to generate a simple app is not a confidence builder. I'm really hoping there is a simple fix to this.
npm: 4.4.4
node: 6.10.1
OS: Windows 10 64bit AMD
cordova: 6.5.0
ionic: 2.2.2
git: version 2.12.2.windows.1
The command ionic start glg2 tabs --v2 --verbose produces the following output:
Task: title=start, name=start, summary=Starts a new Ionic project in the specified PATH, [options]=any flags for the command, =directory for the new project, [template]=Starter templates can either come from a named template,
(ex: tabs, sidemenu, blank),
a Github repo, a Codepen url, or a local directory.
Codepen url, ex: http://codepen.io/ionic/pen/odqCz
Defaults to Ionic "tabs" starter template, --appname|-a=Human readable name for the app (Use quotes around the name), --id|-i=Package name for  config, ex: com.mycompany.myapp, title=Skip npm package installation, boolean=true, title=Create a basic structure without Cordova requirements, boolean=true, title=Setup the project to use Sass CSS precompiling, boolean=true, title=List starter templates available, boolean=true, --io-app-id=The Ionic.io app ID to use, --template|-t=Project starter template, boolean=true, title=Start a Ionic v2 project, --zip-file|-z=URL to download zipfile for starter template, isProjectTask=false, run=function run(ionic, argv) {
if (argv.list || argv.l) {
return templateUtils.listTemplates();
}
if (argv._.length < 2 && StartWizard) {
return StartWizard.start();
} else if(argv._length < 2) {
return appLibUtils.fail('Invalid command', 'start');
}
if (argv._[1] === '.') {
return log.error(chalk.red('Please name your Ionic project something meaningful other than '.''));
}
// Ensure that the folder name provided is a String
// ie 5 becomes '5' AND '5' stays as '5'
argv.[1] = argv.[1].toString();
var promptPromise;
var options = appLibUtils.preprocessCliOptions(argv);
var startingApp = true;
// Grab the app's relative directory name
if (fs.existsSync(options.targetPath)) {
promptPromise = Start.promptForOverwrite(options.targetPath);
} else {
promptPromise = Q(true);
}
return promptPromise
.then(function(promptToContinue) {
if (!promptToContinue) {
startingApp = false;
log.info('\nIonic start cancelled by user.');
return;
}
return Start.startApp(options);
})
.then(function() {
if (startingApp) {
return Start.printQuickHelp(options);
}
})
.then(function() {
if (startingApp) {
return Start.promptLogin(options);
}
})
.then(function() {
if (options.v2 && startingApp) {
//log.info('\nNew to Ionic? Get started here: http://ionicframework.com/getting-started\n');
}
})
.catch(function(error) {
log.error(error);
throw error;
});
}
Utils.preprocessCliOptions _=[start, glg2, tabs], skip-npm=false, no-cordova=false, w=false, sass=false, s=false, list=false, l=false, v2=true, v=false, verbose=true, $0=C:\Program Files\nodejs\node.exe C:\Users\Mike\AppData\Roaming\npm\node_modules\ionic\bin\ionic
Creating an Ionic 2.x app in C:\Users\Mike\Documents\Projects\GolfLeaguesAndGames\glg2 based on the tabs template.
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
Downloading: https://github.com/driftyco/ionic2-starter-tabs/archive/master.zip
Installing npm packages (may take a minute or two)...
Running exec command: npminstall
Spawn command completed
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Not a lot of info, even with verbose enabled.

Same here, none of these solutions work for me either. Ionic looked fairly promising but I've had so much trouble trying to get anything to work I've now reluctantly given up with it and am looking at alternatives. Shame really.

@KerryRitter
i have same issues with ionic2 and my error are below please help me and i am using windows 10 with git bash cmp
**$ ionic start DemoION2 blank --v2
Creating an Ionic 2.x app in C:\Users\Android\DemoION2 based on the blank template.
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
Downloading: https://github.com/driftyco/ionic2-starter-blank/archive/master.zip
Installing npm packages (may take a minute or two)...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall**
Android@PC-165 MINGW64 ~
$ **ionic info
Your system information:
Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v7.8.0
Xcode version: Not installed**

@brandyscarney
Hello brandyscarney ,
I am new in ionic 2 framework to create ionic blank project. but i am getting below  error everytime please help me and i am using windows 10 operating system.please help me
I have installed following set up file for ionic project :
C:\ionic>npm -v
4.4.4
C:\ionic>node -v
v7.8.0
C:\ionic>ionic -v
2.2.2
C:\ionic>cordova -v
6.5.0
Error:
C:\ionic>ionic start Ionic2FirstApp blank --v2
Creating an Ionic 2.x app in C:\ionic\Ionic2FirstApp based on the blank template.
Downloading: https://github.com/driftyco/ionic2-app-base/archive/master.zip
Downloading: https://github.com/driftyco/ionic2-starter-blank/archive/master.zip
Installing npm packages (may take a minute or two)...
Error with start undefined
Error Initializing app: There was an error with the spawned command: npminstall
There was an error with the spawned command: npminstall
Your system information:
cordova CLI: 6.5.0
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v7.8.0
Xcode version: Not installed

@maibia
Please use following steps it's working perfect.
C:\Users\Android>node -v
v7.8.0
C:\Users\Android>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)
C:\Users\Android>node -v
v7.8.0
C:\Users\Android>npm install -g cordova
C:\Users\Android>npm install -g ionic
C:\ionic>ionic start Project_Name blank --v2 --skip-npm
C:\ionic>npm install -g cnpm --registry=https://registry.npm.taobao.org
C:\ionic>cd Project_Name
C:\ionic\Project_Name >ionic platform add android

if anyone still needs this. here is what worked for me on --v2:

ionic start stripe-payments tabs --type ionic-angular

For me it was only to upgrade to new version of npm
npm install -g npm


Fix request error page interactive presentation problem

Changes proposed in this pull request:

Fix add job error is the error display of prompt message
Syncstatic changed to Syncstatus

Pull Request Test Coverage Report for Build 1874

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.006%) to 64.705%

Files with Coverage Reduction
New Missed Lines
%

sharding-orchestration/sharding-orchestration-core/src/main/java/org/apache/shardingsphere/orchestration/internal/util/IpUtils.java
2
80.0%

Totals

Change from base Build 9692:
0.006%

Covered Lines:
11016

Relevant Lines:
17025

💛  - Coveralls


feat: Make lib work with shadow dom - use composedPath

@Pomax , @cameronbraid
Hi, this is a possible solution for making lib work inside shadowDOM.
I added tests.js which renders react app inside a shadow DOM.
Got an error when build the project. Will look into it later.

Got an error when build the project. Will look into it later.
warnings option added to a wrong place.
Following patch  should fix your build:

diff --git a/rollup.config.js b/rollup.config.js
index 9f59da4..dcc9e01 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -39,9 +39,9 @@ const prodUmdConfig = mergeAll([
         compress: {
           pure_getters: true,
           unsafe: true,
-          unsafe_comps: true,
-          warnings: false,
+          unsafe_comps: true
         },
+        warnings: true
       })
     ),
   },

Details: UglifyJS compress options and minify options

@mbIkola
Thanks for the advice. Will update next week.

@mbIkola
Thanks. Build succeeded. Tests all passed.
By the way, any reason using closed mode shadow DOM?
Like avoid abusing .shadowRoot?
There is really little benefit we can get from { mode: 'closed' }.

Sorry guys, there's news for this PR. Thanks

@fedelocci
thanks.

Come on guys, let's merge this...

Hi guys are you going to merge this soon? @MateuszKrazek

Please merge this soon as we need it as well for react-datepicker

closing due to inactivity - mine, mostly, and unless someone is willing to fund me working on this again, that's unlikely to change.

closing due to inactivity - mine, mostly, and unless someone is willing to fund me working on this again, that's unlikely to change.


Add details about meetups

Some things keep popping up: how long do the meetups take? (Approximately one hour plus one hour discussion.) Also: admission is free of charge. Also: there is no parking around but there are good public transportation options. Also: the language is Slovak but we're happy to welcome hackers from abroad (we can summarize the main points of the talk every couple of minutes). Etc.
Perhaps we could add this to https://pycon.sk/sk/meetup.html

@jangondol sound good, can you get some text together (ideal in Slovak and English), that we can update on  https://pycon.sk/sk/meetup.html

Vstup na meetupy je bezplatný. Približný čas trvania meetupov: dve hodiny (cca hodina prezentácia, hodina alebo viac diskusia). Miesto konania: ProgressBar hackerspace, Michalská 3 (centrum Bratislavy). Neďaleké zastávky MHD: Zochova, Kapucínska, neďaleké platené parkovanie: Uršulínska, Hotel Carlton, Hotel Park Inn.
Admission is free of charge. Approximate duration: two hours (one hour presentation, one hour or more: discussion). Location: ProgressBar hackerspace, Michalská 3 (center of Bratislava). Nearby public transportation stops: Zochova, Kapucínska, nearby paid parking: Uršulínska, Hotel Carlton, Hotel Park Inn.
(EN links same as SK version)


Use existing branch if already exists

Why would the branch already exist?

If you want to update an existing PR


A probably faster way for training the tokenizer (pure Python)

Hi!
I'm not sure if this is the appropriate place for posting this, I'm sorry if it is not.
I think there is a way to make the training of the tokenizer faster.
Where does the initial code get slow
I think it's mainly at https://github.com/karpathy/minbpe/blob/f50ad93aa65072ac23e0a7e0bbc64c9c4e26cc4a/minbpe/basic.py#L33 and at https://github.com/karpathy/minbpe/blob/f50ad93aa65072ac23e0a7e0bbc64c9c4e26cc4a/minbpe/basic.py#L39
I think since we're doing whole passes over all the dictionaries and returning new instances of them is quite costly.
Possible solution
I think it's possible to do some kind of one pass to find the best pair, then update everything in-place. I'll try to explain my code, unfortunately I can't check for the moment how to integrate it as an example or something in your own train method, but I'll explain at best my inputs and outputs and the code. I think my train_dict is the equivalent of vocab  in your code, and my pairs_dict is the equivalent of stats.
Also, the repository's implementation is byte-level BPE while I'm going to talk about standard BPE, but we can go from one to the other easily.
I'm going with the same corpus as the Huggingface summary about tokenizers: https://huggingface.co/docs/transformers/en/tokenizer_summary : corpus = "hug " * 10 + "pug " * 5 + "pun " * 12 + "bun " * 4 + "hugs " * 5.
I start with a train_dict, which will contain the words' frequencies, of the following format:
{0: [10, [('h', 'u'), ('u', 'g'), ('g', 'Ġ')]],
 1: [5, [('p', 'u'), ('u', 'g'), ('g', 'Ġ')]],
 2: [12, [('p', 'u'), ('u', 'n'), ('n', 'Ġ')]],
 3: [4, [('b', 'u'), ('u', 'n'), ('n', 'Ġ')]],
 4: [5, [('h', 'u'), ('u', 'g'), ('g', 's'), ('s', 'Ġ')]]}

The structure is the following: word id: List[word frequency, List[word symbols pairs]]. The idea is, when we find the best pair that leads to the merge rule, the find all the words that contribute to that pair, and update them after the merge accordingly. The frequency is useful because we want to keep track of the pairs' frequencies (which are a sum of the frequencies of the word that contribute to them)
And I also start with the following pairs_dict which is a dictionary that associates pairs to their frequencies and the words' ids that contribute to the pairs. In our case it is:
{('h', 'u'): [15, {0, 4}],
 ('u', 'g'): [20, {0, 1, 4}],
 ('g', 'Ġ'): [15, {0, 1}],
 ('p', 'u'): [17, {1, 2}],
 ('u', 'n'): [16, {2, 3}],
 ('n', 'Ġ'): [16, {2, 3}],
 ('b', 'u'): [4, {3}],
 ('g', 's'): [5, {4}],
 ('s', 'Ġ'): [5, {4}]}

My training loop is simple, find the best pair (the merge rule) and then update both the train_dict and the pairs_dict
def train_loop(train_dict: Dict, pairs_dict: Dict, num_merges: int) -> None:
    for i in range(num_merges):
        best = max(pairs_dict, key=lambda pair: pairs_dict[pair][0])
        vocab["".join(best)] = base_vocab_size + i
        merge_pairs(train_dict, pairs_dict, best)

For the merge_pairs function, I'm not so proud of it but it does the job 😅
def merge_pairs(words_dict, pairs_dict, max_freq_pair):
    max_freq_pair_merged = "".join(max_freq_pair)
    for word_id in words_dict:
        word_freq = words_dict[word_id][0]
        pairs = words_dict[word_id][1]
        new_pairs = []
        i = 0
        while i < len(pairs):
            if pairs[i] == max_freq_pair:
                # Check for preceding pair
                if i > 0 and new_pairs:
                    prev_pair = new_pairs[-1]
                    new_pairs[-1] = (prev_pair[0], max_freq_pair_merged)
                    update_pairs_dict(
                        pairs_dict, prev_pair, -word_freq, word_id
                    )
                    update_pairs_dict(
                        pairs_dict, new_pairs[-1], word_freq, word_id
                    )
                # Check for following pair
                if i < len(pairs) - 1:
                    next_pair = (max_freq_pair_merged, pairs[i + 1][1])
                    new_pairs.append(next_pair)
                    update_pairs_dict(
                        pairs_dict, pairs[i + 1], -word_freq, word_id
                    )
                    update_pairs_dict(
                        pairs_dict, next_pair, word_freq, word_id
                    )
                    i += 1  # Skip the next pair as it's now merged
            else:
                new_pairs.append(pairs[i])
            i += 1
        words_dict[word_id][1] = new_pairs

    # Delete max_freq_pair from pairs_dict
    del pairs_dict[max_freq_pair]

As you can see I do only one pass through the training dictionary and an incomplete pass through the pairs dictionary instead of having two passes, one through the training dictionary and one through the pairs.  And the updates are done in-place.
The updates of the pairs_dict are based on the frequency of the words that participated to the pair.
def update_pairs_dict(pairs_dict, pair, freq_change, word_id):
    if pair in pairs_dict:
        pairs_dict[pair][0] += freq_change
        if freq_change > 0:  # If we are adding frequency, add the word ID
            pairs_dict[pair][1].add(word_id)
        if (
            pairs_dict[pair][0] <= 0
        ):  # If frequency is zero or less, delete the pair
            del pairs_dict[pair]
    else:
        pairs_dict[pair] = (
            [freq_change, {word_id}] if freq_change > 0 else [freq_change, set()]
        )

Context
I know this repository is for educational purposes only and clearly the code in the repo is very concise and clear.
I also know that the focus on making tokenizers faster is on the tokenization part instead of training. Especially since there is Rust code that is way more performant at doing that, and in a distributed fashion as well.
But, I thought maybe someone could benefit from this. I'm trying to implement a bunch of stuff for myself to learn and I have learned a lot by trying to improve my code for better efficiency. I'm not saying my code is perfect, there surely is a way to use some great data structures for this, such linked lists or graphs. I just couldn't do it yet. And I'm aware of the limits of Python compared to Rust (and some other programming languages, but I think Rust is the one most used for tokenizers) for doing distributed compute or for any memory efficient application for the matter. I just thought it'd be great to push the limit on what we can do with tokenizers with pure Python code.

It helps to understand more and more this platform

We can make it better


Issue 5: Link picker doesn't work in cell

Make sure to throw the value through the rte value converter so all links, macros are added correctly. I had to update to 8.6, because some classes were only available there.
Issue: https://github.com/rydigital/Our.Umbraco.Tables/issues/5

validated locally and approved! Thanks @patrickdemooij9