[CSL-164] Servant API for node

@manpages
As there are engineers coming onboard to work with PureScript in order to start integration of pos-implementation and Daedalus wallet, we have to refactor state and provide Servant endpoints akin to RSCoin endpoints that were exposed for Block Explorer. Plus provide means to expose RPC calls to be called from Daedalus Wallet.

Parent for: #590, #596

@georgeee
Before doing, please list all API here
And estimate 1d for whole API seems to be too little

@jagajaga
@gromak ask me for all necessary info

@manpages
@georgeee that's @jagajaga's estimate, my estimate was 2d for @gromak, let's see who was closer :)

@manpages
** TODO URGENT: Servant API Fourth Categories
<2016-11-28 Mon>
*** Endpoints that work with big data sets, block-explorer type of things (NOT SURE IF NEEDED FOR THE CURRENT DESIGN, MUST ASK DESIGN TEAM)
*** Endpoints AND changes to the State on the backend to reflect Node state and select interesting transactions for the current user
*** Endpoints that provide basic cryptocurrency use cases — sending txs, picking scripts (WILL NOT BE COMPLETE UNTIL ARTYOM IS DONE WITH PLUTUS INTEGRATION)
*** Endpoints that provide enough data about staking for the current version of staking UI and a toggle for participation in staking
@georgeee @gromak @jagajaga
if you have any questions — ask.

@gromak
@jagajaga @manpages @georgeee
Two questions:

Where should all these endpoints be? Currently we have only one stateful entity which is full node. Do we need to introduce more entities?
For example, for block-explorer-like endpoints we may introduce, well, block-explorer, who will store some state and this state will have some extra information (not needed by full node, but needed by block-explorer, just like in rscoin) and it won't have some information stored by full node (e. g. SSC data). Good thing is that we don't add extra mess to full node and don't add useless data to block-explorer, but bad thing is that some data will be duplicated if we run block-explorer and full-node on the same machine.
Regarding ''endpoints AND changes to the State on the backend'': which state are we talking about? Is it state of full node or state of wallet? Or do we want to have wallet capabilities on full node? For example, in haskoin, AFAIK, these two things are separated. Do we want to separate wallet from full node?
Regarding ''endpoints that provide basic cryptocurrency use cases'': it's related to previous question, currently node doesn't create transactions, she only receives them and puts into blocks.
Regarding ''Endpoints that provide enough data about staking for the current version of staking UI and a toggle for participation in staking'': this functionality is part of full node, so they can be added to full node and this part is more clear.
———————————————
So I would like to know for which questions we already know answers, which questions should be discussed, which questions I should answer by myself.
Currently I don't see any advantages in separating node state and wallet state (because apparently wallet needs everything that node needs, except optional SSC data which can be turned off). But maybe you have something to say about it.
With block explorer it's less obvious, because block explorer doesn't really need to process transactions/SSC, for example.
——————————————————————————————
Should these endpoints be very generic (so that the same API can be used for different reasonable cryptocurrencies) or ouroboros-specific? For example, should they be similar to endpoints we have in RSCoin? I know that set of endpoints in RSCoin is very small, but anyway.

@georgeee

I think we can make it a pluggable part of node (turning it on/off with CLI key)

@gromak

I know this question is obscure, so you can ignore it if it doesn't make sense.

@gromak
Now I am putting it into Pos.Web, but I would like to have answers ASAP, so that I don't have to redo everything.

@gromak

I think we can make it a pluggable part of node (turning it on/off with CLI key)
Alternative solution is to make it a separate project which will interact with cardano-sl using main protocol over TCP and will have cardano-sl library as dependency.

@gromak
Btw, do I understand correctly that staking means participation in SSC?

@gromak

Currently I don't see any advantages in separating node state and wallet state (because apparently wallet needs everything that node needs, except optional SSC data which can be turned off).
At the same time, wallet needs more than full node needs. For example, wallet needs to track own transactions to report status of them and resend if necessary.

@georgeee

Alternative solution is to make it a separate project which will interact with cardano-sl using main protocol over TCP and will have cardano-sl library as dependency.
Just launch node with key that has empty stake. Will be just the same :)

@gromak
Do we already know how authentication should be done? Probably it depends on what frontend can do.

@gromak
The question is whether web server should share database and all node's state with node itself or it should be another project operating on state via some lower-level RPC or something like that. I assume the former.

@manpages

Btw, do I understand correctly that staking  means participation in SSC?

Yes
Separation of node and wallet state is reasonable. Remember that wallet works with aggregates of information about the node state, so why don't we put it elsewhere and recompute those potentially with lower priority than protocol-level stuff?

block-explorer

Forget about it for now, the most important thing is to get endpoints that feed node-specific information to the wallet and that expose basic cryptocurrency functionality implemented.

so that we won't have to redo it

This work starts the practical conversation about the structure of universal wallet API. The further work will be done by Lars Kraus, the PureScript guy we've hired. So don't overthink those bits, just get the data served over HTTP and write functions that derive the necessary data from the state.
@gromak @jajagajaga @georgeee understood?

@gromak

Separation of node and wallet state is reasonable. Remember that wallet works with aggregates of information about the node state, so why don't we put it elsewhere and recompute those potentially with lower priority than protocol-level stuff?

Ok, somewhere inside I totally support this separation even if benefits are not absolutely clear now.
AFAIU, it means that we will have cardano-node (which is what we have now but with optional HTTP server which can be enabled from CLI and provides, amongst others, endpoint to toggle SSC participation) and separate executable cardano-wallet (which is another HTTP server and provides, amongst others, endpoint to submit transaction). Is it correct?
On the lower level, cardano-node's web server locates in Pos.Web in cardano-sl library and shares states of node with main code and operates on it directly.
Regarding cardano-wallet, it's less clear, we can even make it a separate project (which depends on cardano-sl library) or we can make it another executable inside cardano-sl. If we make it another executable we can put all logic into this executable or partially into cardano-sl library. By default I will put it into cardano-sl library (e. g. Pos.Wallet) because usually when we put too much logic into executable we end up moving this logic into library sooner or later. Let me know if it's bad.
Regarding authentication: I assume that now I don't have to think about it and that if cardano-wallet receives request to send coins from wallet to someone else this request is sent by owner of wallet.

@gromak

cardano-node's web server locates in Pos.Web in cardano-sl library and shares states of node with main code and operates on it directly.
At the same time nothing in Pos depends on Pos.Web.  I don't want to guess which endpoints will be needed by frontend, instead I would prefer to add them lazily, when someone really needs them. Infrastructure for doing it is written.
To put it all together, I suppose that first version of API for categories 2 and 4 is ready. The only missing part is documentation, it will be done as CSL-224. Category 3 is not ready, it will be done as CSL-223. Category 1 is postponed.
This issue can be closed.

@gromak
Currently we have this API:
type BaseNodeApi ssc =
    "current_slot" :> Get '[JSON] SlotId :<|>
    "leaders" :> QueryParam "epoch" EpochIndex :> Get '[JSON] SlotLeaders :<|>
    "spending_key" :> Get '[JSON] PublicKey :<|>
    "head_hash" :> Get '[JSON] (HeaderHash ssc)

We also have GodTossing specific API:
type GodTossingApi =
    "toggle" :> Capture "enable" Bool :> Post '[JSON] () :<|>
    "secret" :> Get '[JSON] LSecret

If node is launched with GodTosssing SSC she uses the following API:
type GtNodeApi =
    BaseNodeApi SscGodTossing :<|>
    "god_tossing" :> GodTossingApi

otherwise BaseNodeApi is used.
Everything is implemented except god_tossing/secret endpoint. It depends on CSL-219.
Under this issue I want to implement this endpoint and then I suppose it can be closed. These endpoints cover 2-nd and 4-th categories. If we need more endpoints from these categories, we can create new issues for them and adding these endpoints should be easy (because all infrastructure for it is already written).
3-rd category of endpoints is not started yet, it depends on CSL-214. I will create a separate issue for it because I like more fine-grained issues.
I will also create a separate issue about documentation of API.


LinearSearch Program is added

linear Search Program with CPP

We have stopped accepting DSA PRs, please try something new ( cool code snippets or fun projects )


Created and updated docs for 1.21-14

Created and updated docs for 1.21-14
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/unhold
/approve


PR #203 needs updating to use FWLinks in the nuspec

PR #203 needs updating to use FWLinks in the nuspec
https://github.com/xamarin/XamarinComponents/pull/186

Updated myself


Type Error for certain image (Python)

For the image https://somafm.com/img3/defcon-400.png, I get the following TypeError when using ColorCube.py:
➜  Python git:(master) ✗ python3 ./ColorCube.py /tmp/defcon-400.png
Traceback (most recent call last):
  File "./ColorCube.py", line 305, in <module>
    colors = cc.get_colors(image)
  File "./ColorCube.py", line 126, in get_colors
    m = self.find_local_maxima(image)
  File "./ColorCube.py", line 152, in find_local_maxima
    r = float(p[0])/255.0
TypeError: 'int' object is not subscriptable

Closing this because Image is gone. Sorry for the late reply.


Subheadings before main headings should be warnings

This is not ideal, it should probably be a warning, but it's currently a pass:

Subheading

Main Heading

Content

Hello,
Every BBC Page would fail this guideline as there is a H3 in ORB but the product tends to set the H1 later in the page. Removing the H3 from orb would make the experience worse not better.
In use this has very little to no negative effect of AT users, so i wouldn't consider this something which is worth warning on.
Hope that helps,
Jamie + Lion

@JamieKnightBBC at the moment this scenario does not meet the guideline ("must not skip heading levels"). ORB are aware of this and our team understand why things are the way they are. I have suggested this scenario (other headings before the H1) should be flagged as a warning rather than a fail.
I was told some time ago that ORB may change such that this will no longer be an issue, but I've no idea if that change is still on the backlog.

If they change it they should make sure they test it with real users.
It was added off the back of some user testing and made a big difference to the usability.
Perhaps we need to actually update the HTML advice we give to be a bit more flexible.
I didn't know the tool gave warnings and errors separately. A warning level might work for this accepting it will be triggered on every page.
J&L
Sent from my iPhone
On 26 Jan 2017, at 17:58, EmmaJP <notifications<EMAIL_ADDRESS>wrote:
@JamieKnightBBChttps://github.com/JamieKnightBBC at the moment this scenario does not meet the guideline ("must not skip heading levels"). ORB are aware of this and our team understand why things are the way they are. I have suggested this scenario (other headings before the H1) should be flagged as a warning rather than a fail.
I was told some time ago that ORB may change such that this will no longer be an issue, but I've no idea if that change is still on the backlog.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/bbc/bbc-a11y/issues/148#issuecomment-275461403, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ARLE2s-fcE_UY_tdcHkpfrzQ9F_G3esNks5rWN7IgaJpZM4Ll6LE.

http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated.
If you have received it in error, please delete it from your system.
Do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately.
Please note that the BBC monitors e-mails sent or received.
Further communication will signify your consent to this.

I wrote the original standard with this scenario in mind. If I was writing the ORB HTML today I would test to see if a named region, as has been done for the primary nav, would test just as well.
The headings standard says "Heading levels after the document
 element must be sequential and must not skip heading levels." Therefore any headings before the
 can ignore this standard, so the pass is correct. I think this is reasonable, as although named regions can replace headings as signposts in most cases now it is still a reliable and sometimes useful technique.

Thanks for the insight @IanPouncey - very helpful for this issue.
@JamieKnightBBC the concept of a warning does not yet happen in bbc-a11y, but is something that has been considered for a while.


Not an issue just thumbs up

This project is too awesome, restored my faith in Docker and saved my Macbook from being killed by a varangian hammer.
I owe you beer!

 Thanks, I'm glad it's useful.

+1 to this. There were some days with vanilla B2D that I wanted to give up on Docker entirely!

+1 here also. Working with Magento (lots of files), impossible without something like this

Used dinghy for a new Magento 2 development process. Thought you'd like to know @codekitchen http://mageinferno.com/blog/magento-2-development-docker-os-x

:+1: great work

:+1: indeed

:-1:
Perhaps the NFS (and DNS?) wizardry can one day be merged into the docker-machine xhyve driver, to make an ultimate replacement for VirtualBox/VMWare Fusion on OS X.

:+1:  I really hope that the devs here are in touch with some devs from the docker project. I was really struggling with docker and ember-cli, couldn't get file system notification reloads to work, then stumbled across this project and now w/ nfs shares it works great!

Attempted getting NFS working on Boot2Docker - no go. Tried sshfs shares, that was just broken. Tried Rsync with fswatch - great for small projects, but for those with many files, pretty useless and time consuming.
It's now past 1am and I'm very glad to have found this project.  Within 30 mins my dev setup appears to be working perfectly, just the small matter of getting a wrapper script to set it up for other devs with no effort.
:+1:

restored my faith in Docker

that about sums it up for me too. Thank you.

:+1:

:+1:

A project that took over 90 seconds to fully load now takes 5 seconds. Thank you ! Very good job !

Just thanks for this project. I switched from Linux to Mac OS X and was thinking about to go back before trying dinghy. It works so far so good... Apple should sponsor you :) :+1:

I agree.  I had spent time getting Parallels shared folders working with RancherOS only to find out that the performance was terrible (although not as bad as virtualbox).  After finding out that somehow NFS is still the state of the art for VM file sharing, I discovered dinghy while looking for solutions to the inotify issues.  Dinghy neatly solved all of those issues and is the basis for our development environment.  Thanks!!

Just wanted to say that using Dinghy with VirtualBox has been great. I struggled with filesystem events not being properly propagated while using Docker for Mac but have not had a single issue with Dinghy. Kudos!

Been more than two years since my previous comment, and still using this project every day. Just wanted to pour some more praise on here since nobody has posted in a while!


Image Processing docs structure based on "Principles of Digital Image Processing" book

Overview
This is a task to organize documentation of our the Image Processing features in GIL following on structure of the topics as proposed in the 3-volume series of the Principles of Digital Image Processing book (1, 2, 3).
Simply, just following the table of contents of those books would help to come up with structure that is clean, maintainable, future-proof and friendly to readers, those familiar with image processing concepts and GIL as well as newbies.
Task
Below is proposal of the the "Image Processing table of contents.
Please, feel free to comment and discuss it in the comments below or following the thread on the boost-gil mailing list.
ToC: Image Processing

Histograms and Statistics

Grayscale images
Color images

Basic Point Operations - algebraic and logical operations to modify pixel values without changing size, geometry or structure of image

Intensity (contrast , brightness, inverting, simple global thresholding)
Histogram Equalization
Gamma Correction
Color Space Transformations

Filters (grayscale and color images)

Linear
Non-linear
Morphological

Classification and Segmentation - methods for labeling, binarizing and finding

Thresholding

Simple Global Thresholding
Automatic Thresholding

Global Adaptive Thresholding
Local Adaptive Thresholding

Labeling Regions

Detectors - methods for object detection

Edges
Curves
Corners
Contours

Geometric Operations - operations altering image geometry
Image Transforms - operators altering geometry and nature of the image information as well as geometry of the image itself

Distance Transform
Fourier Transform (DFT, FFT)
Cosine Transform (DCT)
Haar Transform
Hough Transform

Changes History
Changes of the proposal above following comments and discussions from you!

Initial proposal
...

@mloskot Not that I am rushing from one issue to another, but I just remembered this mailing thread (on FFT in Boost.Gil) which I had started as an initial proposal to my GSoC project idea .This had recieved some nice inputs from various people. Although , I was not well equipped at that time to continue researching on this topic , I feel we could add this idea to the wiki of GIL so that if anyone(in future) wants to take a look at this, they would not have to dig it out from the other mails.
Tagging @lpranam also.
Thanks.

@codejaeger https://github.com/boostorg/gil/wiki/Image-Processing-Algorithms is a general list of the IP features and algorithms, it is not just related to GSoC, so feel free to add a row to the table with link the FFT thread there.
For GSoC specifically, although students are welcome to find and suggest their project ideas, it is a common way in finding the right project, finding a topic that both they and the mentor is interested in may be difficult, especially if there is a shortage of mentors. I personally would prefer to focus on completing the work on the basics first as continuation of the previous year.

@mloskot will submit a PR with this soon

so feel free to add a row to the table with link the FFT thread there.

Regarding

I personally would prefer to focus on completing the work on the basics first as continuation of the previous year

I have thought of a proposal not entirely related to

completing the work on the basics first as continuation of the previous year.

But it is mentioned in the ideas page . Is that okay is the sense will I find a mentor w.r.t the projects in idea page? Thanks.

@codejaeger There are mentors available, two mentors, so yes you (as well as other students submitting their proposals) have chance to find mentor.


🍒 Cherry pick PR #5584 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/App/pull/5584 to staging 🍒

🚀 Cherry-picked to staging by @OSBotify in version: 1.1.3-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by @timszot in version: 1.1.3-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Should be able to add extra key=val pairs to encryption context

While the custom authoriser is able to accept/reject a connection to (e.g.) a prod box based on its EC2 tags, it would be nice for this to be logged in CloudTrail. So we should support passing in arbitrary key=val pairs which

get logged to CloudTrail by means of inclusion in the encryption context
get passed to the custom authoriser
don't collide with the existing encryption context (maybe prefix user-submitted keys)
demonstrate how an admin can mandate the presence of a key=val pair using conditions in the KMS key policy

Could be used for e.g. leaving a comment about why you needed SSH access.


Fix Python 3 compatibility

Previously, json would complain about request.data being a bytes object.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add develcloud6 to the help text

one entry still missing in the sanity checks

done

:+1:

then we might as well drop develcloud3 + GM3 and add GM5

As far as I know cloud3 is not EOL yet.

+1


buffs: test buff config loading

config params should get loaded into buffs. do they? does it happen at the right time? write some tests

pr #376


ignore text elements whose parents are svg

NodeParser picks up all  elements, including those within SVG which are already rendered.  To prevent those text elements from being re-rendered by the conversion process, remove them from the list of text nodes.

Fixed in 1.0.0


[BUG] remote error: tls: unknown certificate

Describe the bug
Can't open HTTPS pages over proxy.
remote error: tls: unknown certificate
To Reproduce
Start mubeng proxy and see
Environment

OS: Ubuntu Linux 20.04
Latest mubeng version

@dwisiswant0 i have this issue to says not secure?

It's still under investigation, @JReverse.

+1 waiting for resolution @dwisiswant0

I'm facing this issue to. I'm not sure its because of mubeng though.
I'm using mubeng as a load balancer to my vpns running in docker containers which each of them has goproxy running. mubeng job is to switch between them.
If I directly point the http_proxy to the vpn container running goproxy Its works with https urls but pointing it to the mubeng container I get:
WARN: Cannot handshake client www.gbook.ir:443 local error: tls: bad record MAC
https_proxy=balancer:80 curl https://example.com doesnt work
https_proxy=vpn_1:80 curl https://example.com works
http_proxy=balancer:80 curl http://example.com works
It doesn't matter what example site is. If it uses https mubeng throws error but it works on http.

It seems related to https://github.com/kitabisa/mubeng/blob/master/internal/server/handler.go#L121 MitmConnect

same issue.

Hi guys, the patch version for this just rolled out at v0.9.1! Bump yours with mubeng -u. :tada:
Make sure you have the certificate installed in your browser.

Thanks fixed.
Just some note for others who have the same issue:
Installing the der file which is available on $HOST:$MUBENG_PORT/cert or directly from goproxy  will enable using mubeng on https.
You can see here for installing the der file systemwide.

Thanks fixed.
Just some note for others who have the same issue:
Installing the der file which is available on $HOST:$MUBENG_PORT/cert or directly from goproxy will enable using mubeng on https.
You can read here for installing the der file systemwide.

Thanks for help


Links in the book should be collected together online

The book uses shortened URLs, which in aggregate waste the time of readers. I did not see online or in the book a link to a bibliography, so I would suggest using this repo wiki for the purpose and request others to help contribute.
This will also help identify if there are references in the book out of date, or not explicit as intended.

One reason for the shortened URLs is that they can be updated in my .htaccess files, without changing the book.
What do you mean when you say they waste the time of readers?


Rename tinfoil -> tinfoil-core

In preparation for splitting out tinfoil-sign, so we don't link with
libsodium when we don't need to. Motivation is publishing binaries
from zodiac, which shouldn't have any shared library deps apart from
glibc.
No functional changes in this PR.
! @markhibberd

This can probably wait for now actually. No real need for it now libsodium's linked statically.


[SP-6722] Backport of PDI-18336 - Error by inserting a small value on zoom windows of PDI (10.2 Suite)

Original PR: pentaho-kettle#9460
@pentaho/tatooine_dev

 Note:

Frogbot also supports Contextual Analysis, Secret Detection, IaC and SAST Vulnerabilities Scanning. This features are included as part of the JFrog Advanced Security package, which isn't enabled on your system.

🐸 JFrog Frogbot

:white_check_mark: Build finished in 18m 13s
Build command:
mvn clean verify -B -e -Daudit -Djs.no.sandbox -pl ui

:ok_hand: All tests passed!
Tests run: 357, Failures: 0, Skipped: 0    Test Results

:information_source:  This is an automatic message


Bug/stringify params

This PR addresses https://github.com/feathersjs-ecosystem/dataloader/issues/2 as well as some other problems with trying to stringify arbitrary params. Namely, we often run into cyclical errors.
The cacheParamsFn is used to create a cache key for each service call. This library uses a defaultCacheParamsFn when the developer does not pass their own. Previously I tried to be too tricky with this default function, but it is now I belief that this function should be as KISS as possible and make as little assumptions as possible. We can't reliably JSON.stringify(params) without errors or unexpected results (like stringifying a Map).
So it has now been updated to only the return the most common params that would affect a result: authentication, user, provider, query.

@marshallswain and @daffl Do you guys have any opinions on this? I can actually merge this myself but wanted to get some feedback first.

Makes sense.  Looks good.  :shipit:


PNG -> JPG transparent fill color?

 How can I specify the fill color?
Also, I'm using gulp-image-resize with gulp-gm. It's when I resize a PNG and convert it to JPG that the problem happens. What do I need to do here?

Hi, according to this forum post you should be able to control it with something like:
return gmfile
  .fill("white")
  .opaque("none")
  .format("jpg");

I'm afraid you can't control this directly in gulp-image-resize. But you could first run your images through gulp-gm to convert them to jpg, before resizing them. Might not be the most performant option but saves some code ;-)


cannot update Browserlist with instruction from the warning

Whenever I start my project that was created with cookiecutter-plone-starter, I see the following warning:
Browserslist: caniuse-lite is outdated. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme

When I execute npx update-browserslist-db@latest I run into issues.  the command wants to install browserslist using npm, then it tries to install caniuse-lite with npm and that fails with dependency issues and other errors I frankly don't understand.
 npx update-browserslist-db@latest
Browserslist: caniuse-lite is outdated. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
Latest version:     1.0.30001668
Installed version:  none
Removing old caniuse-lite from lock file
Installing new caniuse-lite version
$ npm install caniuse-lite
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving<EMAIL_ADDRESS>npm error Found<EMAIL_ADDRESS>npm error node_modules/react
npm error<EMAIL_ADDRESS>from the root project
npm error
npm error Could not resolve dependency:
npm error peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm error node_modules/react-intl
npm error<EMAIL_ADDRESS>from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /Users/fred/.npm/_logs/2024-10-11T10_40_00_008Z-eresolve-report.txt
npm error A complete log of this run can be found in: /Users/fred/.npm/_logs/2024-10-11T10_40_00_008Z-debug-0.log

Error: Command failed: npm install caniuse-lite
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving<EMAIL_ADDRESS>npm error Found<EMAIL_ADDRESS>npm error node_modules/react
npm error<EMAIL_ADDRESS>from the root project
npm error
npm error Could not resolve dependency:
npm error peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm error node_modules/react-intl
npm error<EMAIL_ADDRESS>from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /Users/fred/.npm/_logs/2024-10-11T10_40_00_008Z-eresolve-report.txt
npm error A complete log of this run can be found in: /Users/fred/.npm/_logs/2024-10-11T10_40_00_008Z-debug-0.log

    at genericNodeError (node:internal/errors:984:15)
    at wrappedFn (node:internal/errors:538:14)
    at checkExecSyncError (node:child_process:891:11)
    at execSync (node:child_process:963:15)
    at updatePackageManually (/Users/fred/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/index.js:233:5)
    at updateDB (/Users/fred/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/index.js:301:5)
    at Object.<anonymous> (/Users/fred/.npm/_npx/2662cbd72e57abb6/node_modules/update-browserslist-db/cli.js:34:5)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Module.load (node:internal/modules/cjs/loader:1288:32)

Problem with `npm install caniuse-lite` call. Run it manually.

Also, after running this the package-lock.json was changed, where caniuse-lite is removed from it:
       }
     },
-    "node_modules/caniuse-lite": {
-      "version": "1.0.30001588",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "CC-BY-4.0"
-    },
     "node_modules/capture-exit": {
       "version": "2.0.0",
       "license": "ISC",
@@ -50782,9 +50764,6 @@
         "lodash.uniq": "^4.5.0"
       }
     },
-    "caniuse-lite": {
-      "version": "1.0.30001588"
-    },

Solved. There was a spurrious package-lock.json in the project root next to the yarn.lock.  browserslist probably checks for that and decided to use npm to install caniuse-lite. Which then fails.  Remove package-lock.json and yarn is used to updat caniuse-lite.


How to update a tree from a Component before its first render?

My React component is given its data ID via props. Baobab tree by that moment may, or may not contain data for the specified key (ID). If that data is missing, Component should place some temporary data into the tree, i.e. {image:"loading.gif"}, and initiate AJAX request to load the real data from remote server. It must also use that temporary data for the very first render.
There are other instances of this Component that might also have same ID. By placing temporary "loading.." data into the tree I want to avoid duplicate requests to the server, when one request for that ID is already pending.
I tried placing the if( !tree.exists(..)) { setLoading(); ajaxRequest(); } code in constructor() (but props are not set there yet); in componentWillMount() (render() still sees the empty state of the tree); inside the branch() call, where cursor is dynamically defined, pointing to the branch specified by the ID – that caused Warning:

setState(...): Cannot update during an existing state transition (such as within render). Render methods should be a pure function of props and state.

Please advice, how can a component affect the tree state before the very first render?

Moved to baobab-react issues.


Add TestHarness.psm1

To run unit/integration tests at once.

This change is

Codecov Report

Merging #26 into dev will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev      #26   +/-   ##
=======================================
  Coverage   73.58%   73.58%
=======================================
  Files           3        3
  Lines         106      106
=======================================
  Hits           78       78
  Misses         28       28

Continue to review full report at Codecov.

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

Is there a reason to add this file?
As I'm obviously happy to have it, but only if it's useful/used.
Are you planning on using it similar to other repos?

Closing as it's useful only if used. Feel free to re-open.


Data fixes for deploy to work correctly

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #2290   👈

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: 🔄 Waiting for checks to pass
This pull request is currently waiting for CI and mergeability checks to pass before being merged.
This comment was auto-generated by Graphite.

Job Reference: 7zq2l7t7DgYPmkkTX6LI


Facebook WCA integration no longer working

https://docs.adobe.com/help/en/audience-manager/user-guide/implementation-integration-guides/integrating-third-party/facebook-wca-integration.html
I believe this documentation page should be removed or not made public, as Facebook no longer allows this integration. The following comment was made by a FB rep
"Adobe is onboarding cookie-based audiences to our platform by passing segment_id as a custom parameter in the Facebook pixel. We also believe this DMP is building cross-publisher audiences by firing a single Facebook pixel across multiple websites. Both of these approaches violate our Facebook Business Tools Terms. We have contacted the DMP regarding this violation. The previous form of the ‘hack’ has been completely removed. At this time, there are no plans for a resolution on the roadmap."

Closing this issue, FB reassured the product team that the integration is working.
Thanks for flagging this, @snielson.


Cannot update with state

I am trying to have the linear gradient change its start and end points based on the intensity of another value. I am trying to change the prop values from
start={[0.5, 0]}
end={[0.5, 0.333333333]}
to
start={[0.5, 0]}
end={[0.5, 0.15]}
during runtime. The intensity is passed in as a prop by parent component object and so this officially doesn't make sense. By intensity I mean the 0.33333 versus 0.15 which is calculated and handed down. I know its not a state issue or that it's not rendering. I have stepped through every single component I have in this process and even put some debugging into your index.ios.js file in the node_modules folder and sure enough all values are making it into your {...otherProps} var just fine. I also have tried hard coding in those values and directly injecting them into a click action and still no go. I have NO IDEA why this is happening. So far out of a large app this is the only component that is not changing based on interactions.
Thoughts?

I have officially tried every combination of state or class level members to inject into the start and end props and no matter what they never ever change after the instantiation process. I cannot find where you have put this in your code so that it doesn't update but are you able to fix this?
If not I will be forced to try another plugin :(

@goredefex I'm currently having the same issue: when updating the props colors and locations it gets rerendered, but when updating the props start and end it's completely ignored.
I worked around this issue by updating the key prop, to ensure it's rerendered - not ideal.
I'm using version 1.5.15. I will upgrade to the latest version 2.0.0 and will let you know if it fixes this issue.

I can confirm version 2.0.0 does update props start and end as expected.
You should use objects instead of arrays now. Eg: start={{ x: 0, y:0 }} and end={{ x: 0, y:0 }}.
I believe this issue is fixed and can be closed.

yes thank you it is finally working for me now, much appreciated


Filetypes should not set format options

Describe the bug
Many filetypes set local values for the formatoptions setting. This setting is a user preference and I don't see why filetypes should dictate this.
To Reproduce
Number of filetypes which set formatoptions
$ grep -lE 'formatoptions(\-|\+)=' runtime/ftplugin/* | wc -l
126

Number of filetypes which do not.
$ grep -LE 'formatoptions(\-|\+)=' runtime/ftplugin/* | wc -l
97

Expected behavior
For the formatoption not to change based upon filetype.
Environment (please complete the following information):

Vim version: Any
OS: N/A
Terminal: N/A

Additional context
I'm aware that these files have maintainers but given how common the removal of t and the addition of croql from the formatoptions setting is I suspect this sort of thing is simply being copy/pasted.
grep -hE 'formatoptions(\-|\+)=' runtime/ftplugin/* | tr ' ' '\n' | sort | grep formatoptions | uniq -c | sort -rn | head -5
    110 formatoptions-=t
     87 formatoptions+=croql
      4 formatoptions-=tcroq
      4 formatoptions+=l
      3 formatoptions+=tcqln

Describe the bug
Many filetypes set local values for the formatoptions setting. This
setting is a user preference and I don't see why filetypes should
dictate this.

It is both a user preference and bound to the language.  Many filetypes
have mandatory or preferred ways of formatting.  E.g. in a Makefile a
Tab must be used before a command.  In Python Tabs should be expanded to
avoid trouble with indenting.
Often this is a matter of taste, it needs to be discussed per filetype,
there is no one solution that applies everywhere.
Also, you can override settings you don't like or prefer otherwise.

To Reproduce
Number of filetypes which set formatoptions
$ grep -lE 'formatoptions(\-|\+)=' runtime/ftplugin/* | wc -l
126

Number of filetypes which do not.
$ grep -LE 'formatoptions(\-|\+)=' runtime/ftplugin/* | wc -l
97

Expected behavior
For the formatoption not to change based upon filetype.
Environment (please complete the following information):

Vim version: Any
OS: N/A
Terminal: N/A

Additional context
I'm aware that these files have maintainers but given how common the
removal of t and the addition of croql from the formatoptions
setting is I suspect this sort of thing is simply being copy/pasted.
grep -hE 'formatoptions(\-|\+)=' runtime/ftplugin/* | tr ' ' '\n' | sort | grep formatoptions | uniq -c | sort -rn | head -5
    110 formatoptions-=t
     87 formatoptions+=croql
      4 formatoptions-=tcroq
      4 formatoptions+=l
      3 formatoptions+=tcqln

Please approach the individual maintainers.  They need to make any
change and send the updated file to me.
--
Q: How does a UNIX Guru pick up a girl?
A: look; grep; which; eval; nice; uname; talk; date;
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Oh yes I full agree with things like hard tabs for Makefiles and correct spacing for Python. I was specifically focusing on the formatoptions setting which is purely preferential.
Understood that this is down to the maintainers of the individual filetypes, closing.


Add Flutter Courses

Follow the guidelines in 'How To Contribute' section of README.md
and add a course that you've taken before or would like to recommend to others, related to flutter.

Can I contribute into this??

Sure @ashandilya . There's no need to assign the issue, go ahead and make a PR. Goodluck ! ✨


Default to https

The current default URL uses HTTP, this should probably default to HTTPS

Ready for review.

:+1:


Project still active?

Trying to add MU-migration via command line, and continue to get this error. In my vagrant box I was able to allot more memory via VirtualBox. On a real life server I have limited knowledge (but sudo privileges), yet I keep running into roadblocks. The most common error:
PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 33554432 bytes) in phar:///usr/local/bin/wp/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 126

found a solution - was using older version of RedHat and allotting more memory to php.ini along with installing helper apps enabled me to get this installed...but lets get a progress report on this MU thing!!

Hi @Chuckworld thanks for reporting this. I'll try to replicate this issue. Can you let me know which PHP version and WP-CLI you were using?

I was able to replicate the issue and it is happening to any wp-cli package. Turns out this is a common issue with wp-cli: https://make.wordpress.org/cli/handbook/common-issues/#php-fatal-error-allowed-memory-size-of-999999-bytes-exhausted-tried-to-allocate-99-bytes
I'll add a note to the README.


virt-launcher, migration: Protect the setup using a lock, fix some missing operations and refactor the code

What this PR does / why we need it:
Operations on the domain which involve its state change are protected
from concurrent access using a domain-modify-lock (mutex).
In the migration setup stage, currently two operations are affecting the
domain state:

Detaching of SR-IOV devices.
Preparing migration parameters (which includes the domxml)

These operation need to be protected from change of the domain and
therefore the domain-modify-lock is added.
As part of this journey, a refactoring was needed to avoid double-locking.
In addition, some small fixes have been added:

Report migration status on all failures.
Abort the detach operation in case of failure.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
In order to follow the changes, it is recommended to review this change one commit at a time.
Release note:
NONE

This change makes sense to me.
Let's see that all tests pass.

/cc @AlonaKaplan

/approve

change: rebase

change:

Renamed the error variable and scoped it in the if statement to make it less confusing (with the returned named one).
Moved the comment about the proxy to the function.

change: Rebase

change: Rebase

Ahh, will need this again as the PR which required this will get reverted soon.

/lgtm

change: Rebase

/lgtm

/retest

/retest

/retest

/retest


Add support for footnotes

Have been added last year https://github.blog/changelog/2021-09-30-footnotes-now-supported-in-markdown-fields/

Ah, sorry. Wrong repo, I guess. https://github.com/markedjs/marked/issues/714. Should have looked first

If it is not the responsibility of the parser(marked), perhaps it should be implemented here.

I think we should probably give it our best shot knowing that it won't be perfectly the same as GitHub (as with math rendering). We can fix bugs as they arise. I'll play around with footers and maybe make a PR if I have time.


Support markdown-style emojis, remove 'home' heading on home page

What's changed:

Support for markdown emojis
Removal of unhelpful 'Home' heading on home page

Admonitions
I spent ages trying to figure out what admonition syntax the wiki was using, to resolve visual problems like this:

then I eventually realised that it was just an emoji. The combination of quoting and an emoji makes a home-rolled admonition effect.
It would be nice to support admonitions, using something like https://www.gatsbyjs.com/plugins/gatsby-remark-admonitions/, but that would break wiki compatibility, so I won’t consider it now. It would also be possible to detect quote+emoji and apply more sophisticated styling.
Headings
I removed the 'Home' heading on the front page, because it looked silly:

For the moment, I left it on the other pages. The headings have value on most pages, but we need to bump the 'level' of all the other pages down one so we don't get things like this:

I haven't done that in this work item, though.

Let's wait until the preview is ready before merging this


New build script creates too many directories at home

When building with develop branch, new build script creates too many directories such as src, opt, var, etc, bin and data. The paths are hard-coded with $HOME, so it's inconvenient to change them. If all they are necessary, it would be better that all directories are included under single directory like $HOME/eosio.

We’re looking into potentially doing the folder isolation per our major versions, but for now the isolation (as much as possible) into $HOME is to prepare for future non-root installation.

I

Totally understand. We want folks to move to using our OS specific packages instead of the build scripts (they are mostly used for our CI/CD automated build/testing). Regardless, I believe you’ll soon see more flexibility and organization in the build scripts to meet your needs.

I'm also really annoyed that building clutters up my home directory.  Build also failed.  gzip: stdin: not in gzip format.  Did building have any other side effects like this?  If I build with sudo does that work differently?

@sgehrman Building with sudo makes it worse.  All the same directories and files are created, but now they're owned by root.

The next version of the build scripts will take care of this and several other community concerns.


BTicino 4695 4-Zone Thermostat - Temperature Resolution +/- 0.5°

Dear Angelo,
First of all I'd like to thank you for having coded such a fantastic Homebridge plugin for BTicino.
I'm successfully running it on my Raspberry PI 3 B+ and my BTicino MyHome plant made of an F454 web server and mainly a scenario F420 module and a 4695 4-Zone Thermostat with 3 Thermostat display 4691.
I've got 6 scenarios managed by F420 and all of them works properly in Homekit app.
Thermoregulation properly works as well for the four zones, the only thing that seems to me odd is that Homekit resolution for Temperatures should be +/- 0.1 °C but the Home app on my iPhone \ iPad shows Temperatures (both ambient and setpoint) with a +/-0.5 °C.
Is this a limit of this Homebridge plugin ? Or is there a way to get +/- 0.1 °C resolution ?
Thank you

Addendum: to be more precise, yuo can set setpoints with +/-0.5 °C resolution and so they are properly shown with +/-0.5 °C resolution in Home app, but Ambient (zone) temperatures are measured and then read with a +/-0.1 °C resolution but unfortunately they are shown in Home app with +/-0.5 °C resolution.
Thank you


Show possible Metal NER

This will not be ready the merging for quite some time.  I just find it very convenient to discuss proposed changes in a PR.
@vikas95 , given that I'm not barely aware of what you're up to, here are changes that might make its integration possible.  See eidos.conf for where the model files might be placed.  Then see EidosProcessor.newRecognizeNamedEntities.  This may or may not be the right place to put it.  I was hoping that whatever goes here would be compatible with what happens in GeoNormFinder.  If not, one or both should be changed.  In other words, they probably need to be coordinated.  HTH.  You might update this branch with your progress.

LGTM Keith. Thanks a lot!
I don't see the resource file name for the CompactWordEmbeddings. I am assuming you use the one with the frequency threshold > 10?

I only made the minimal changes in class names to get it to compile, so it is still using the full glove embeddings file.  I'd make the file name change in a separate PR so that it's more obvious what the cause is for changes in output.  Perhaps there's also a grounding test that I can rerun.

Also, @vikas95: please add unit test(s) to make sure that the LOC NER produces the expected LOC entities on several sentences.

Just a heads up...  It was my impression that the test was failing (prematurely) because the model wasn't available.  The PR was holding, waiting for it to be added.  There may be other problems, but I ran the code up to that point and then couldn't continue, at least not yet.

@vikas95, that ${EidosSystem.path} is defined earlier in the file, so "/org/clulab/wm/eidos/english" and the files start in src/main/resources.  In total, it describes files in "src/main/resources/org/clulab/wm/eidos/english".
EidosSystem {
  language = english
  domain = wm
  path = /org/clulab/${EidosSystem.domain}/eidos/${EidosSystem.language}

@vikas95, it is loading the model, so that is integrated.  The code in newRecognizeNamedEntities seems at first glance to be wrong.  This is where I was just guessing.  You can probably fix it.  Run any of these tests to see what's going wrong:
[error] Error during tests:
[error] 	org.clulab.wm.eidos.text.english.raps.TestRaps
[error] 	org.clulab.wm.eidos.serialization.obj.TestSerialization
[error] 	org.clulab.wm.eidos.serialization.jsonld.TestJLDFormat
[error] 	org.clulab.wm.eidos.system.TestEntityFinder
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc5
[error] 	org.clulab.wm.eidos.serialization.jsonld.TestJLDSerializer
[error] 	org.clulab.wm.eidos.text.english.raps.TestRaps1
[error] 	org.clulab.wm.eidos.text.english.cag.TestCags
[error] 	org.clulab.wm.eidos.system.TestGlobalAction
[error] 	org.clulab.wm.eidos.system.TestParallel
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc8
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP1
[error] 	org.clulab.wm.eidos.text.english.cag.TestExtraText
[error] 	org.clulab.wm.eidos.serialization.TestDocSerialization
[error] 	org.clulab.wm.eidos.text.TestImplicitText
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP0
[error] 	org.clulab.wm.eidos.serialization.txt.TestTxtSerialization
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc2
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP4
[error] 	org.clulab.wm.eidos.system.TestHedging
[error] 	org.clulab.wm.eidos.text.TestDocumentFilter
[error] 	org.clulab.wm.eidos.system.TestEidosTokenizer
[error] 	org.clulab.wm.eidos.serialization.jsonld.TestJLDDeserializer
[error] 	org.clulab.wm.eidos.text.TestUnicode
[error] 	org.clulab.wm.eidos.text.english.cag.TestEidosMention
[error] 	org.clulab.wm.eidos.serialization.json.TestJSONSerializer
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc3
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc6
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP3
[error] 	org.clulab.wm.eidos.system.TestSerial
[error] 	org.clulab.wm.eidos.system.TestNegation
[error] 	org.clulab.wm.eidos.rule.TestJointAdjectives
[error] 	org.clulab.wm.eidos.system.TestCorefHandler
[error] 	org.clulab.wm.eidos.system.TestDomainOntology
[error] 	org.clulab.wm.eidos.system.TestCachedDomainOntology
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc1
[error] 	org.clulab.wm.eidos.system.TestGeonorm
[error] 	org.clulab.wm.eidos.system.TestAttachmentHandler
[error] 	org.clulab.wm.eidos.system.TestSaxon
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc4
[error] 	org.clulab.wm.eidos.text.english.grounding.TestGrounding
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc0
[error] 	org.clulab.wm.eidos.system.TestEidosProcessor
[error] 	org.clulab.wm.eidos.test.TestTest
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP6
[error] 	org.clulab.wm.eidos.groundings.TestOntologyGrounder
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP2
[error] 	org.clulab.wm.eidos.utils.TestMentionUtils
[error] 	org.clulab.wm.eidos.system.TestEidosActions
[error] 	org.clulab.wm.eidos.text.english.cag.TestCagP5
[error] 	org.clulab.wm.eidos.system.TestFiltering
[error] 	org.clulab.wm.eidos.text.english.eval6.TestDoc7
[error] (Test / test) sbt.TestsFailedException: Tests unsuccessful

@vikas95: please make sure that unit tests pass. Thanks!

Vikas and I met and In the meantime I've been tentatively convinced that my code is in the wrong place.  It depends on a lot on what the model has been trained to do, but it sounds like it better matches things happening in GeoNormFinder.find().  He's checking out some things and if they work, this PR will be abandoned.  If someone knows better, don't hesitate to set me straight.

What do you have in mind?

I have replaced the old GeoLocationExtractor (https://github.com/clulab/geonorm/blob/08bcaf05f55ff2806cde40d5df569be872f50459/src/main/scala/org/clulab/geonorm/GeoNorm.scala#L37) with the MetalNER ensuring that it generates the same output format (entity_word_start_indexes and entity_word_end_indexes).
I will commit the local changes in a new branch and start a pull request from there (suggested by @kwalcock).

Perhaps I had better ask.  If this new metal version is meant to deal with all sorts of named entities and replace the NER from FastNLPProcessor, then EidosEnglishProcessor is a good place to put it.  If it only deals with locations and replaces or patches up the results from FastNLPProcessor, then it might better be in GeoNormFinder or GeoNorm.  I was thinking it did the former and that performing NER twice would not be good.

at least short term, it's the latter.

@vikas95 or @vikasy stand by for a PR in which some things are moved around.  Thanks.


sendBranchEvent callback is not invoked

I'm calling sendBranchEvent in the same way as the example posted here: https://docs.branch.io/apps/cordova-phonegap-ionic/#track-commerce
However, the promise never resolves on Android (I haven't tested iOS yet).  The issue seems to be that the callback was commented out:
https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking-attribution/blob/master/src/android/io/branch/BranchSDK.java#L810
If the callback is not supposed to fire, please update the docs. Actually -- the README still uses Branch.sendCommerceEvent, which is deprecated according to the code (https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking-attribution/blob/master/src/index.js#L169).
Additionally, I noticed that the parameter checks for this method (and others) look incorrect (https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking-attribution/blob/master/src/android/io/branch/BranchSDK.java#L148):
// this will never fire! Should be OR rather than AND?
if (args.length() < 1 && args.length() > 2) {
    callbackContext.error(String.format("Parameter mismatched. 1-2 is required but %d is given", args.length()));
    return false;
}

Hi @phiferd
Did you find any solution for this? Is anyone fixing this issue?
Additionally i tried firing the event from Android but it never reaches the branch dashboard. I have tested in iOS and it is getting tracked. Following is the snippet of my code:
Branch.initSession(event).then(function success(res) {             console.log("initSession Success " + res);             Branch.disableTracking(false).then(function success(res) {                 console.log("disableTracking Success " + JSON.stringify(res));                 Branch.setCookieBasedMatching("xyz.app.link").then(function success(res) {                     console.log("setCookieBasedMatching Success " + JSON.stringify(res));                     Branch.setIdentity("999999999").then(function (res) { // For Test                         console.log('setIdentity Success: ' + JSON.stringify(res));                         Branch.getStandardEvents().then(function success(res) {                             console.log('getStandardEvents Success' + JSON.stringify(res));                             var event = res.STANDARD_EVENT_COMPLETE_REGISTRATION;                             Branch.sendBranchEvent(event).then(function success(res) {                                 console.log("Event Success " + JSON.stringify(res));                             }).catch(function error(err) {                                 console.log("Event Error " + err);                             });                         }).catch(function (err) {                             console.log('getStandardEvents Error: ' + JSON.stringify(err.message));                         })                     }).catch(function (err) {                         console.log('setIdentity Error: ' + JSON.stringify(err.message));                     });                 }).catch(function error(err) {                     console.log("setCookieBasedMatching Error " + err);                 });             }).catch(function error(err) {                 console.log("disableTracking Error " + err);             });         }).catch(function error(err) {             console.log("initSession Error " + err);         });
Anything I could be doing wrong?

I can confirm that the callbacks are not invoked when using the sendBranchEvent method.
When using this code the event is being sent properly to Branch's dashboard, but callbacks are not being executed:
BranchStandardEvent() {

    const Branch = window["Branch"];
    Branch.getStandardEvents().then(function success(res) {
      var event = res.STANDARD_EVENT_ADD_TO_CART;

      var metadata = {
        transactionID: '12344555',
        currency: 'USD',
        revenue: 1.5,
        shipping: 10.2,
        tax: 12.3,
        coupon: 'test_coupon',
        affiliation: 'test_affiliation',
        description: 'Test add to cart event',
        searchQuery: 'test keyword',
        customData: {
          "Custom_Event_Property_Key1": "Custom_Event_Property_val1",
          "Custom_Event_Property_Key2": "Custom_Event_Property_val2"
        }
      };
      Branch.sendBranchEvent(event, metadata).then(function success(res) {
        alert("Branch Event success " + res);
      }).catch(function error(err) {
        alert("Branch Event " + err);
      });
    }).catch(function error(err) {
      alert("Get Standard Event " + err);
    });
  }

Yes this causes issues in our app as well.

I can repro this too, seeing the same thing...

We have the same issue too

Same here :frowning_face:

@echo-branch, do you know if there's a ticket already created for this issue? Thanks 🙂

@sebaferreras  Adding a ticket for this.  The iOS and Android apis are fire and forget.  We should have just called the JS back with a success as soon as the event queued to native code.

@echo-branch is there any update on this issue? Thanks.


Do not use docker to run native tests

Fwiw, the issue has been in fixed in <IP_ADDRESS> (see https://www.graalvm.org/docs/release-notes/19_2/#19201)


Delete 404 mods

Deprecated entire repository so all files result in 404
Deleted all USI-MKSLite and USI-UKS-Shared files because they all result in a 404 and they will not come back.

We could point them at their Internet Archive links (we should get to writing that logic into the client).
https://archive.org/details/kspckanmods?&and[]=mkslite
But if they depend on the shared files, then it's kinda hosed as those are restricted :-(

Roverdude has made it clear that he doesn't want CKAN installing old versions of his mods. We will respect his wishes.


CLI install broken?

Describe the bug
First time trying to install and run maestral...

~$ maestral --help
Traceback (most recent call last):
  File "/home/house/.local/bin/maestral", line 7, in <module>
    from maestral.cli import main
  File "/home/house/.local/lib/python3.5/site-packages/maestral/cli.py", line 226
    ctx.fail(f'Configuration \'{value}\' does not exist. You can list\n'
                                                                       ^
SyntaxError: invalid syntax

To Reproduce
Just trying to install and use for the first time.
Had to upgrade pip since I'm running 16.04
~$ python3 -m pip install --upgrade maestral     (this failed)
~$ sudo apt-get install python3-pip
~$ python3 -m pip install --upgrade maestral

Expected behaviour
CLI working
System (please complete the following information):

Maestral version: latest
OS: Ubuntu 16.04
Desktop environment: CLI
Qt version:

Let me know if you need any additional information!

It looks like you are using Python 3.5. Unfortunately, Maestral requires Python 3.6 or higher and the line which raises the error does contain syntax which is invalid in Python 3.5 ("f-strings").

Closing because Python 3.5 will not be added. However, proper Python version checks have been added to the installer.