Minor bug & Feature Request

I  gotta say it really is a delightful application
First of all I would like to address a bug
after zap remove package the symlink in ~/.local/bin is not deleted.As a result,when the application is installed again the symlink is not placed,outputing [ FATAL ] ...... symlink dir/X.AppImage ~/.local/bin/X exists and so the application doesn't open
steps to produce:
zap install qpdf install the latest
zap remove qpdf
zap install qpdf install anything except the latest ( it just has to be different version  each time)
I have also noticed that this error doesn't occur when the appimage name is not suffixed by its version,for example neovim gets installed as nvim.appimage no matter what version and this error doesn't occur
EDIT : Installing appimages from local file works :)
zap install --from file://X nameOfApp
Updating apps installed by zap install --github --from x/Y
I get that I can update those by running the same command again,but for that I would have to look up the repo location again.
An easy fix would be to save the location of Y as github.com/x/Y so when I want to install/update it again I can just run
zap install Y
but of course if the appimage contains zsync for update it isn't required,but at this moment most appimages doesnt have that
On a side note,libappimage should be listed as a dependency

I gotta say it really is a delightful application

Thanks ✨

First of all I would like to address a bug
after zap remove package the symlink in ~/.local/bin is not deleted.As a result,when the application is installed again the symlink is not placed,outputing [ FATAL ] ...... symlink dir/X.AppImage ~/.local/bin/X exists and so the application doesn't open
steps to produce:
zap install qpdf install the latest
zap remove qpdf
zap install qpdf install anything except the latest ( it just has to be different version each time)
I have also noticed that this error doesn't occur when the appimage name is not suffixed by its version,for example neovim gets installed as nvim.appimage no matter what version and this error doesn't occur

Agreed, this has had been a bug, possibly fixed in https://github.com/srevinsaju/zap/commit/d0f4bc88016671e0ad88d1b6c2db085d618d557e, which I forgot to push (my bad)

EDIT : Installing appimages from local file works :)
zap install --from file://X nameOfApp

:smile:

Updating apps installed by zap install --github --from x/Y
I get that I can update those by running the same command again,but for that I would have to look up the repo location again.
An easy fix would be to save the location of Y as github.com/x/Y so when I want to install/update it again I can just run
zap install Y
but of course if the appimage contains zsync for update it isn't required,but at this moment most appimages doesnt have that

Ah yes, I agree. That would be a good feature. I will try to get this working as soon as possible.

On a side note,libappimage should be listed as a dependency

libappimage is not a dependency. Most of libappimage has been rewritten in golang. libappimage was a dependency in its v1, i.e python version. zap then got re written in golang, which removed the need for this dependency. Are you sure you required libappimage to use zap?

Agreed, this has had been a bug, possibly fixed in d0f4bc8, which I forgot to push (my bad)

Great

libappimage is not a dependency. Most of libappimage has been rewritten in golang. libappimage was a dependency in its v1, i.e python version. zap then got re written in golang, which removed the need for this dependency. Are you sure you required libappimage to use zap?

I was talking about running appimages,zap will run fine but not the appimages.So it kinda make sense to be a requirement.
On another thought,It would be great if the user had the option not to create the symlink in ~/.local/bin because we might want to run different version of the same application or maybe already have a normal installation of the same app.In my case I just remove all these from ~/.local/bin because I dont wanna flood it by something I will never use or maybe I'm the only one thinking this. whats your thought in this
zap has so much potential,I'm really looking forward to its development. Thanks for this awesome project

Agreed, this has had been a bug, possibly fixed in d0f4bc8, which I forgot to push (my bad)

Great

libappimage is not a dependency. Most of libappimage has been rewritten in golang. libappimage was a dependency in its v1, i.e python version. zap then got re written in golang, which removed the need for this dependency. Are you sure you required libappimage to use zap?

I was talking about running appimages,zap will run fine but not the appimages.So it kinda make sense to be a requirement.

AppImage's don't require libappimage to run. AppImage has the principle of one app = one file, and being standalone. Perhaps, its just a particular appimage which requires libappimag, it should be reported to the app developer to bundle libappimage alone. I am not aware of any apps which require the same. Can you give some examples?

On another thought,It would be great if the user had the option not to create the symlink in ~/.local/bin because we might want to run different version of the same application or maybe already have a normal installation of the same app.In my case I just remove all these from ~/.local/bin because I dont wanna flood it by something I will never use or maybe I'm the only one thinking this. whats your thought in this

Agreed. I can add a configuration option for that. Thanks for the idea.

zap has so much potential,I'm really looking forward to its development. Thanks for this awesome project

You are right,it seems like I was missing something else when I thought it was libappimage
Another reminder,
The symlink problem is more problematic than I thought,upon symlink creation it is not forced,if file exists it doesn't link so an update never actually points to the updated file because the desktop files are using the symlink on Exec,I think its better to use the full path to Exec and take symlinks out of the equation as its causing more problem then convenience
I also faced another error while installing some apps,but i am not sure what could be the reason
[WARN]  2021/04/23 23:58:25 Reading desktop file failed open /tmp/zap843445265/squashfs-root/nvim.desktop: no such file or directory
neovim installed successfully ✨

I remember latest neovim ,qbittorrent_enhanced_edition doing this

I am addressing this in #3


npm node-gyp build error.

I am installing npm install on my CentOS machine and it gives the following error again and again. I have installed all latest dev-tools
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=0.8 <=0.12"} (current: {"node":"4.4.7","npm":"2.15.8"})

><EMAIL_ADDRESS>install /root/NodeJSCID/node_modules/node-stringprep
> node-gyp rebuild

gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
make: Entering directory `/root/NodeJSCID/node_modules/node-stringprep/build'
  CXX(target) Release/obj.target/node_stringprep/node-stringprep.o
In file included from ../node-stringprep.cc:1:0:
../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                         ^
../node_modules/nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                         ^
../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../node_modules/nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../node_modules/nan/nan.h:672:67: note: candidates are:
In file included from ../node_modules/nan/nan.h:25:0,
                 from ../node-stringprep.cc:1:
/root/.node-gyp/4.4.7/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
../node_modules/nan/nan.h:672:67: note: candidates are:
In file included from ../node_modules/nan/nan.h:25:0,
                 from ../node-stringprep.cc:1:
/root/.node-gyp/4.4.7/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/root/.node-gyp/4.4.7/include/node/node_buffer.h:31:40: note:   no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’
/root/.node-gyp/4.4.7/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/root/.node-gyp/4.4.7/include/node/node_buffer.h:43:40: note:   no known conversion for argument 2 from ‘const char*’ to ‘char*’
In file included from ../node-stringprep.cc:1:0:
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../node_modules/nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
     return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                                                             ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
            ^
make: *** [Release/obj.target/node_stringprep/node-stringprep.o] Error 1
make: Leaving directory `/root/NodeJSCID/node_modules/node-stringprep/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v4.4.7/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 2.6.32-358.el6.x86_64
gyp ERR! command "/root/.nvm/versions/node/v4.4.7/bin/node" "/root/.nvm/versions/node/v4.4.7/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /root/NodeJSCID/node_modules/node-stringprep
gyp ERR! node -v v4.4.7
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm ERR! Linux 2.6.32-358.el6.x86_64
npm ERR! argv "/root/.nvm/versions/node/v4.4.7/bin/node" "/root/.nvm/versions/node/v4.4.7/bin/npm" "install"
npm ERR! node v4.4.7
npm ERR! npm  v2.15.8
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the node-stringprep package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-stringprep
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls node-stringprep
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /root/NodeJSCID/npm-debug.log

Compiler/version?

Node Versions
npm ERR! Linux 2.6.32-358.el6.x86_64
npm ERR! argv "/root/.nvm/versions/node/v4.4.7/bin/node" "/root/.nvm/versions/node/v4.4.7/bin/npm" "install"
npm ERR! node v4.4.7
npm ERR! npm  v2.15.8
npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`

GCC Version
gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

OS
CentOS 6.4

I cannot reproduce this with g++ 4.9.3 on Debian :-(

The issue is with specifically centos 6.4 it works well on centos 7 tried
that there but on centos 6 event with latest c++ compiler it doesn't compile
On Jul 2, 2016 3:28 AM, "Astro"<EMAIL_ADDRESS>wrote:

I cannot reproduce this with g++ 4.9.3 on Debian :-(
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/astro/node-stringprep/issues/94#issuecomment-230060837,
or mute the thread
https://github.com/notifications/unsubscribe/ATS02SfUskqYdo7aShgzNoIMqb6ZY9udks5qRZSogaJpZM4JCizA
.

I'm also getting the same error, on Ubuntu 14.04.
In file included from ../node-stringprep.cc:1:0:
../../nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                         ^
../../nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                         ^
../../nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../../nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../../nan/nan.h:665:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../../nan/nan.h:665:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../../nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../../nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../../nan/nan.h:672:67: note: candidates are:
In file included from ../../nan/nan.h:25:0,
                 from ../node-stringprep.cc:1:
/home/hosar/.node-gyp/5.6.0/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:100:13)
gyp ERR! stack     at ChildProcess.emit (events.js:185:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.13.0-96-generic
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/hosar/Projects/myIdentity.kafka/node_modules/xmpp-jid/node_modules/node-stringprep
gyp ERR! node -v v5.6.0
gyp ERR! node-gyp -v v3.2.1
gyp ERR! not ok
npm WARN<EMAIL_ADDRESS><EMAIL_ADDRESS>install: `node-gyp rebuild`
npm WARN<EMAIL_ADDRESS>Exit status 1

I also have this issue with Travis CI builds, but it works on OS X locally.
Build log is here: https://travis-ci.org/maurelian/dot-eth-js/jobs/184547777
Here's the travis config:
  "language": "node_js",
  "node_js": "6",
  "group": "stable",
  "dist": "precise",
  "os": "linux"
}


ASYNC: Fixes for nested job creation

In such a scenario, calling ASYNC_start_job() in a job again to create
a new job will cause the program to crash. This scenario is common in
coroutines, such as a web server, a coroutine listener, and a new client,
a new coroutine service, after accept () is created.
The current design of ASYNC does not support this scenario. Each coroutine
eventually falls back to the dispatcher. There are multiple coroutines,
and there is only one context for saving the coroutine exit, which is the
dispatcher. At this time, the context will be Being covered, this also
determines that only one coroutine can be running at the same time. And it
is dispatched by the dispatcher, which limits the application scenario
of ASYNC to a certain extent. In the traditional sense of coroutines,
dispatching is done by the users themselves, and there is no need for a
so-called dispatching center, dispatcher.
This patch solves this problem. For each coroutine, a context called back
is used for exit or pause (), so the dispatcher is not needed. This patch
does not change the ASYNC API.
There is also a simple example in the test code, which fully illustrates the
problems I described.
Signed-off-by: Tianjia Zhang<EMAIL_ADDRESS>
Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

@InfoHunter @mattcaswell Could you give me some feedback on this patch?

I still don't quite understand why the nested jobs are needed...

I still don't quite understand why the nested jobs are needed...

As I described above, it will be used in the ssl server scenario:
Open a job for listen, after accept a client and then open a job to communicate with the client

Why don't you just start a new job after accept without opening a job for listen?

Why don't you just start a new job after accept without opening a job for listen?

accept is also a blocking operation, to achieve asynchronous, you need yield coroutine, which is ASYNC_pause_job(), so it is necessary to let the combination of listen + accept run in a async job.

This PR is in a state where it requires action by @openssl/committers but the last update was 30 days ago

@mattcaswell @iamamoose ping

This PR is in a state where it requires action by @openssl/committers but the last update was 30 days ago

IMO, nested async jobs are not a good idea. The concept was deliberately excluded from the original design. It adds too much complexity (high risk of something going wrong) - with little benefit.
I don't think this PR should be accepted.

IMO, nested async jobs are not a good idea. The concept was deliberately excluded from the original design. It adds too much complexity (high risk of something going wrong) - with little benefit.
I don't think this PR should be accepted.

I agree. Would you put OTC hold on it and call a vote?

Would you put OTC hold on it and call a vote?

I put the hold on it. Do we actually need to call a vote to reject a PR? I'd say a vote is only required if there is disagreement within the committers.

I don't think a vote is required unless a committer (or alternatively a committee member) wants this to go in.  In that case, they could call the vote.

I do not think a vote to reject a PR is always needed. For example if some PR is some total nonsense or the contributor does not respond to requests for changes it is clearly unneeded.
But in this concrete case where the PR is seemingly valid but we do not want to support the feature for technical reasons it would make sense to me.
The vote can be more general than just about closing this PR.  For example it could be a vote that we are not going to support nested ASYNC jobs.

But in this concrete case where the PR is seemingly valid but we do not want to support the feature for technical reasons it would make sense to me.

Seems like we need to discuss policy. Lets see if we have time at the next OTC meeting.

I don't think a vote is required unless a committer (or alternatively a committee member) wants this to go in

Personally, I think this PR needs more actions other than just rejecting it:

Do we really need this feature, if not:
Do we need to forbid this nested usage explicitly other than let the application crashes.

BTW, the author of this PR and me are in the affiliated companies (Alibaba & Ant Group), so perhaps my comment should only be consider as a note instead of a series opinion ;-)

Do we really need this feature, if not:

I've not yet heard a compelling argument for it, so I don't think so.

Do we need to forbid this nested usage explicitly other than let the application crashes.

No, it shouldn't crash. I think a PR that failed gracefully in that scenario would be acceptable.

This PR is in a state where it requires action by @openssl/otc but the last update was 30 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 61 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 61 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 92 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 123 days ago

This PR is in a state where it requires action by @openssl/otc but the last update was 154 days ago

OTC: Moving this to the Post 3.0 milestone

@mattcaswell @t8m @paulidale This PR has already rebased on master and combine the PR https://github.com/openssl/openssl/pull/16703

Ping @openssl/committers @openssl/otc , this is stale for a very long time, any ideas on this guys?

IMO there was a relevant reply by Matt here: https://github.com/openssl/openssl/pull/11421#issuecomment-733574384

As I've previously noted in https://github.com/openssl/openssl/pull/11421#issuecomment-725984292 I don't think this PR should be accepted.


Check u != 0 after u is created, not before

Steve Thomas has pointed out that we are not checking the validity of u after we create it.
Oops.

Fixed long ago.


Update L.PM.Draw.Marker.js

toggle the marker button of the Toolbar in case drawing mode got disabled without the button

hey @Burakhan thanks for you PR! I'll review asap and comment/merge

Thanks @Burakhan, merged. Will be in the next patch release! 🎉


build(deps): update bech32 and pointycastle

Update bech32 from 0.2.0 to 0.2.1 (to support convert 3.0.1)
Update pointycastle from 3.1.1 to 3.1.3

Please publish a new patch version once this PR has been merged. Thanks in advance :smiley:

@p3root Request for review :smile:


importer: Predictive import

Predictive import: reduce roundtrips by pipelining modules observed to probably be requested in future.

Try teaching import scanner to load .pyc files if they exist, see if it improves performance much


Proposed naming scheme for data-source API methods

I've been tidying things up a bit (I think) under src/data-sources/intermine/api using a pretty simple file-naming scheme that I thought I'd jot down here.
A singular get-thing.ts file will contain the getThing(identifier) method that is likely to be used by external clients. The identifier is something like a primaryIdentifier or name or other persistent string identifier that identifies the particular Thing object.
A plural get-things.ts file will contain methods that retrieve collections of Thing objects belonging to other objects. That is, get-things.ts will always return Thing objects, whatever the collection happens to be called.
An example for ProteinDomain. First, get-protein-domain.ts, which returns a GraphQLProteinDomain given its string identifier.
import {
  ApiResponse,
  intermineConstraint,
  interminePathQuery,
} from '../intermine.server.js';
import {
  GraphQLProteinDomain,
  IntermineProteinDomainResponse,
  intermineProteinDomainAttributes,
  intermineProteinDomainSort,
  response2proteinDomains,
} from '../models/index.js';

// get a ProteinDomain by identifier
export async function getProteinDomain(identifier: string):
Promise<ApiResponse<GraphQLProteinDomain>> {
    const constraints = [intermineConstraint('ProteinDomain.primaryIdentifier', '=', identifier)];
    const query = interminePathQuery(
        intermineProteinDomainAttributes,
        intermineProteinDomainSort,
        constraints,
    );
    return this.pathQuery(query)
        .then((response: IntermineProteinDomainResponse) => response2proteinDomains(response))
        .then((proteinDomains: Array<GraphQLProteinDomain>) => {
            if (!proteinDomains.length) return null;
            return proteinDomains[0];
        })
        .then((proteinDomain: GraphQLProteinDomain) => ({data: proteinDomain}));
}

Now, various things have ProteinDomain collections. Those collections are returned by methods in get-protein-domains.ts that take the numeric id of the object that holds the collection, since these are only used internally. I do not see a situation where someone would want to get a Gene's proteinDomains collection in a way other than simply querying the Gene and resolving its proteinDomains collection with getProteinDomainsForGene below:
import {
    ApiResponse,
    IntermineSummaryResponse,
    intermineConstraint,
    interminePathQuery,
    response2graphqlPageInfo,
} from '../intermine.server.js';
import {
    GraphQLProteinDomain,
    IntermineProteinDomainResponse,
    intermineProteinDomainAttributes,
    intermineProteinDomainSort,
    response2proteinDomains,
} from '../models/index.js';
import { PaginationOptions } from './pagination.js';

// get ProteinDomains for a Gene given its id
export async function getProteinDomainsForGene(id: number, { page, pageSize }: PaginationOptions): Promise<ApiResponse<GraphQLProteinDomain>> {
    const constraints = [intermineConstraint('ProteinDomain.genes.id'), '=', id];
    const query = interminePathQuery(
        intermineProteinDomainAttributes,
        intermineProteinDomainSort,
        constraints,
    );
    // get the data
    const dataPromise = this.pathQuery(query, {page, pageSize})
        .then((response: IntermineProteinDomainResponse) => response2proteinDomains(response));
    // get a summary of the data and convert it to page info
    const pageInfoPromise = this.pathQuery(query, {summaryPath: 'ProteinDomain.id'})
        .then((response: IntermineSummaryResponse) => response2graphqlPageInfo(response, page, pageSize));
    // return the expected GraphQL type
    return Promise.all([dataPromise, pageInfoPromise])
        .then(([data, pageInfo]) => ({data, metadata: {pageInfo}}));
}

// get ProteinDomains for a GeneFamily given its id
export async function getProteinDomainsForGeneFamily(id: number, { page, pageSize }: PaginationOptions): Promise<ApiResponse<GraphQLProteinDomain>> {
    const constraints = [intermineConstraint('ProteinDomain.geneFamilies.id'), '=', id];
    const query = interminePathQuery(
        intermineProteinDomainAttributes,
        intermineProteinDomainSort,
        constraints,
    );
    // get the data
    const dataPromise = this.pathQuery(query, {page, pageSize})
        .then((response: IntermineProteinDomainResponse) => response2proteinDomains(response));
    // get a summary of the data and convert it to page info
    const pageInfoPromise = this.pathQuery(query, {summaryPath: 'ProteinDomain.id'})
        .then((response: IntermineSummaryResponse) => response2graphqlPageInfo(response, page, pageSize));
    // return the expected GraphQL type
    return Promise.all([dataPromise, pageInfoPromise])
        .then(([data, pageInfo]) => ({data, metadata: {pageInfo}}));
}

// get child features (ProteinDomain) for a ProteinDomain given its id
export async function getChildFeaturesForProteinDomain(id: number, { page, pageSize }: PaginationOptions): Promise<ApiResponse<GraphQLProteinDomain>> {
    const constraints = [intermineConstraint('ProteinDomain.id', '=', id)];
    const query = interminePathQuery(
        intermineProteinDomainChildFeatureAttributes,
        intermineProteinDomainChildFeatureSort,
        constraints,
    );
    // get the data
    const dataPromise = this.pathQuery(query, {page, pageSize})
        .then((response: IntermineProteinDomainResponse) => response2proteinDomains(response));
    // get a summary of the data and convert it to page info
    const pageInfoPromise = this.pathQuery(query, {summaryPath: 'ProteinDomain.childFeatures.id'})
        .then((response: IntermineSummaryResponse) => response2graphqlPageInfo(response, page, pageSize));
    // return the expected GraphQL type
    return Promise.all([dataPromise, pageInfoPromise])
        .then(([data, pageInfo]) => ({data, metadata: {pageInfo}}));
}

// get parentFeatures (ProteinDomain) for a ProteinDomain given its id
export async function getParentFeaturesForProteinDomain(id: number, { page, pageSize }: PaginationOptions): Promise<ApiResponse<GraphQLProteinDomain>> {
    const constraints = [intermineConstraint('ProteinDomain.id', '=', id)];
];
const query = interminePathQuery(
    intermineProteinDomainParentFeatureAttributes,
    intermineProteinDomainParentFeatureSort,
    constraints,
);
// get the data
const dataPromise = this.pathQuery(query, {page, pageSize})
    .then((response: IntermineProteinDomainResponse) => response2proteinDomains(response));
// get a summary of the data and convert it to page info
const pageInfoPromise = this.pathQuery(query, {summaryPath: 'ProteinDomain.parentFeatures.id'})
    .then((response: IntermineSummaryResponse) => response2graphqlPageInfo(response, page, pageSize));
// return the expected GraphQL type
return Promise.all([dataPromise, pageInfoPromise])
    .then(([data, pageInfo]) => ({data, metadata: {pageInfo}}));
}

I'm proposing a method naming here that is simply GetThingsForContainingObject. If the file name is get-things.ts the methods will all return Thing objects with that naming convention.
This removes files that can be organized together in a single file, and also rearranges files a tiny bit to make all files return a particular GraphQL type.
We could, in principle, combine get-thing.ts and get-things.ts but I like the idea of keeping them separate, since get-thing.ts takes a persistent string identifier specific to Thing, while get-things.ts methods use the InterMine object id, thus making the "internal" resolvers very consistent and simple.

In cases where the collection has a different name from the object type (e.g. crossReferences are OntologyTerm) then you still name the method with getCollectionForArgumentType, for example getCrossReferencesForOntologyTerm which is located in get-ontology-terms.ts since that is where the getters that return OntologyTerm lists are located.

@alancleary I hope you're OK with this because I've been rolling with it. Although I suppose a mass renaming wouldn't be too hard with a script. I think it makes things relatively straightforward and predictable.

Yeah, sounds good. Is this going to be a separate PR?

It's in has-stuff-interfaces since that's where I'm doing all this reorganizing/editing for the new approach. Not really possible to separate it out. It's a big-ass branch.

 It's just how it is, it's not a minor update, it's an entire reworking.

I'll close this since you've approved of the naming scheme.


[uss_qualifier] add utility properties to QueryError

A QueryError often wrap a single query, of which it is common to check the status code.
Additionally, when a check fails, we're interested in the wrapped queries' timestamps.
This PR adds a last_status_code and query_timestamps method to QueryError to make these use cases easier.

That makes sense, though I'm happy to say that the first query would be the 'main' one, and to reflect that in the various utility methods.
If this is properly documented (such as through a comment or well-named utility functions) I'd be fine with it.
I'll see if I can come up with something simple.


React matrix search width bug

removed excessive memoization
this fixes #133

@cheekw hmm, do you know why memo might have caused this?

@cheekw hmm, do you know why memo might have caused this?

memo() basically skips re-rendering unless props change.
But it doesn't do a deep equality check. Since we were wrapping SearchBar with memo() and were passing values through an object selectProps, it assumes that props haven't changed, causing it to not re-render.


Gives LR Drawer role "dialog" and a name.

What are the relevant tickets?
Closes https://github.com/mitodl/hq/issues/5418
Description (What does it do?)
This PR:

Gives the RoutedDrawer and hence learning resource drawer role "dialog" with an accessible name.
Improves the loading skeleton for the drawer title a little bit.

How can this be tested?
I suggest comparing screenreader behavior on RC (or prod) behavior with this branch. I used VoiceOver.
With a screenreader activated:

Open the Learning resource drawer on RC or prod.

When the drawer first opens, it will read something about the carousel slides.

Now on this branch:

screenreader should read something like "Dialog, [ResourceType] ResourceTitle]".

If you have https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd or equivalent installed, you could check that the drawer no longer triggers "All page content must be included in a landmark role".

These changes make sense, and if you've tested them on Voiceover and it works well then I think we should merge it. I tested this with NVDA, the free screen reader for Windows, When you click a card to bring up the drawer, it announces "dialog" like you talk about here, but then after that it still announces the close button first, then the content of the recommended resources carousel. It goes on and on announcing all of the UI components in the carousel, repeating itself about "groupings" over and over. I'm not sure how we would fix... maybe some aria attributes on the carousel itself?

Discussed this a bit with Carey, and thanks @gumaerc for helping test this on Windows screenreaders. Conclusions:

On Mac with VoiceOver, the drawer was also behaving a little different when "first opened" vs "re-opened".
This, and the title quirks carey noted, seem to be because the drawer doesn't initially have all of its content. (Since the learning_resources/:id api call is still resolving).

I wish I understood better the right way to deal with this. Especially the fact that the drawer title doesn't necessary exist until the API call resolves. I looked at a few possible solutions, including:

hiding the drawer via aria-hidden={isLoading} until the drawer content finishes loading
fallback titles while drawer is loading
using role="region" instead

None of these worked super well. Since the fundamental problem is that the drawer data isn't available until the API call finishes resolving...I decided to just prepopulate the query cache. In all cases, we have the resource data somewhere, so we generally don't need to load it again. See other comment.


Run cruft update

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.31%. Comparing base (b1c06bc) to head (5eed6b7).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #334   +/-   ##
=======================================
  Coverage   94.31%   94.31%
=======================================
  Files           6        6
  Lines         299      299
=======================================
  Hits          282      282
  Misses         17       17

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


added contributing.md file

I have added a Contributing.md file showing the requisite places to go for help and issue tracking.This will help the contributors to work on the project.

Hello,
Thanks for this!
However,

We don't need a table of contents for this short document, so please remove all these HTML anchor hacks.
You might want to take a look at Werkzeug's contributing file

Thanks for the comment.I will look into the matter and send the PR again.

Do I need to Create a new Pull Request for this?

No, you've successfully updated it -- please comment when you did so, because I don't recieve any notifications about it.

Hello @souravsingh, your file had several things that I included into the contributing file (e.g. the link to the Pocoo IRC channel), but I decided that Werkzeug's CONTRIBUTING.rst is more elaborate, so I've taken it from there.

Thanks, This is my first pull request sent to an open-source project. So if I did any mistakes, I apologize for it.


Async flag does not work

html2canvas(document.body, {async: false, logging: true}).then(function(canvas){...
The async flag, whether set to true or false, does not seem to change the behavior. Any way to actually make it run in synchronous mode?

Fixed the documentation regarding the async option, which doesn't exist anymore. Due to the async nature of what html2canvas, it is not feasible to do it async.


Closes #842: Update plugin and widget to use dynamic page loading

I assume that this was tested and everything still works properly?

Yes, I tested all the plugins and the widget. The code changes are mostly making some calls asynchronous. These calls are actions in response to events like selecting a node or interacting with some UI.


release-note/1.7

release-note/1.7de更新

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.28 out of 29 committers have signed the CLA.:white_check_mark: cryoco:white_check_mark: JepsonWong:white_check_mark: MrChengmo:white_check_mark: FrostML:white_check_mark: hutuxian:white_check_mark: wanghaoshuang:white_check_mark: lfchener:white_check_mark: zhouwei25:white_check_mark: lanxianghit:white_check_mark: shippingwang:white_check_mark: gongweibao:white_check_mark: wangchaochaohu:white_check_mark: wangjiawei04:white_check_mark: guoshengCS:white_check_mark: iclementine:white_check_mark: tianshuo78520a:white_check_mark: Xreki:white_check_mark: sneaxiy:white_check_mark: Shixiaowei02:white_check_mark: seiriosPlus:white_check_mark: songyouwei:white_check_mark: wawltor:white_check_mark: grasswolfs:white_check_mark: yaoxuefeng6:white_check_mark: DannyIsFunny:white_check_mark: FlyingQianMM:white_check_mark: adaxiadaxi:white_check_mark: zhangting2020:x: qicengYou have signed the CLA already but the status is still pending? Let us recheck it.


feat: endpoints rename instances doc

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


How can I delete the mapping between application name and agent id?

Description

Hi all,
I changed the agent id of the duplicate agent, but I can see the agent already exits, how can I fix this? Maybe I can use pinpoint api to delete this mapping, but I didn't find documents about this.
Please help me, thank you.
Environment

Pinpoint version:1.6.2
OS, WAS, affected library, etc:centos7

Additional Info

Hi @WangHouLing
Please take a look at https://github.com/naver/pinpoint/wiki/FAQ#how-do-i-delete-application-name-andor-agent-id-from-hbase
For your case, you can use the delete agent API (/admin/removeAgentId.pinpoint).

@Xylus Thank you. I use this method delete agent successfully.
One more question, if I use hbase-drop.hbase delete hbase tables and then run hbase-create.hbase, whether I need to restart my application which is monitored by pinpoint?


x/pkgsite:

What is the URL of the page with the issue?
<EMAIL_ADDRESS>What is your user agent?

Screenshot

What did you do?

What did you expect to see?
added in go1.15
What did you see instead?
added in go1.5

It seems like log.Output is present in go1.5 - https://go.googlesource.com/go/+/go1.5/src/log/log.go#344.
What made you expect to see go1.15?


Bad Request response for api/cla/getAll

Based on #166, I created a request to https://cla-assistant.io/api/cla/getAll and set the x-token header to be an access token that has access to my org. I've confirmed that the CLA Assistant app has proper permissions, as well as organization access. When I pass the following as the request body:
{
	"orgId":"682240",
	"gist":{
		"gist_url":"https://gist.github.com/a072029a2c59d6d25e774921fa1d88d1"

	}

}

I receive the following response:
{
    "message": {
        "code": "400",
        "status": "Bad Request",
        "message": "Empty value for parameter 'id': undefined"
    }
}

Can someone help me understand why the request is bad and how to fix it?

indeed, it doesn't work currently. This API should still work for repos but it's broken for orgs. Sorry for that. I'll fix it in the next release. It could take a one or two weeks, though. I hope you don't depend on it.

In the changelog for 1.7.0 I see this issue reference. I tried my call again, but now I get the following response:
{
    "message": "You have no push permission for this org or repo"
}

Which org or repo is this message referring to? For the org in question, I'm an owner and have admin access to all repos.

@mcred yes, you are right. It seems that you have linked your org with a 'shared' CLA. The signatures for this CLA (can) refer to multiple orgs and repos. So this API doesn't work for shared CLAs yet. Sorry for that! Unfortunately I can't make any forecast how soon we'll make it possible to get the signatures via the API for a shared CLA.

Do you have any suggestions for a work around? It works through the UI. See screenshots below. Is there a way to make multiple API calls or act like the UI?

@mcred sorry for late response. Unfortunately I don't have a quick solution in mind. I see the need of improvement for the API, but I can not estimate how soon we'll make it available. The fastest way probably would be a corresponding contribution from your side 😃 Otherwise I'll keep in mind your request and will implement a solution after the features of higher priority are done.

Is anyone working on this?

Hi @tjrgg, we are not working on this currently as we are focusing on more important topics. Feel free to raise a Pull Request If you have time and capacity to do so 😄


Progress Timeline Seems wrong

Describe the bug
Progress timeline shows < 100% even though user fills all criteria
See screenshot
To Reproduce
Debug - manually set the values in the state to see the issue (in code)
ie, just set every value == required_value
Current behavior
Shows less than 100% (not sure exactly how it figures out the actual value)
Expected behavior
Shows 100% since all criteria are filled
Screenshots

fixed in #1011


Not all items are shown in Data Viewer after switching to Simple mode

System information:

Operating system (distribution) and version win 10 x64
DBeaver version 7.0.2

Describe the problem you're observing:
When I switch to Simple mode - only Column are shown in Property Viewer

This was made on purpose. Simple view removes everything but schemas, tables and columns.


Release hotfix 1.20.1

What does this PR do?
In version 1.20.0 we made internal the start/stop recording functions with the intention to expose them later. Those functions were currently used by the Datadog Mobile App so we need to change them back as they are ready to be used anyway.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #1489 (02838b2) into session-replay-snapshots-release-branch (612296c) will increase coverage by 0.01%.
The diff coverage is n/a.

@@                             Coverage Diff                             @@
##           session-replay-snapshots-release-branch    #1489      +/-   ##
===========================================================================
+ Coverage                                    82.77%   82.78%   +0.01%
===========================================================================
  Files                                          409      409
  Lines                                        14300    14300
  Branches                                      2319     2319
===========================================================================
+ Hits                                         11836    11837       +1
+ Misses                                        1755     1753       -2
- Partials                                       709      710       +1

Impacted Files
Coverage Δ

...adog/android/sessionreplay/SessionReplayFeature.kt
97.50% <ø> (ø)

... and 14 files with indirect coverage changes


BackgroundGeolocation.ready method not found

Your Environment

Plugin version<EMAIL_ADDRESS><EMAIL_ADDRESS>Platform: iOS
Device OS version: iOS 15.4
Device manufacturer / model:
XCode version:
Capacitor info (npx cap doctor)
@capacitor/core: 3.4.3
@capacitor/android: 3.4.3
@capacitor/ios: 3.4.3
ionic version: 6.18.1
Plugin config provided to #ready:

import {
  AfterContentInit,
  Component,
  NgZone,
  OnDestroy
} from '@angular/core';

import BackgroundGeolocation, {
  Location,
  Subscription
} from '@transistorsoft/capacitor-background-geolocation';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage implements OnDestroy, AfterContentInit {
  ready = false;
  enabled = false;
  events = [];
  subscriptions: Subscription[] = [];

  constructor(private zone: NgZone) {}

  ngAfterContentInit() {
    /// Step 1:  Subscribe to BackgroundGeolocation events.
    this.subscriptions.push(BackgroundGeolocation.onLocation((location) => {
      this.addEvent('onLocation', location);
    }));

    this.subscriptions.push(BackgroundGeolocation.onMotionChange((event) => {
      this.addEvent('onMotionChange', event);
    }));

    this.subscriptions.push(BackgroundGeolocation.onActivityChange((event) => {
      this.addEvent('onActivityChange', event);
    }));

    this.subscriptions.push(BackgroundGeolocation.onProviderChange((event) => {
      this.addEvent('onProviderChange', event);
    }));

    /// Step 2:  Ready the plugin.
    BackgroundGeolocation.ready({
      // Geolocation Config
      desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_HIGH,
      distanceFilter: 10,
      // Activity Recognition
      stopTimeout: 5,
      // Application config
      debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
      logLevel: BackgroundGeolocation.LOG_LEVEL_VERBOSE,
      stopOnTerminate: false,   // <-- Allow the background-service to continue tracking when user closes the app.
      startOnBoot: true,        // <-- Auto start tracking when device is powered-up.
    }).then((state) => {
      // BackgroundGeolocation is now ready to use.
      this.ready = true;
      this.enabled = state.enabled;
      this.addEvent('State', state);

      console.log('gensngnsegskeg');
    });
  }

  /// When view is destroyed, be sure to .remove() all BackgroundGeolocation
  /// event-subscriptions.
  ngOnDestroy() {
    this.subscriptions.forEach((subscription: Subscription) => {
      subscription.remove();
    });
  }

  /// Add an event to the view.
  addEvent(name: string, event: any) {
    this.zone.run(() => {
      this.events.push({
        name,
        json: JSON.stringify(event, null, 2)
      });
    });
  }

  /// Toggle the plugin on/off.
  onToggleEnabled() {

    if (!this.ready) { return; }

    console.log('toggle');

    this.events = [];
    if (this.enabled) {
      BackgroundGeolocation.start().then((state) => {
        this.addEvent('State', state);
      });
    } else {
      BackgroundGeolocation.stop().then((state) => {
        this.addEvent('State', state);
      });
    }
  }

}

Expected Behavior
BackgroundGeolocation.ready call should work when calling through ngAfterContentInit hook
Actual Behavior
Sample Angular code fails with error message:
⚡  Error calling method ready on plugin BackgroundGeolocation: No method found.
⚡  Ensure plugin method exists and uses @objc in its declaration, and has been defined
Steps to Reproduce

Copy angular example code into fresh Ionic+Capacitor+Angular project
Run project on device through Xcode

Context
Run the Angular example provided in the readme
Debug logs

Logs
⚡  Loading app at capacitor://localhost...
⚡  [log] - onscript loading complete
⚡  WebView loaded
⚡  [log] - Angular is running in development mode. Call enableProdMode() to enable production mode.
⚡  [log] - Ionic Native: deviceready event fired after 38 ms
⚡  To Native ->  BackgroundGeolocation addListener 61072197
⚡  To Native ->  BackgroundGeolocation addListener 61072198
⚡  To Native ->  BackgroundGeolocation addListener 61072199
⚡  To Native ->  BackgroundGeolocation addListener 61072200
⚡  To Native ->  BackgroundGeolocation ready 61072201
⚡  Error calling method ready on plugin BackgroundGeolocation: No method found.
⚡  Ensure plugin method exists and uses @objc in its declaration, and has been defined
⚡  To Native ->  App addListener 61072202

Did you run npx cap sync?
did you follow the setup instructions in the readme?

Yep I did run npx cap sync and also just deleted and re-added iOS as a platform using the instructions here: https://github.com/transistorsoft/capacitor-background-geolocation/blob/master/help/INSTALL-IOS.md
Issue remains

I just generated a fresh new capacitor app (--type angular) and it works fine.  I open in XCode and run, the plugin requests permission and records a location.
 $ ionic start cap4 blank --type=angular --capacitor

$ npx cap doctor
💊   Capacitor Doctor  💊

Latest Dependencies:

  @capacitor/cli: 3.4.3
  @capacitor/core: 3.4.3
  @capacitor/android: 3.4.3
  @capacitor/ios: 3.4.3

Installed Dependencies:

  @capacitor/android: not installed
  @capacitor/cli: 3.4.3
  @capacitor/core: 3.4.3
  @capacitor/ios: 3.4.3

[success] iOS looking great! 👌

2022-03-16 09:39:39.563900-0400 App[16895:3631785] [TSBackgroundFetch load]: (
)
2022-03-16 09:39:39.564440-0400 App[16895:3631785] [TSBGAppRefreshSubscriber load]: {
}
2022-03-16 09:39:39.613797-0400 App[16895:3631785] DiskCookieStorage changing policy from 2 to 0, cookie file: file:///Users/chris/Library/Developer/CoreSimulator/Devices/27FF5604-688A-4287-95DE-CCC0BD796EF7/data/Containers/Data/Application/FEB4A8BB-3DC4-42F4-8492-F1490308D384/Library/Cookies/io.ionic.starter.binarycookies
2022-03-16 09:39:39.847197-0400 App[16895:3631785] KeyboardPlugin: resize mode - native
⚡  Loading app at capacitor://localhost...
⚡  WebView loaded
⚡  [log] - Angular is running in development mode. Call enableProdMode() to enable production mode.
⚡  To Native ->  BackgroundGeolocation addListener 44982085
⚡  To Native ->  BackgroundGeolocation ready 44982086
2022-03-16 09:39:40.443025-0400 App[16895:3632129] ℹ-[TSConfig persist]
2022-03-16 09:39:40.444834-0400 App[16895:3632129] 🔵-[TSLocationManager ready]
⚡  TO JS {"schedulerEnabled":false,"stopTimeout":5,"batchSync":false,"debug":true,"useSignificantChangesOnly":false,"minimumActivityRecognitionConfidence":70,"didRequestUpgradeLocationAuthorization":false,"geofenceProximityRadius":2000,"didDeviceReboot":false,"isMo
⚡  To Native ->  BackgroundGeolocation start 44982087
⚡  [log] - *** [ready] {"schedulerEnabled":false,"stopTimeout":5,"batchSync":false,"debug":true,"useSignificantChangesOnly":false,"minimumActivityRecognitionConfidence":70,"didRequestUpgradeLocationAuthorization":false,"geofenceProximityRadius":2000,"didDeviceReboot":false,"isMoving":false,"persistMode":2,"disableAutoSyncOnCellular":false,"disableLocationAuthorizationAlert":false,"startOnBoot":false,"locationsOrderDirection":"ASC","locationTimeout":60,"stationaryRadius":25,"maxRecordsToPersist":-1,"headers":{},"enableTimestampMeta":false,"showsBackgroundLocationIndicator":false,"autoSyncThreshold":0,"logMaxDays":3,"params":{},"iOSHasWarnedLocationServicesOff":false,"authorization":{},"desiredOdometerAccuracy":100,"locationAuthorizationRequest":"Always","httpRootProperty":"location","extras":{},"maxBatchSize":-1,"pausesLocationUpdatesAutomatically":true,"maxDaysToPersist":1,"locationTemplate":"","geofenceTemplate":"","stopOnStationary":false,"disableElasticity":false,"activityType":1,"method":"POST","heartbeatInterval":60,"disableMotionActivityUpdates":false,"stopDetectionDelay":0,"preventSuspend":false,"desiredAccuracy":-1,"isFirstBoot":false,"schedule":[],"logLevel":5,"odometer":0,"distanceFilter":10,"locationAuthorizationAlert":{"instructions":"To use background location, you must enable '{locationAuthorizationRequest}' in the Location Services settings","cancelButton":"Cancel","settingsButton":"Settings","titleWhenOff":"Location services are off","titleWhenNotEnabled":"Background location is not enabled"},"activityRecognitionInterval":10000,"autoSync":true,"elasticityMultiplier":1,"geofenceInitialTriggerEntry":true,"didLaunchInBackground":false,"stopOnTerminate":true,"lastLocationAuthorizationStatus":0,"trackingMode":1,"disableStopDetection":false,"enabled":false,"url":"","stopAfterElapsedMinutes":-1,"httpTimeout":60000}
2022-03-16 09:39:40.468512-0400 App[16895:3632129]
╔═══════════════════════════════════════════════════════════
║ -[TSLocationManager start]
╚═══════════════════════════════════════════════════════════
2022-03-16 09:39:40.468693-0400 App[16895:3632129] ℹ-[TSLocationManager doStart:] trackingMode: 1
2022-03-16 09:39:40.468862-0400 App[16895:3632129] ℹ-[TSConfig persist]
2022-03-16 09:39:40.469820-0400 App[16895:3632129] 🎾-[TSGeofenceManager start]
2022-03-16 09:39:40.473809-0400 App[16895:3632129] 🔵-[TSLocationManager setPace:] 0
2022-03-16 09:39:40.475236-0400 App[16895:3632129] 🎾-[TSLocationManager startUpdatingLocation] Location-services: ON
⚡  TO JS {"activityType":1,"geofenceProximityRadius":2000,"persistMode":2,"didLaunchInBackground":false,"maxDaysToPersist":1,"desiredAccuracy":-1,"authorization":{},"maxRecordsToPersist":-1,"distanceFilter":10,"disableAutoSyncOnCellular":false,"httpRootProperty":"l
2022-03-16 09:39:40.481878-0400 App[16895:3632132]
╔═══════════════════════════════════════════════════════════
║ -[TSHttpService flush:]
╚═══════════════════════════════════════════════════════════
2022-03-16 09:39:40.482064-0400 App[16895:3632129]
╔═══════════════════════════════════════════════════════════
║ -[TSHttpService finish:error:] Success: 0
╚═══════════════════════════════════════════════════════════
2022-03-16 09:39:40.483437-0400 App[16895:3632129] ℹ+[LocationAuthorization run:onCancel:] status: 0
2022-03-16 09:39:40.483798-0400 App[16895:3632128] 🔵+[LocationAuthorization run:onCancel:] Request: requestAlwaysAuthorization
2022-03-16 09:39:40.486931-0400 App[16895:3632129] 🎾-[TSLocationManager startMonitoringBackgroundFetch] BackgroundFetch: ON
⚡  To Native ->  App addListener 44982088
2022-03-16 09:39:40.492026-0400 App[16895:3631785] [TSBackgroundFetch scheduleBGAppRefresh] com.transistorsoft.fetch
2022-03-16 09:39:40.493441-0400 App[16895:3631785] [TSBackgroundFetch] BGTaskScheduler failed to register fetch-task and will fall-back to old API.  This is likely due to running in the iOS Simulator (Error Domain=BGTaskSchedulerErrorDomain Code=1 "(null)")
2022-03-16 09:39:40.493702-0400 App[16895:3632129] ℹ-[TSLocationManager startMonitoringBackgroundFetch]_block_invoke Configured BackgroundFetch
⚡  TO JS {"error":1}
2022-03-16 09:39:42.575401-0400 App[16895:3632129] ⚠-[TSLocationManager locationManager:didFailWithError:] Error Domain=kCLErrorDomain Code=1 "(null)"
⚡  [log] - [onLocation] {"error":1}
2022-03-16 09:39:45.066985-0400 App[16895:3632125] 🔵-[LocationManager locationManager:didChangeAuthorizationStatus:] 4
2022-03-16 09:39:45.068286-0400 App[16895:3632125] 🔵-[LocationManager locationManager:didChangeAuthorizationStatus:] 4
2022-03-16 09:39:45.071332-0400 App[16895:3632125] 🔵-[LocationManager locationManager:didChangeAuthorizationStatus:] 4
2022-03-16 09:39:45.075440-0400 App[16895:3632128] ℹ-[TSConfig persist]
2022-03-16 09:39:45.076799-0400 App[16895:3632128] 🔵-[TSLocationManager locationManager:didChangeAuthorizationStatus:] status 4
2022-03-16 09:39:45.092276-0400 App[16895:3632128] 🔵-[BackgroundTaskManager locationManager:didChangeAuthorizationStatus:] 4
2022-03-16 09:39:45.100751-0400 App[16895:3632128] ℹ+[LocationAuthorization run:onCancel:] status: 4
2022-03-16 09:39:45.100963-0400 App[16895:3632128] ℹ-[TSConfig persist]
2022-03-16 09:39:45.102049-0400 App[16895:3632128] ℹ+[LocationAuthorization run:onCancel:] Location authorization upgrade:  WhenInUse -> Always
2022-03-16 09:39:45.102415-0400 App[16895:3632130] 🔵+[LocationAuthorization run:onCancel:] Request: requestAlwaysAuthorization
2022-03-16 09:39:45.104570-0400 App[16895:3632130]
📍<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) @ 3/16/22, 9:39:44 AM Eastern Daylight Time
2022-03-16 09:39:45.105270-0400 App[16895:3632130]
╔═══════════════════════════════════════════════════════════
║ -[TSLocationManager locationManager:didUpdateLocations:] Enabled: 1 | isMoving: 0 | df: -1.0m | age: 0.6s
╚═══════════════════════════════════════════════════════════
2022-03-16 09:39:45.105666-0400 App[16895:3632130] ✅-[TSLocationManager locationManager:didUpdateLocations:] Acquired motionchange position: <+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) @ 3/16/22, 9:39:44 AM Eastern Daylight Time
2022-03-16 09:39:45.106450-0400 App[16895:3632130] 🔵-[TSLocationManager startMonitoringStationaryRegion:radius:] Radius: 25
⚡  TO JS {"coords":{"speed":0,"altitude":0,"speed_accuracy":0,"floor":0,"heading":-1,"longitude":-122.0312186,"latitude":37.332331410000002,"altitude_accuracy":-1,"accuracy":5,"heading_accuracy":0},"timestamp":"2022-03-16T13:39:44.538Z","activity":{"confidence":100
2022-03-16 09:39:45.114065-0400 App[16895:3632130] 🔴-[TSLocationManager stopUpdatingLocation]
2022-03-16 09:39:45.116391-0400 App[16895:3632130] 🔵-[TSLocationManager calculateMedianLocationAccuracy:] Median location accuracy: 5.0
2022-03-16 09:39:45.118542-0400 App[16895:3632132] 🎾-[TSLocationManager startMonitoringSignificantLocationChanges]

import { Component } from '@angular/core';

import BackgroundGeolocation from "@transistorsoft/capacitor-background-geolocation";

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {

  constructor() {}

  ngAfterContentInit() {
    BackgroundGeolocation.onLocation((location) => {
      console.log('[onLocation]', location);
    });

    BackgroundGeolocation.ready({
      debug: true,
      logLevel: BackgroundGeolocation.LOG_LEVEL_VERBOSE,
      distanceFilter: 10,
    }).then((state) => {
      console.log('*** [ready]', state);
      if (!state.enabled) {
        BackgroundGeolocation.start();
      }
    });
  }
}

HI there,
I had the same issue and fixed it by uninstalling the package @capacitor-community/background-geolocation. I guess there was a conflict somewhere.
After running npx cap sync  again to make sure, everything was working fine.
Hope this helps !

Awesome! That fixed the issue.
Thanks @kinkaz @christocracy

HI there,
I had the same issue and fixed it by uninstalling the package @capacitor-community/background-geolocation. I guess there was a conflict somewhere. I was in the process of testing out existing plugins so maybe others are running into this issue the same way.
After running npx cap sync again to make sure, everything was working fine.
Hope this helps !


Add two tests & replace initialize method with start

I'll pull the branch and fix the coverage offline

Looks good. I can merge, but perhaps a second member should confirm first.

Looks good, thanks for looking at this!


Docs for Python are outdated

Description
I have been trying to use LanceDB via the Python API and run into issues with the fact that the Python API documentation is outdated. For instance, I see that in the code for the Async API the FTS index has been both included and documented for several months, but it still does not show up in the rendered documentation you refer to: https://lancedb.github.io/lancedb/python/python/#indices-asynchronous
This together with the fact that the guides are mostly showing sync API, except in some cases (as when it comes to storage and storage_options), it makes it very difficult to actually build something whilst trying to build a mental model of how to work with LanceDB in Python.
From reading your issue tracker and where work is being spent, I get the sense that it is indeed the async API that is getting love right now? Have you considered just deprecating the sync API and switching over the documentation instead? Would probably save you a lot of time compared to trying to make a smooth transition.
Link
https://lancedb.github.io/lancedb/python/python/#indices-asynchronous

I have been trying to use LanceDB via the Python API and run into issues with the fact that the Python API documentation is outdated. For instance, I see that in the code for the Async API the FTS index has been both included and documented for several months, but it still does not show up in the rendered documentation you refer to

Thanks for pointing that out. I created https://github.com/lancedb/lancedb/issues/1855 and marked that as a good first issue.

From reading your issue tracker and where work is being spent, I get the sense that it is indeed the async API that is getting love right now?

Our focus is on creating feature parity between different SDKs. Python vs Node. Python sync vs async. And local vs remote.

Have you considered just deprecating the sync API and switching over the documentation instead?

I think many users are comfortable with the sync API, and I wouldn't want to take that away from them.
I think our intention was that async and sync would be so similar, that we could just show sync, and async users just needed to know that some methods needed an await. But if it's not that obvious, we could consider providing async examples in the docs too. Do you think that would be helpful and worthwhile?

Wrt the sync/async API: I think the primary "gotcha" that I encountered was the connection logic, where you show only the async API for how to connect (including storage_options which does not exist for the sync API) and then when I tried running with s3+ddb:// that was not even supported by the sync API.
Also the fact that you wrap the async API for table_names() (using asyncio.run(...)) in the sync API was also very confusing, this requires an asyncio context started still (afaik).
Writing any type of "non trivial" Python application, the sync/async choice is very early in the design and I had to go back and forth as I got stuck on differences in implementation on both sides and even if the APIs appear similar at first, they require relatively different surrounding implementation.
I switched to Rust for my use-case for now, so I won't have much more active feedback wrt this, but thank you for a great product and project. :)


question concerning property types

Hi Wolfgang,
thanks for the good work!
I have a question about the type mapping of JCypher. I encounter the issue that I store primitive long values in a node property and get back BigDecimals. Is there a way to influence that? I would like to get long or at least java.lang.Long back.
And btw is there an example for queryResult.resultOf(new JcPath("mypath")); I couldn't find anything in the documentation or the samples.
Best,
Marco

Hi Marco,
Neo4j does not store the concrete type of a numeric property value and hence returns a BigDecimal. Therefore JCypher also returns a BigDecimal in case of a numeric property value.
But you can call longValue(), intValue(), shortValue(), ... on the BigDecimal to retrieve the wanted type.
A simple expression using JcPath:
JcPath p = new JcPath("p");
JcRelation x = new JcRelation("x");
IClause[] clauses = new IClause[]{
MATCH.path(p).node().label("Member").relation().out().type("PLAYED")
.node().label("Song"),
RETURN.value(p.nodes()),
RETURN.value(p.relations())
};
You can find more examples of expressions using JcPath in the test package of JCypher (you need to checkout or clone the project).
You can then look for uses of JcPath in the test package.
I hope that helps.
I am out of office for the next week, but I will be here for further questions and discussions in the week thereafter.
Best regards,
Wolfgang

Hi Wolfgang,
thanks! Very helpful.
Best,
Marco
Am 17.06.2016 um 16:18 schrieb Wolfgang Schuetzelhofer:

Hi Marco,
Neo4j does not store the concrete type of a numeric property value and
hence returns a BigDecimal. Therefore JCypher also returns a
BigDecimal in case of a numeric property value.
But you can call longValue(), intValue(), shortValue(), ... on
the BigDecimal to retrieve the wanted type.
A simple expression using JcPath:
JcPath p = new JcPath("p");
JcRelation x = new JcRelation("x");
IClause[] clauses = new IClause[]{
MATCH.path(p).node().label("Member").relation().out().type("PLAYED")
.node().label("Song"),
RETURN.value(p.nodes()),
RETURN.value(p.relations())
};
You can find more examples of expressions using JcPath in the test
package of JCypher (you need to checkout or clone the project).
You can then look for uses of JcPath in the test package.
I hope that helps.
I am out of office for the next week, but I will be here for further
questions and discussions in the week thereafter.
Best regards,
Wolfgang
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Wolfgang-Schuetzelhofer/jcypher/issues/23#issuecomment-226781007,
or mute the thread
https://github.com/notifications/unsubscribe/ABD3v43MhGtHRWljcV_Vkr36sW1JnZnQks5qMqyfgaJpZM4I2ufD.


[Run] Addressed some disposable + VirtualDesktopHelper cleanup

Summary of the Pull Request
VirtualDesktopHelper class is heavy used by WindowWalker plugin at every query.
I have noticed that some RegistryKey weren't properly disposed.
I have also cached Terminal Session ID and Windows version since they stay the same during PT execution.

PR Checklist

[x] Closes: https://github.com/microsoft/PowerToys/issues/29891
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed
Tested PT Run and verified that virtual desktop names are properly displayed on WindowWalker results.

@crutkas
Why does this github-advanced-security bot writes spell-check comments.
@davidegiacometti
Did you introduced the typos mistakenly or do we need to remove them from expect file?

#29891

@htcfreek it was a typo. I have fixed it.
I agree that the bot comments are a spamming a little bit 🙄

Make sense.. Haven't thought to RDP scenario.
I have updated the PR.


fix/typo

I'm currently translating this part in french, I found this typo, how do you want to process ?

We keep the PR open until I finish the french translation (long run) in case I may find other ones ?
We handle it as soon as possible ?

As you want :wink:

Since we don't have anything in production with this typo I suggest you finish looking for typos and we will merge the PR when you don't find any

Since we don't have anything in production with this typo I suggest you finish looking for typos and we will merge the PR when you don't find any

Fine, thanks for your insight ❤

FYI : I reach the end of file @Kleidukos, I will double check with an ultimate run from start to end, then I will remove the "draft" state.
It may be cool, if you have time @JonathanLorimer, you confirm or invalidate the supposition I did about Maps' subtitle  :

Is "Updating Values to a Map" supart of "Maps" ?
Is "When to use Maps" supart of "Maps" ?
Is "HashMaps" supart of "Maps" ?

Thanks in advance guys :heart:

I read it and didn't find anything else, I guess it's ready :smile:


CSS Animations (with build script)

Opening a formal issue for the css issue I stumbled across here.
I did some digging, and discovered that the issue is introduced by replacing /react/lib/cloneWithProps/ with the react-clonewithprops library here. As you mentioned, we can't use /react/lib/cloneWithProps/, because it'll just trigger the issue in #40 again.
I poked around the source of react-clonewithprops and discovered this. My guess is that this is not exactly equivalent to the (now deprecated) cloneWithProps call. Facebook recommends using React.cloneElement instead, but I am having some trouble converting the two instances I found.

In react-draggable
In react-resizable

Any insight would be tremendously appreciated.
Thank you so much!

I mean to convert react-resizable to React.cloneElement. I have push access to react-draggable and I've already updated it (see 0.5.0).

Great!
I noticed that you previously converted react-resizable to React.cloneElement, but then undid it (because of problems with style and className). I tried my hand at it, passing in style and className manually, but I must be misunderstanding how React.cloneElement is different from cloneWithProps (maybe it's the way children are handled?).
Thanks again for all of your fabulous work on each of these libraries.

Yeah, the issue is that cloneWithProps actually properly merges style and className, but cloneElement does not. But cloneElement properly preserves key and ref.
I'm going to try converting again as I've been able to get react-draggable working properly. I'm building a simple helper that makes React.cloneElement behave properly again.

Looks like the latest updates I made to react-draggable and react-resizable have fixed the issues. I'm seeing the proper animations in the old fiddle.
Please reopen if you have any other questions about it.

Yes! Thank you so much! :+1:


Photoshop Persistent

Hi!
Is it possible to set the CEP panel persistent?
 var csInterface = new CSInterface();
 event = new CSEvent("com.adobe.PhotoshopPersistent", "APPLICATION");
 event.extensionId = csInterface.getExtensionID();
 csInterface.dispatchEvent(event);

I did with csi from utils.ts but it didn't work.
thanks!

Hi @gribias ! Can you provide an example of how you're attempting this in Bolt with csi? CSEvent isn't currently being exported which might be part of the issue.
I've updated csinterface.js to export all functions, so you can try importing it with
import CSInterface, {CSEvent, CSXSWindowType} from "../lib/csinterface";

etc.
If you update just csinterface.js or that file or create a new Bolt instance with 0.1.6.

Hi @justintaylor-dev!
It's working now :)  I imported CSEvent like you just said.
One more thing, with your change I had to remove the  OnAppThemeColorChanged  because it's unavailable and I couldn't build with success .
Thank you for your fast reply!


Change structure relaxation to optional in Espresso grid_phonon_flow

Summary of Changes
This PR modifies quacc.recipes.espresso.phonons.grid_phonon_flow to only run a quacc.recipes.espresso.core.relax_job if run_relax is True. To account for cases where run_relax==False, an option for specifying prev_outdir is provided. To account for cases where concurrent jobs are desired, an option for specifying copy_files is provided. The docstring has been updated to match.
There does not appear to be a unit test for grid_phonon_flow, and I am not running these edits on a cluster, so the changes are yet untested. The majority are simple copy-pastes from existing jobs. I am not entirely confident that the copy_files option will not break things, but it seems that the ph_init_job is standard and safely isolated from the q-point parallelization portion.
Requirements

[x] My PR is focused on a single feature addition or bugfix.
[N/A] My PR has relevant, comprehensive unit tests.
[x] My PR is on a custom branch (i.e. is not named main).

Notes

Before contributing for the first time, read the "Guidelines" section.
If you are an external contributor, you will see a comment from @buildbot-princeton. This is solely for the maintainers.
When your code is ready for review, ping one of the active maintainers.

Can one of the admins verify this patch?

@Andrew-S-Rosen Tests passed on the patch from our discussion. Could you kindly review?

@nerdwarrior: Thank you very much for your PR!
For some background context, there is actually a test for grid_phonon_flow but it's in a bit of an unusual spot. The test can be found here. In short, since we are running real Quantum Espresso calculations, it turned out the grid_phonon_flow test was taking too long when run serially (perhaps unsurprising). So, I have this test running with Dask as the backend, which will take advantage of the concurrency offered by multiple cores on GitHub Actions and finish in a reasonable time.
The test_grid_phonon_flow_single test here only takes 11 s to run](https://github.com/Quantum-Accelerators/quacc/actions/runs/10127694142/job/28005790070?pr=2367#step:8:400) and test_grid_phonon_flow_gamma only takes 9 s to run. Would you be willing to copy one of those tests and run them with run_relax=False to test your new addition? Unfortunately, there is no easy way to assert that a specific change was made here, but we can at least make sure it doesn't crash. What are your thoughts?

Closing in favor of #2372.


UploadCollection issue Drag'N'Drop

OpenUI5 version:
1.52.9
Browser/version (+device/version):
Chrome
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible):
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

File Upload Collection, upload files using Drag'N'Drop
Add the header parameter of csrf token and slug
Check the  same with + icon

What is the expected result?
FIles should be uploaded
What happens instead?
Not uploading and throws error, as header parameters are not retained
Any other information? (attach screenshot if possible)

Hello @RamkumarKrishnasamy,
Can you provide a standalone example of the issue, which will better illustate it?
Regards,
Tereza

Hello @terezamch,
The problem is that the drag and dropped files are uploaded via:
this._oFileUploader._sendFilesFromDragAndDrop(this._aFilesFromDragAndDropForPendingUpload);
But the x-csrf-token header parameters aren't transferred from the UploadCollection to the this._oFileUploader. This causing a 403 unauthorized error on the upload call.
Regards,
Robin

Hello @RamkumarKrishnasamy,
Can you provide a standalone example of the issue, which will better illustate it?
Regards,
Tereza

Hi Tereza,
You can check any standard sap application as well, for example, Leave Request and try to upload file using manually and using drag and drop.
As Robin said, the header parameters are not transferred in the drag and drop case, though we are setting manually in onChange event.
Regards,
Ram

Hello,
I understand that the header parameters are not send in one scenario, but in order to send the issue to the responsible team I need an working example, which shows the issue in an isolated environment. Could you please provide one? You can use jsbin for example.
Regards,
Tereza

Hello,
After the onChange event the parameters are correctly put into the FileUploader, but then the onBeforeRender-function is called. And in the onBeforeRender-function the following occurs:
if (!this.getInstantUpload()) { 			this.aItems = this.getItems(); 			this._getListHeader(this.aItems.length); 			this._clearList(); 			this._fillList(this.aItems); 			this._oList.setHeaderToolbar(this._oHeaderToolbar); 			return; 		}
The _getListHeader is going to create a new instance of the FileUploader in which the headerParameters-aggregation is empty...
So a possible solution I see is to add the following logic:
// Inject the header parameters from the uploadCollection into the FileUploader 				this.getHeaderParameters().forEach( 					function(oHeaderParameter) { 						this._oFileUploader.addHeaderParameter( 							new FileUploaderParameter({ 								name: oHeaderParameter.getName(), 								value: oHeaderParameter.getValue() 							}) 						); 					}.bind(this) 				);
before the following method is called on the FileUploader:
this._oFileUploader._sendFilesFromDragAndDrop( 					this._aFilesFromDragAndDropForPendingUpload 				);
Regards,
Robin

Hi,
SAP has suggested us to use beforefileuploadStart event instead of change
event to set the header parameter. This is working. Some limitations with
this method also. oEvent object doesn't have filedetails information for
example filesize, uploaded time etc. It has only filename.
On Fri., 28 Sep. 2018, 4:24 am Jeannicolasplouffe<EMAIL_ADDRESS>wrote:

Hi.
we recently upgraded from our SAPUI5 version from 1.44.24 to 1.52.9. I
noticed we also have this issue and we need to fix it :(. In your opinion
what would be the solution for me, open an incident with SAP or override
(redefine) the control based on your fix; the fix to copy the header
parameters?
Thank you
Jn
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SAP/openui5/issues/2199#issuecomment-425195082, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AmfDv7bj0r3Un_-mW796Iup91ISC6WgUks5ufRfcgaJpZM4WibHU
.

Hi,
I tried that before and I have the same problem, where do you set the uploadUrl, in the change or the BeforeUploadStarts?
Thank you
Jn

Hi,
would it be possible to share your code for the beforefileuoploadStart event? I am still getting an error 403 Forbidden.
Thank you
Jn

Hi,
would it be possible to share your code for the beforefileuoploadStart event? I am still getting an error 403 Forbidden.
Thank you
Jn

HI,
Forbidden issue will arise when you haven't set the security token in the header.
"x-csrf-token"

BeforeUploadStart should be used instead of the change event https://sapui5.hana.ondemand.com/#/api/sap.m.UploadCollection/events/beforeUploadStarts
Usage of internal API - properties and methods - must be avoided, as we cannot guarantee results.
You can get items through the items aggregation, see the properties of UploadCollectionItem

Hi,
great i got rid of the 403 - Forbidden error, but now I am getting the following error:
Failed to load resource: the server responded with a status of 405 ()...
When I debug it fails within the FileUploader.prototype.sendFiles method at the following statement:
oXhr.xhr.send(oXhr.file);
This only happens again when i drag and drop, when i use the regular way to add a file it works fine.
Thank you
Jn

Hi,
to close the loop on this issue.  In the change method I was setting the uploadURL property of the _oFileUploader since it's dynamic; I was using oUploadCollection._oFileUploader.setUploadUrl(url).
So I ended it up setting it in the xml view  :( to get rid of the 405 error and i pass my dynamic parameter using the Slug in the BeforeUploadStart method.
I moved all my code from the Change method into the BeforeUploadStart method.
Thank you for your help.
Jn

Hi ,
For setting all necessary header parameters please use "beforeUploadStarts" event.
https://openui5.hana.ondemand.com/#/api/sap.m.UploadCollection/events/beforeUploadStarts
Example for usage - beforeUploadStarts see below link
https://openui5.hana.ondemand.com/#/sample/sap.m.sample.UploadCollection/preview.
Also if property " instantUpload" is false it is not allowed to change uploadUrl at runtime it means not supposed to set uploadUrl dynamically.
I am closing the loop.
Regards,
Dhanwin.
SAP UI5 Suite Controls.

Changed the label to consulting as its not a bug.
Regards,
Dhanwin

Hi,
I think a workaround exist but it’s still a bug.  Using the beforeuploadstart event we loose some functionality that the change event had??


Endpoint with OPTIONS httpmethod not listing parameters from path

I have the following endpoint tagged with PATH
@Path("install/{installId}")
@OPTIONS
public void somecontroller
....
The swagger produced does not list the parameters in the path

Which version of swagger-core do you use? Do you have an @ApiOperation annotation too?


Refused to apply style from 'http://localhost:4200/node_modules/leaflet/dist/leaflet.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

Before submitting an issue, please verify the following:
If this is a request for help, please use Stack Overflow and use the ngx-leaflet tag, or review the Getting Help section of the README. We watch the ngx-leaflet tag on Stack Overflow and will respond there. We will no longer be responding to help and 'how-to' requests on GitHub.
If this is a bug, issue, enhancement request, etc. verify the following before submitting your issue:

[x] Review the README to see if your issue is covered, and pay particular attention to the Getting Help section.
[x] Tell us what version of Leaflet, Angular, and ngx-leaflet you're using
[x] Include code that reproduces your issue

I'm using :
"leaflet": "^1.7.1"
"@angular/cli": "~10.2.0"
"@asymmetrik/ngx-leaflet": "^8.1.0"
I have followed this section to add the leaflet stylesheet but i keep getting the same error :

I have added the stylesheet to source to the modules section like it was said here and the stylesheet still doesn't load.

Changing the href to src seems to make the error go away, any idea on why the typescript error is launched ?

Changing the href to src seems to make the error go away, any idea on why the typescript error is launched ?

Hey @hadestructhor , did you find a solution to this problem ? I have the same currently ...

I've found the solution !
I've removed the declaration in the HTML and I call the CSS directly from angular.json like this :
"styles": [
    "src/styles.scss",
    "./node_modules/leaflet/dist/leaflet.css"
]

You just have to stop the server with CTRL+C and restart it with the command ng serve and voilà !

The above comment is the right solution. The proper way to include the CSS is to add it to the angular.json file in the styles array.

Late comment: I just added the style.css file to the folder containing my libraries, index.html and sketch.js.


Add a color code converter JS app

Is your feature request related to a problem? Please describe.
It's a JS app that converts from and to different color representation codes like RGB, Hex, HSL, HWB, CMYK, ..etc.
Additional context
Gonna make use of HTML, CSS, & JS.
Steps Followed✅

[x] Is your feature request related to a problem? Please describe.
[x] Additional context

Code of Conduct✅

[x] I agree to follow this project's Code of Conduct.
[x] I checked the current issues for duplicate problems.
[x] I have gone through project README.

Hi! I would like to work on this issue under GSSOC`22. Please assign it to me.

Hi sorry these projects already exist. You can create a new issue with any feature improvisation or contribute a new proejct which isnt already there

@sreelakshmig009 I think there is some kind of miss-understanding (maybe from my side) but I can't find a similar converter on the repository. There are only color flippers that generates random colors, while my proposal is about a calculator-like JS app that converts between color codes like this one on w3schools.
So is a double checking is available considering this issue?

@sreelakshmig009 I think there is some kind of miss-understanding (maybe from my side) but I can't find a similar converter on the repository. There are only color flippers that generates random colors, while my proposal is about a calculator-like JS app that converts between color codes like this one on w3schools.
So is a double checking is available considering this issue? and if there is another converter on the repo can you point it out here?

I'll reopen this issue because as you guessed I thought it was similar to a color flipper. Do attach a video of the project while creating a pr


Can't cast from Float to int

Strange that it hasn't appeared until now.
In SampleDataType.java:
      r = r * 37 + (int)mF3;

Actually, I think the problem is that a field was defined as a list of floats:
  *float f3;

and it is generating code as if f3 was a boxed scalar.


chore: Updated really small typo

This is a minor fix for a typo but I decided to quickly open a PR for this since I am going through some of the OAuth clients for PHP league.
Thanks for creating the time of making this package for everyone! Have a nice day.

Thanks for the PR @wotta! Every little bit helps :)
Looks like the CI is failing but it’s due to an unrelated dependency issue - I’ll fix this and then merge your PR.
Have a great day! :)

Just fixed the test issues and merged - thanks again for the PR! :)

Thank Emile! Have a great weekend.


Fix all of the warnings

( Related to #8 )
A lot of the older code in place no longer follows the standards used to develop to kernel (snake_case for arch-dependent code, consistent use of prefixes, PascalCase for function and variable names, UPPER_SNAKE_CASE for macros and c #define  constants, but most importantly, always use function prototypes before the first use of the function.

Fixed in f76c8580af793b24eafa64121fb6b72a2874e377


Custom field changes in web farm environments

When custom field definitions change, we update rows in the web server.
But other servers are not aware of this change.
We should notify them by using TwoLevelCache generations etc.

I'll reconsider this when dynamic entities system will be integrated to serenity


introduce schema composition

To do:
[x] simple type rewiring
[x] composite schema creation
[ ] source field retention
[ ] operation pre-analysis ("query planning")
[ ] add proxying within the executor
[ ] composition should return an array of encountered errors rather than throwing
[ ] add logic for field/arg type flexibility, for input fields non-nullable takes precedence over nullable, for output fields, nullable takes precedence over non-nullable
[ ] add validations for merging
[ ] add transforms

Returning to simple fork.


Enable usage in Android 8+

Android version 8 and above require new permissions in order to install external APKs. This patch does the following things:

For Android version 8 and above, check if necessary permissions are available, and if not, launch the activity (Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES) where the user can enable the appropriate permission.
For previous Android versions, check if necessary permissions are available, and if not, launch the activity (Settings.ACTION_SECURITY_SETTINGS) where the user can enable the appropriate permission.
Request other necessary permissions from the user.

Hi @loban ,
Why not use https://github.com/vaenow/cordova-plugin-app-update/issues/93#issuecomment-375275089  below, instead of changing so many code?
uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"

Thanks for the feedback. In my testing, I found that just that line alone was inadequate.
I'll try to explain why:

REQUEST_INSTALL_PACKAGES is needed for apps targeting APIs greater than 25. In in those API versions, the app does not request permissions on app install. Instead, it has to request permissions during app running (but before the secured functions/activities are called).
For Android O and above, for this above permission, we don't just get a dialog that asks for permissions and the user clicks yes. Instead, they have to go to a particular settings page and enable the option. So I had to write code to launch an activity that loads that page.
Since I had to write the code for the situation above, I also wrote code to open the appropriate settings page for android versions before O (which is a different activity). This is useful in case the user had turned off "unknown sources" after installing the app.
That is why I have two functions:
-- verifyInstallPermission() to handle installing packages (which needs to be handled differently for Android O+ and below, and which needs external activities to be launched) and
-- verifyOtherPermissions() which shows the usual dialog requesting permissions at runtime
And I also have all the permissions defined in plugin.xml for older android versions.

This way, this plugin works in all android versions from 4.1 jelly bean all the way to 8.1 oreo. Hope I was able to explain properly.

I tested the code too which works great. Maybe adding some dialog telling users what should do before setting pages prompted or just prompting the setting pages after user taped the install button may be better for user to be clear.

Any chance the Permission fix is going to get merged in?


Unable to resolve mdns .local hosts

As titled, if I put the IP address in the config, go2rtc is able to find the rtsp stream, however using [hostname].local doesn't work. Note that avahi-daemon is running and I am able to ping that hostname from that machine.
Minimal repro config:
streams:
  patio:
    - rtsp://admin:FsA6LbqDMA@AMC046169CA67A5CDE.local:554/live

log:
  format: "text"
  level: "debug"

Logs trying to pull up the stream:
23:52:28.668 INF go2rtc version 1.8.5 linux/amd64
23:52:28.668 INF [rtsp] listen addr=:8554
23:52:28.668 INF [api] listen addr=:1984
23:52:28.668 INF [webrtc] listen addr=:8555
23:52:28.668 DBG [hass] can't import config: open .storage/core.config_entries: no such file or directory
23:52:50.199 DBG [webrtc] new consumer src=patio
23:52:50.281 DBG [webrtc] add consumer error="streams: dial tcp: lookup AMC046169CA67A5CDE.local on <IP_ADDRESS>:53: server misbehaving"
23:52:50.464 DBG [streams] can't stop none producer
23:52:50.464 DBG [streams] can't stop none producer
23:52:50.464 DBG [mp4] add consumer error="streams: dial tcp: lookup AMC046169CA67A5CDE.local on <IP_ADDRESS>:53: server misbehaving"
23:52:50.516 DBG [streams] can't stop none producer
23:52:50.516 ERR github.com/AlexxIT/go2rtc/internal/mjpeg/init.go:166 > error="streams: dial tcp: lookup AMC046169CA67A5CDE.local on <IP_ADDRESS>:53: server misbehaving"

Any thoughts?

You need to start with how go2rtc is installed

Hello. I have the same issue. I’m using the binary version of go2rtc on linux (debian).

So your linux should have same problems. App uses system DNS mechanics


Potential for reset password link with token to leak to third-parties via the Referer header

I searched to see if this had been brought up before and couldn't find any open or closed issue or PR that mentioned it. If there is one and I missed it, please let me know.
As discussed in this thoughtbot article the reset password link with the token can be leaked to third-parties (CDN, analytics, links to other third-party domains from your site) via the Referer header which is sent by the browser with all requests from the current page (edit password in this case). To fix this in our app I've done something similar to what they did to solve this in Clearance by temporarily storing the reset password token in the session and redirecting the user back to the password edit page without the reset password token in the url params. The token is then pulled from the session to be used in the form.
I'm wondering if this is something you'd be interested in fixing in Devise and if so I'd be happy to put in a PR.

Rails started setting Referrer-Policy to strict-origin-when-cross-origin since 5.2 https://github.com/rails/rails/commit/428939be9f954d39b0c41bc53d85d0d106b9d1a1

I didn't know about that @sonalkr132, thanks for sharing!
I'm more inclined to use the Referrer-Policy header to solve this instead of having to change a bunch of code to try to mitigate this at our side.
Looking at https://caniuse.com/#feat=referrer-policy it seems like the bigger issue with support is on Edge and Safari on iOS. They do support an older draft, though. Setting never or origin in an HTML meta element should do the trick, right?

The Referrer-Policy looks like almost a solution... but we found that it might be not enough.
For example, we use intercom widget on our pages to provide customer support and even with the Referrer-Policy set to strict-origin-when-cross-origin they leak the full request url:

Which means that there actually has to be a stronger way to enforce this. In my opinion, the session idea from Clearance sounds nice.


Needed solution to generate pdfs with a graph

I am considering adding automatic report generation.
I need a server side solution for generating pdfs with charts. It will also be useful to generate graphs as an image.

https://github.com/chrome-php/headless-chromium-php


DelProtect3(char10): When saving files to the protected directory, something strange happens

I run notepad.exe, input something, save it to C:\Test, the protected directory( I use cmd:  DelProtect3Config add C:\Test),  a windows warning messagebox popped up, as you can see below:

What is the reason? Can it be improved?

I got it. notepad's "save" or" save as" function will create a temporary file with the same name and then deleting it  before creating a new file. Probably to prevent a double name.

Thanks for looking into it!


Fix to 2274 - Chaining multiple Include with ThenInclude throws in some cases when included collections are empty mid-chain

Problem is that when creating creating query plan for include we statically assign each index for each ReferenceEntity materializer that indicates from which reader the data should be taken, in order to materialize this entity.
However, in some cases, we don't open all the readers that we expect - this can happen if a reader doesn't return any results. We then short circuit the include chain, and don't open any readers that were suppose to follow.
Fix is to introduce a structure that holds active readers for include (on top of the old _activeQueries for all other readers), which we don't fill in like a list, but fill it based on the index that the reader is supposed to have (filling the blanks with nulls temporarily). This way we ensure that reader always land in their place, and are available at the appropriate index, that we introduced in the query plan. This happens whether all of them were opened, or some were short-circuited.
The information about which reader should be placed at which index is also added to the query plan. We do this only for the include-related readers.

@anpete

Nice work.
:shipit:


Fix the unit test names

renamed test_admin_api.py and test_key_rotation.py to follow the unit test naming convention

The string on line 99 of curation/data_steward/test/unittest/data_steward/admin/key_rotation_test.py needs to be a byte string, b'not found'.  Then it should pass.


Remove meaningless if statemet because an assertion already exist

Remove meaningless if statemet because an assertion already exist

Going to have to NACK this, sorry. The if isn't useless because assert()'s aren't actually compiled by default. If you build the source tree they're only in the memcached-debug binary that's run with the tests.
I've been bitten by that a number of times though and would like to find an opportune time to enable assert's by default.

Ye.p asserts will not do anything unless you compile with -g I believe.


Changing bacon to rspec

Right now this project is using the small RSpec clone bacon.
But the problem is that bacon project stopped the development [1].
I wanted to fix a issue for that in a past time. But I could not.
So, I think changing this project's testing framework from bacon to rspec would be better.
If you like it, I can contribute for that.
[1] https://github.com/chneukirchen/bacon/issues/32

Or changing to minitest.
Nowadays minitest or rspec are popular.
But in this case. changing bacon to rspec is easier.
How do you think?

Hey Jun,
you are right about bacon. How much are you interested in this gem? If you want to become a co-maintainer, please let me know :) Unfortunately I don't have much time to maintain it right now.
Daniel

@junaruga Ah you already wrote that you would like to contribute it, is it ok if I add you to the repository?

@minad Okay, I am happy to be the co-maintainer.
Because mimemagic is a part of Rails 5.2.0 runtime dependency now.
I am working to release Rails 5.2.0 gem for Fedora Project.
That's my motivation :)


Add the ability for the loading and error override components to be dynamic based on the current document

Demo file and README have also been updated

@jonphil18 Thanks for your PR!

No problem. Any idea when the next minor release will be? Would love to get this included in my project.

@jonphil18 Done.

Thanks!