Overall project discussion

This thread serves as an open discussion to features, implementation details and misc stuff related to the CLI project.
I will keep the section below updated to what we have agreed upon.
TODO

I usually use the following modules to create CLI's:

yargs for arguments processing and help usage
update-notifier to notify CLI updates

Answering some of your points in https://github.com/npms-io/npms-api/issues/23#issuecomment-225459797

linting rules: eslint + @satazor/eslint-config
test runner: mocha
assertion style: chai expect
workflow: gitflow
test structure: it really depends, but I usually do multiple expects in the same test
one assertion per test? multiple assertions per test?
BDD

What are your thoughts?

Regarding creating a SDK layer, I don't really know.. It's one more piece of software to maintain and it will leak the abstraction. For instance, if the search response changes from a flat list to a nested list, you might want to return the new nested list instead of the flat list, e.g.:
[{ name: 'jquery', version: '2.0.0', score: .., searchScore: ... }]  // flat list
[{ name: 'jquery', version: '2.0.0'}, score: ...,  searchScore: ...}] // nested list

Not doing so, will introduce discrepancies between the API and the SDK which will lead to confusion. Of course we could have proper versioning of the SDK but, without resorting to deprecation, we would need to maintain a lot of output various for the endpoints.

I don't see the SDK as just "one more piece of software to maintain", as much as I see it being the driver for all client and server communication decisions.
In this way, the SDK changes are proposed first, then server and client changes proposed to match the SDK. This avoids any desyncing issues.
SDK can mean a lot of things, of course from a.) A full-blown Object Oriented Data Abstraction Layer, to z.) A simple communications abstraction for speaking with the server.
I am proposing the latter: a simple communications abstraction so that when you make changes to the server's request/response pattern, you can gracefully issue a patch and even eventually support legacy API versions for applications that integrate early.

discrepancies between the API and the SDK

If you make the SDK the driver, then this cannot happen. Feature changes are proposed in the SDK first, then subsequent proposals are made for both the client and server to match the SDK.

@dcrockwell the thing is that not everyone will be using the SDK, especially the ones using other languages other than JS.

We will need to support every single change we make to the API, so that we do not break the SDK output. This will easily become very tedious :s

I'm thinking in terms of the CLI.
Writing a CLI against raw REST requests will still require an object to centralize all of the calls, or it will have decentralized remote calls spaghetti'd throughout which is not ideal for workflow (especially if you're expecting changes).
If an object needs to be written to perform the REST requests anyways, doesn't it make sense to modularize that component so that it can be used as an easy form of integration for anybody using the primary language this search serves?
Otherwise, we just have an object we still have to maintain, but it's not useful outside of the CLI.

@dcrockwell I agree with you as long as we don't have to be backwards compatible in terms of the responses. This means that the SDK will be a simpler way to consume the API. Everytime the response is incompatible we need to bump the major version and deprecated the old one.

Created: https://github.com/npms-io/npms-api-client

@satazor Sounds like a good initial plan.
Perhaps "npms-node", so that "npms-python" and more could be made in the future?
It may be a bit early to consider it, but looking into automating this layer with something like Swagger.io may be beneficial:

it can be automatically generated the SDK in any language the project wants
there's a single place to make changes for all languages generated, instead of maintaining many repos

linting rules: eslint + @satazor/eslint-config
test runner: mocha
assertion style: chai expect
workflow: gitflow
test structure: it really depends, but I usually do multiple expects in the same test
BDD

Sounds good for everything except I suggest switching to a single assertion per test. It's only slightly more verbose and provides a standard for assertions. When there are more than one assertion in a single test, it can sometimes lead to ambiguous results on summaries, and extra work for the developer to figure out which assertion is failing.

Perhaps "npms-node", so that "npms-python" and more could be made in the future?

It may be a bit early to consider it, but looking into automating this layer with something like Swagger.io may be beneficial:

it can be automatically generated the SDK in any language the project wants
there's a single place to make changes for all languages generated, instead of maintaining many repos

I have never used swagger, did you? Do you think its good? My only concern is if we are overcomplicating things.

Sounds good for everything except I suggest switching to a single assertion per test. It's only slightly more verbose and provides a standard for assertions. When there are more than one assertion in a single test, it can sometimes lead to ambiguous results on summaries, and extra work for the developer to figure out which assertion is failing.

SGTM, the tests for the CLI will be simple. Regarding coverage, I use istanbul and coveralls.

I have not used Swagger or anything like it, really. I've just heard some rumors about it being good for this sort of thing.
I'm 100% with you on taking the Amish approach to technological adoption: if it makes things convenient at the expense of overly complicating another aspect of life, it should be rejected.
If automating this layer is more trouble than it's worth, it should be disregarded, but perhaps it's worth an hour of research to know that for sure.

If automating this layer is more trouble than it's worth, it should be disregarded, but perhaps it's worth an hour of research to know that for sure.

Alright, will you try it out and report back?

SGTM, the tests for the CLI will be simple. Regarding coverage, I use istanbul and coveralls.

Perfect. We have an identical testing stack.
I think 100% coverage is the only coverage worth going for, unless you can identify with certainty that only specific key parts warrant testing, and the other specific parts do not.
Plus, "86.2%" coverage doesn't have much meaning to anybody.

That said, there are certain aspects of testing a CLI which call into question what constitutes 100% coverage, as istanbul cannot instrument the CLI code from what I can see.

That said, there are certain aspects of testing a CLI which call into question what constitutes 100% coverage, as istanbul cannot instrument the CLI code from what I can see.

You are right, but if the CLI bin is simply enough to call functions based on the commands, perhaps it doesn't need to be tested. If you still need to test it, I think there was a module that does what you want, and I think that AVA uses it.

Yeah, this CLI will be simpler than others. It won't require much more than some basic integration testing for: help(-h,--help), version (-V,--version), that errors passed from the library are thrown, and that each function has basic coverage against errors.

Any thoughts on commander over yargs?
A good argument in favor of the SDK is that it's easier to unit test the SDK then E2E test the CLI with some unit tests here and there.

I have had so many troubles with commander in the past that I've totally gave up..I can't remember them exactly but they were so frustrating..

Any thoughts on commander over yargs?

commander has some advantages when creating complex "git-like" interfaces, but ends up being high-calorie sugar for super-simple CLIs like I presume this one to be.
(@satazor perhaps defining what the CLI features will be can be the next step.)

it's easier to unit test the SDK then E2E test the CLI with some unit tests here and there.

In my experience, CLI testing is black-boxed, so the choice of CLI library is inconsequential to testing.
https://github.com/tj/commander.js/issues/438

@dcrockwell I see two essential features for launch:

search of modules
get collected, evaluation and score info of a given module

We don't need to do any offline support for now.

@satazor Excellent. Let's begin nailing down exactly how we envision it looking from the CLI. Does this look about right to you as a first stake in the ground?
Basic Search:
$ npms search mrt

Searching {search url here}..
1 package found!

<EMAIL_ADDRESS>
Partial Search:
$ npms search mr

Searching {search url here}..
3 packages found!

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
JSON output:
Actually this section poses an issue. What format will the JSON take, and what's best for future growth?
I personally think this may be a job for http://jsonapi.org/. It has built-in considerations for relationships, meta-data, and pagination.
Any standard like it would work, but it's the only one I know of so far.
$ npms search mrt --json
{
    ???
}

Opt-Out:
Not sure how this would be handled.

Whats the difference between basic and partial search?

$ npms search mrt

Searching {search url here}..
667 packages found!

<EMAIL_ADDRESS><score> <repo>
...

$npms info jquery

{
   collected: { metadata: {}, github: {}, ... },
   evaluation: {},
   score: {}
}

Regarding the --json option: when you are rendering a template, you specify an object which contains the data to be interpolated. The --json option spits that data directly.. thats how I envision it.

Whats the difference between basic and partial search?

Nothing. Just two examples to show full and partial searching with the same interface without the need for wildcards.

The --json option spits that data directly

I think there's a need for both a human-readable and machine-readable interface, and that JSON does not fit both use cases well.
So, I would prefer something similar to this:
$ npms info jquery
<EMAIL_ADDRESS>
Score: 2.4
Evaluation:
    coverage: 100%
    lines: 268
    size: 10kb

$ npms info jquery --json
{
   collected: { metadata: {}, github: {}, ... },
   evaluation: {},
   score: {}
}

Perhaps the concept of reporters should be built in from the get-go?

@dcrockwell yes, that was an example.. we could use something like https://www.npmjs.com/package/print-object or https://www.npmjs.com/package/purdy for the human readable output of npms info

Perhaps the concept of reporters should be built in from the get-go?

@dcrockwell as long as it is simple.. I don't want to complicate things too much

@satazor print-object looks good. Purdy has nice colors. If their powers could combine...

as long as it is simple.. I don't want to complicate things too much

We've already established that we're a techno-amish village :D

Here's all the info that we have for npms info cross-spawn for reference:
{
   "startedAt": "2016-06-10T21:12:41.268Z",
   "finishedAt": "2016-06-10T21:12:45.502Z",
   "collected": {
       "metadata": {
           "name": "cross-spawn",
           "version": "4.0.0",
           "description": "Cross platform child_process#spawn and child_process#spawnSync",
           "keywords": [
               "spawn",
               "spawnSync",
               "windows",
               "cross",
               "platform",
               "path",
               "ext",
               "path-ext",
               "path_ext",
               "shebang",
               "hashbang",
               "cmd",
               "execute"
           ],
           "date": "2016-05-26T20:50:45.929Z",
           "publisher": {
               "username": "satazor",
               "email"<EMAIL_ADDRESS>           },
           "maintainers": [
               {
                   "username": "satazor",
                   "email"<EMAIL_ADDRESS>               }
           ],
           "author": {
               "name": "IndigoUnited",
               "email"<EMAIL_ADDRESS>               "url": "http://indigounited.com"
           },
           "repository": {
               "type": "git",
               "url": "git://github.com/IndigoUnited/node-cross-spawn.git"
           },
           "links": {
               "npm": "https://www.npmjs.com/package/cross-spawn",
               "homepage": "https://github.com/IndigoUnited/node-cross-spawn#readme",
               "repository": "https://github.com/IndigoUnited/node-cross-spawn",
               "bugs": "https://github.com/IndigoUnited/node-cross-spawn/issues/"
           },
           "license": "MIT",
           "dependencies": {
               "lru-cache": "^4.0.1",
               "which": "^1.2.9"
           },
           "devDependencies": {
               "@satazor/eslint-config": "^2.3.0",
               "eslint": "^2.10.2",
               "expect.js": "^0.3.0",
               "glob": "^7.0.0",
               "mkdirp": "^0.5.1",
               "mocha": "^2.2.5",
               "rimraf": "^2.5.0"
           },
           "releasesFrequency": [
               {
                   "from": "2016-05-17T00:00:00.000Z",
                   "to": "2016-06-16T00:00:00.000Z",
                   "count": 4
               },
               {
                   "from": "2016-03-18T00:00:00.000Z",
                   "to": "2016-06-16T00:00:00.000Z",
                   "count": 7
               },
               {
                   "from": "2015-12-19T00:00:00.000Z",
                   "to": "2016-06-16T00:00:00.000Z",
                   "count": 12
               },
               {
                   "from": "2015-06-17T00:00:00.000Z",
                   "to": "2016-06-16T00:00:00.000Z",
                   "count": 20
               },
               {
                   "from": "2014-06-17T00:00:00.000Z",
                   "to": "2016-06-16T00:00:00.000Z",
                   "count": 42
               }
           ],
           "hasTestScript": true,
           "readme": "bla bla.."
       },
       "npm": {
           "downloads": [
               {
                   "from": "2016-06-09T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 54342
               },
               {
                   "from": "2016-06-03T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 315468
               },
               {
                   "from": "2016-05-11T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 1201910
               },
               {
                   "from": "2016-03-12T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 4573329
               },
               {
                   "from": "2015-12-13T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 9094614
               },
               {
                   "from": "2015-06-11T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 15751560
               }
           ],
           "dependentsCount": 185,
           "starsCount": 11
       },
       "github": {
           "starsCount": 81,
           "forksCount": 13,
           "subscribersCount": 12,
           "issues": {
               "count": 35,
               "openCount": 1,
               "distribution": {
                   "3600": 9,
                   "10800": 3,
                   "32400": 3,
                   "97200": 6,
                   "291600": 4,
                   "874800": 2,
                   "2624400": 5,
                   "7873200": 1,
                   "23619600": 2,
                   "70858800": 0,
                   "212576400": 0
               },
               "isDisabled": false
           },
           "contributors": [
               {
                   "username": "satazor",
                   "commitsCount": 120
               },
               {
                   "username": "BigstickCarpet",
                   "commitsCount": 4
               },
               {
                   "username": "timdp",
                   "commitsCount": 2
               },
               {
                   "username": "greenkeeperio-bot",
                   "commitsCount": 1
               },
               {
                   "username": "typicode",
                   "commitsCount": 1
               },
               {
                   "username": "ForbesLindesay",
                   "commitsCount": 1
               },
               {
                   "username": "kevva",
                   "commitsCount": 1
               },
               {
                   "username": "knpwrs",
                   "commitsCount": 1
               }
           ],
           "commits": [
               {
                   "from": "2016-06-03T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 0
               },
               {
                   "from": "2016-05-11T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 11
               },
               {
                   "from": "2016-03-12T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 19
               },
               {
                   "from": "2015-12-13T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 38
               },
               {
                   "from": "2015-06-11T00:00:00.000Z",
                   "to": "2016-06-10T00:00:00.000Z",
                   "count": 71
               }
           ],
           "statuses": [
               {
                   "context": "continuous-integration/appveyor/branch",
                   "state": "success"
               },
               {
                   "context": "continuous-integration/travis-ci/push",
                   "state": "success"
               }
           ]
       },
       "source": {
           "files": {
               "readmeSize": 2759,
               "testsSize": 23602,
               "hasNpmIgnore": true,
               "hasShrinkwrap": false
           },
           "repositorySize": 39216,
           "linters": {
               "general": [
                   "editorconfig"
               ],
               "js": [
                   "eslint"
               ]
           },
           "badges": [
               {
                   "urls": {
                       "original": "http://img.shields.io/npm/dm/cross-spawn.svg",
                       "shields": "https://img.shields.io/npm/dm/cross-spawn.svg",
                       "content": "https://img.shields.io/npm/dm/cross-spawn.json"
                   },
                   "info": {
                       "service": "npm",
                       "type": "downloads",
                       "modifiers": {
                           "type": "dm"
                       }
                   }
               },
               {
                   "urls": {
                       "original": "http://img.shields.io/npm/v/cross-spawn.svg",
                       "shields": "https://img.shields.io/npm/v/cross-spawn.svg",
                       "content": "https://img.shields.io/npm/v/cross-spawn.json"
                   },
                   "info": {
                       "service": "npm",
                       "type": "version",
                       "modifiers": {
                           "type": "v"
                       }
                   }
               },
               {
                   "urls": {
                       "original": "http://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg",
                       "service": "https://api.travis-ci.org/IndigoUnited/node-cross-spawn.svg?branch=master",
                       "shields": "https://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg",
                       "content": "https://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.json"
                   },
                   "info": {
                       "service": "travis",
                       "type": "build",
                       "modifiers": {
                           "branch": "master"
                       }
                   }
               },
               {
                   "urls": {
                       "original": "https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg",
                       "service": "https://david-dm.org/IndigoUnited/node-cross-spawn.svg",
                       "shields": "https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg",
                       "content": "https://img.shields.io/david/IndigoUnited/node-cross-spawn.json"
                   },
                   "info": {
                       "service": "david",
                       "type": "dependencies",
                       "modifiers": {
                           "statusType": "normal"
                       }
                   }
               },
               {
                   "urls": {
                       "original": "https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg",
                       "service": "https://david-dm.org/IndigoUnited/node-cross-spawn/dev-status.svg",
                       "shields": "https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg",
                       "content": "https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.json"
                   },
                   "info": {
                       "service": "david",
                       "type": "dependencies",
                       "modifiers": {
                           "statusType": "dev"
                       }
                   }
               }
           ]
       }
   },
   "evaluation": {
       "quality": {
           "carefulness": 1,
           "tests": 0.85,
           "dependenciesHealth": 1,
           "branding": 0.6
       },
       "popularity": {
           "communityInterest": 125,
           "downloadsCount": 1524443,
           "downloadsAcceleration": 1069.845547945204,
           "dependentsCount": 185
       },
       "maintenance": {
           "recentCommits": 1,
           "commitsFrequency": 0.9573424657534246,
           "openIssues": 1,
           "issuesDistribution": 0.982274025974026
       }
   }
}

print-object looks good. Purdy has nice colors. If their powers could combine...

The good news is that we can now use npms to search for a good module https://npms.io/search?term=print+object

print-object looks good. Purdy has nice colors. If their powers could combine...

I spent the last hour or so trying to find a way to make either be easily human readable, have purdy colors, and be able to pipe to a JSON.parse(). Sadly, no 😢
In my last CLI, I added this module. Nothing special, just utilizing chalk, but it was fast and painless. It can always be re-implemented with the perfect pretty-print operator when it is found.

@satazor Have you considered JSON-API? There are utilities that integrate with it automatically.

Yes, it looks more suitable to HTTP API's because of the links and stuff.. I don't think we need it..

Hey there! I put together an npms CLI – it doesn't meet all the requirements above (I wrote most of it before finding this thread), but thought you'd like to see it:
https://github.com/flesch/npms-cli
I did push it to npm, but I'm not intending to step on any toes, so I'm happy to change the name or even transfer ownership to your org.

@flesch That looks good!
One minor thing I would change: since we expect to have more commands, such as info, the bin/npms.js will become very complex. Would you mind refactoring the search code into lib/search.js?
Could you also add eslint and editorconfig to the project?
@dcrockwell what do you think of @flesch work?

@flesch @satazor I am glad I stumbled upon this thread before the weekend hit as I was planning on creating a CLI as well.  Now I can work on something else :-)

@satazor Awesome - I will definitely make those changes! @mikeerickson is going to add some tests too (https://github.com/flesch/npms-cli/issues/3).

Hey guys, I've been moving to another city for days.
I think @flesch's work is simple enough, but we should stick to our guns and do it 100% test-driven from the beginning with continuous integration. It could be good to have something now, but that will result in a lot of people needing to rework their integrations.
I also think that npms-cli ought to be the official package name, so @flesch ought to transfer ownership to npms-io before any more versioned publishes are made (which will have to be unpublished, and can't be re-used).
Seeing as we're in a pre-alpha stage now, we should start on version 0.0.0 until we have an alpha to publish as 0.0.x. From there, the first beta release would be 0.1.0, and then the official first gold release be 1.0.1 (as 1.0.0 can not be used again).
Testing first is a mandatory requirement for my participation on a project.

Since it seems there are more than a few of us who want this thing and are willing to do some work to get the ball rolling, I'd like to propose the following next steps:

Stub an initial spec. No working test code. Just behavior stubs.
Approve the stubs.

After the stubs are approved, we can break it up by feature and delegate the work out to multiple devs.
We can use git flow features to make sure we don't step on each other's feet.

I also think that if @flesch is cool with it, we could copy and paste his code into our features so that they make our tests pass with a little modification. This way his work is still utilized.

@dcrockwell Sounds like you have it all planned, have fun!

It's really all up to @satazor to call the shots. I'm only offering suggestions to try and keep the original project requirements met.

@dcrockwell You requirements are your requirements, I am not going to object.  I have plenty of projects to work on.  If this project is open for contributions, I will reevaluate at that time.   There was progress made this well and I (and @flesch) were stepping in to try and help.
But you have other plans, so I will step back

This is a community project, so lets join forces and work this out together. @flesch's work is a good start but I must agree that some goals were left behind:

Use update-notifier
Support JSON output with --json
Create an SDK to consume the API, and use it in the npms-cli project
eslint + editorconfig
Tests

I want this project to be easy to maintain and to modify, so tests are a must. I would really love to have all of you work on this together, so please do not fight each other. I'm sure we can setup some common ground.
Having that said, I suggest that we follow our initial goals and use @flesch work in the process.
@dcrockwell When are you able to use some of your time on planning the stubs?

@satazor I can make the initial stubs tonight and submit them to this repo as a PR. Then the PR could be used as discussion for accepting/rejecting/modifying the proposed stubs

@satazor I can't fork the repo until at least a README.md is committed, but I can still work on the stubs.

@dcrockwell done.

Going to need to finish this up tomorrow and the next day.

I've added @satazor and @dcrockwell to the owners of https://www.npmjs.com/package/npms-cli so you guys can publish when you're ready. I've also deprecated v1.0.0.
Do you mind if I publish one more release to work with the new API format? The latest response format broke my version, leaving a few users hanging.

@flesch I'm just a contributor to the project and not an owner. @satazor should be the sole owner.
That said, in my personal opinion I think if you publish another version, it should probably be 0.0.1 to signify it as an alpha.

@flesch go ahead and push 1.0.1

@satazor @flesch I will be submitting PR for the fix Saturday, I will post here when completed as well

@satazor @flesch All done here https://github.com/flesch/npms-cli/pull/6  Updated version to 1.0.1 as outlined above.

I just pushed v1.0.1 to npm - it supports the new API format (thanks @mikeerickson!). I also did refactor the code to move the "search" command into its own file. It's a start towards some of the requirements above, but let me know how I can continue to help!

Since @dcrockwell appears to be overwhelmed with work I propose that we embrace @flesch work into the official repository. If you agree @flesch I will be giving you access to the cli repository so that you can push your work into it.

[ ] Remove warning notice from the README
[ ] Add eslint config to the repository, preferably using the same eslint config from other npms repositories
[ ] Add devDependencies badge to README
[ ] Create an issue in the repository to add tests
[ ] Update LICENSE, see: https://github.com/npms-io/npms-www/commit/66cf251803c89c4eb45ecd8cf0cd2591cee9fbc2

After migrating to the npms repository can you make the above changes @flesch?

@satazor Sounds like a good plan. I'm very behind on a few repos and thought I would be done by now. Apologies for affecting your release schedule.

:+1: I'll try to make these changes soon!

@satazor I just pushed a couple of the quicker changes. I'll work on getting linting in as soon as I can.

@flesch Thank you very much for your hard work <3

I'm going to close this issue since the discussion is pretty much done now. Thanks for all thr contributions you guys made.


Reference friends by real name or nickname

Adding an activity with The Dude should be captured as an activity with Jeffrey Lebowski.
$ friends add activity "Went bowling with The Dude and Walter."
Activity added: "2015-01-04: Went bowling with Jeffrey Lebowski and Walter Sobchak."

Reporting on activities with a friend should work if you use their nickname.
$ friends list activities --with "The Dude"
2015-01-04: Went bowling with Jeffrey Lebowski and Walter Sobchak.

Thanks for the suggestion! This has been in my backlog for a while now but I've been unable to land on the specifics of how best to store nicknames internally and add/remove them from friends.
I'm leaning towards something like this:
### Friends:
- Jeffrey "The Dude" Lebowski

or this:
### Friends:
- Jeffrey Lebowski (The Dude, Jeff)

The first one feels a little bit more natural (as it's not uncommon to see nicknames written that way), but the second does allow for multiple nicknames, which may be nice or totally unnecessary. I'd love to hear your thoughts!

My thoughts were along the second form. You are right though, the first form is way more natural.
Maybe something like this?
### Friends:
- Jeffrey Lebowski (aka, "The Dude", "Jeff")

It uses a lot more characters, but returns some of the natural feel.

I like that! I'll see if I can get a basic nickname system working in the next day or so.

Awesome. Thanks!

Can you rename friends (to add nicknames for instance?)?

That sounds great! Maybe a separate issue?

Since some people (like myself) already have friends added I think it's probably easier to start with nicknames only being added, actually. That might be easier than having to remember how to specify a nickname when adding a friend initially, getting the syntax wrong, and ending up with the nickname being treated as part of the formal name.
Would love to hear thoughts here!

That sounds great. Then, if you later allow for assigning nicknames at friend creation, you'll probably be able to make use of both parts.

Exactly!
On Tue, Jan 5, 2016 at 12:00 AM, Jeff Jacobson-Swartfager <
<EMAIL_ADDRESS>wrote:

That sounds great. Then, if you later allow for assigning nicknames at
friend creation, you'll probably be able to make use of both parts.
—
Reply to this email directly or view it on GitHub
https://github.com/JacobEvelyn/friends/issues/40#issuecomment-168898035.


Question : Efficient way to serve dynamic image ?

Hi,
I am trying to find an efficient way to serve an image with Express if it exists, using a generated path from query params.
Example : '/imageID/toto.jpg?quality=80' will refer to image in myDir/imageID_80.jpg
I am currently using res.sendFile to do this, and I saw on your docs it isn't the best way in production (my CPU usage is high 👎).
Instead it seems I should use the static middleware, but I can't see how I can tell it the dynamic path to the image.
(I opened a stack overflow issue as well, but I didn't have much luck with it yet. It is maybe more comprehensive : https://stackoverflow.com/questions/46324479/serve-dynamically-generated-image-or-saved-image-with-express)
Thanks
EDIT : I just saw this issue : https://github.com/expressjs/express/issues/3165
It seems to be quite similar. Correct me if I'm wrong. Is there a link to the Gitter discussion that followed that issue ?

You can you Express Static Serving File:
var express = require('express');
var app = express();

app.use(express.static('public'));   ===> public :: Your Folder Name  {which you need to serve the static Files from the Folder to web UI part:

-public
--images
example.png
expected url : localhost:3000/images/example.png

So @LinusU replied to your SO question already. Let us know if you still have questions after that response (he's a collaborator on this project).


Password fields no longer in plain text

Hello Daniele,
could you please build into the app that passwords are no longer displayed in plain text in the input fields? I think that would be a real benefit in terms of security.
I once searched the Internet for an example of how something like this could be implemented. But I'm not that experienced in Javascript, so I'll just link you to the article.
https://www.peoray.dev/blog/display-password-form-input/
Best regards
Danny

I'll look into options for displaying the password in a more secure way, rather than revealing its content. I appreciate the guides you've shared. However, they don't precisely match our case, as the app uses a different design to show the dialog. Nevertheless, I'm sure that it's just a matter of slightly adjusting the design.

I think this should do it. I've already implemented it for both locking notes and encrypting/decrypting data during export/import.

Looks good! 😁


Update README.md

Added the test topology info.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 46.471%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
586

Relevant Lines:
1261

💛  - Coveralls

Maybe we can add a bit more wording to specifically call out that currently the test only ping itself for the purpose of exercising the gNOI API?
Also, can you help update the code comment to keep it in sync? Thanks. e.g.
https://github.com/openconfig/featureprofiles/blob/4f5daf1845581067c9a443c2b6b74d4d71bc22e6/feature/gnoi/system/tests/ping_test/ping_test.go#L77
still says the topology is DUT-ATE.

Done


npm run fails requiring global ruby/sass

I cloned the repo, then ran npm install and npm run. Running fails at:
Running "sass:dist" (sass) task
Warning:
You need to have Ruby and Sass installed and in your PATH for this task to work.
More info: https://github.com/gruntjs/grunt-contrib-sass
 Use --force to continue.

Aborted due to warnings.

Maybe the solution here would be to drop ruby/sass in favour of installing node sass as a dev dependency.

Its a good idea, You are more then welcome to submit a PR.

I didn't end up using card-react due to this problem, and I have no experience with grunt (nor a reason to get started with it). I won't be able to implement this for you.


[secret]: Invalid parsing of a secret.generic

After running the hello world distribute pass in https://github.com/google/heir/commit/50e25c69fabdc6c5eb52b3bf78788302694d3f6d, the resulting IR no longer parses correctly:
/usr/local/google/home/asraa/git/heir/tests/secret/test.mlir:32:26: error: expected attribute name
    %5 = secret.generic {

Seems like these no-arg secret bodies are trigger optional attr dict parsing with their {, even though that is their body.


Bump setuptools from 67.1.0 to 67.2.0 (#5512)

Pull request opened by the merge tool on behalf of #5512

Merged in 6060d669c49c4c437321c15da88441f9b35b5a4a


Describe your use case
obdiag的根因分析（后称rca）功能原基于总体架构的硬编码实现，无法应对灵活的部署升级场景。同时开发同学无法实现对诊断逻辑的快速适应性编排更改。
Describe the solution you'd like
引入外挂支持的能力进行rca扩展性的支持
Describe alternatives you've considered
No response
Additional context
No response

v2.0.0 release: https://github.com/oceanbase/oceanbase-diagnostic-tool/releases/tag/v2.0.0


ci: configure sudo for Vagrant NFS synced folders

skip skydive-go-fmt
skip skydive-functional-tests-backend-elasticsearch
skip skydive-functional-tests-backend-orientdb
skip skydive-scale-tests
skip skydive-cdd-overview-tests
skip skydive-unit-tests
skip skydive-compile-tests
skip skydive-k8s-tests
skip skydive-ppc64le-tests

run skydive-vagrant-tests

run skydive-vagrant-tests


Add the mapper function for AttractorsViaFeaturinzing

Problem described in #137. I added a simple function. It works fine with GroupViaNearestFeature, however I don't know what is the behavior for other GroupConfig. I suppose it will throw an error since feature_to_group is not defined for some GroupConfig.

A test is needed, I will add one soon.

@awage did you tag a new release after you merged this in? WHoever merges must also tag the release. I Tag releases by going on https://juliahub.com/ui/Packages and clicking "register package" in the top right.

No I didn’t. I will do it in a couple of hours. If you need it right now,
please tag the release.
El El vie, 26 jul 2024 a las 9:55, George Datseris @.***>
escribió:

@awage https://github.com/awage did you tag a new release after you
merged this in? WHoever merges must also tag the release. I Tag releases by
going on https://juliahub.com/ui/Packages and clicking "register package"
in the top right.
—
Reply to this email directly, view it on GitHub
https://github.com/JuliaDynamics/Attractors.jl/pull/138#issuecomment-2252181182,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2VD4CKRQNAY4XHNJTMUMTZOH6HFAVCNFSM6AAAAABLJDC2I2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJSGE4DCMJYGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


bulk rename no longer working?

What system are you running Yazi on?
Linux Wayland
What terminal are you running Yazi in?
kitty 0.36.1
yazi --debug output
Yazi
    Version: 0.3.3 (Nixpkgs 2024-09-04)
    Debug  : false
    OS     : linux-x86_64 (unix)

Ya
    Version: 0.3.3 (Nixpkgs 2024-09-04)

Emulator
    Emulator.via_env: ("xterm-kitty", "")
    Emulator.via_csi: Ok(Kitty)
    Emulator.detect : Kitty

Adapter
    Adapter.matches: Kitty

Desktop
    XDG_SESSION_TYPE           : Some("wayland")
    WAYLAND_DISPLAY            : Some("wayland-1")
    DISPLAY                    : Some(":0")
    SWAYSOCK                   : None
    HYPRLAND_INSTANCE_SIGNATURE: Some("0f594732b063a90d44df8c5d402d658f27471dfe_1726348582_1455908278")
    WAYFIRE_SOCKET             : None

SSH
    shared.in_ssh_connection: false

WSL
    WSL: false

Variables
    SHELL              : Some("/run/current-system/sw/bin/bash")
    EDITOR             : Some("kak")
    VISUAL             : None
    YAZI_FILE_ONE      : None
    YAZI_CONFIG_HOME   : None

Text Opener
    default: Some(Opener { run: "kitty kak $0", block: false, orphan: true, desc: "Edit", for_: None, spread: false })
    block  : Some(Opener { run: "exiftool \"$1\"; echo \"Press enter to exit\"; read _", block: true, orphan: false, desc: "Show EXIF", for_: None, spread: false })

Multiplexers
    TMUX               : false
    tmux version       : No such file or directory (os error 2)
    ZELLIJ_SESSION_NAME: None
    Zellij version     : No such file or directory (os error 2)

Dependencies
    file             : 5.45
    ueberzugpp       : No such file or directory (os error 2)
    ffmpegthumbnailer: 2.2.2
    magick           : 7.1.1-38
    fzf              : 0.55.0
    fd               : 10.2.0
    rg               : 14.1.1
    chafa            : 1.14.2
    zoxide           : 0.9.4
    7z               : 17.05
    7zz              : 24.08
    jq               : 1.7.1

Did you try the latest nightly build to see if the problem got fixed?
No, and I'll explain why below
Describe the bug
Instead of opening my editor with all the selected filenames ready for editing, it run exiftool on /tmp/yazi-1000.
Minimal reproducer
Select two files. Type 'r' to initiate bulk-rename.
Anything else?
No response

Text Opener
default: Some(Opener { run: "kitty kak $0", block: false, orphan: true, desc: "Edit", for_: None, spread: false })
block  : Some(Opener { run: "exiftool "$1"; echo "Press enter to exit"; read ", block: true, orphan: false, desc: "Show EXIF", for: None, spread: false })

Bulk rename stores your selected file list in a txt file (with a mime-type of text/plain). So, if you want to open this txt file using an editor, you need to correctly set txt files to open with an editor, not exiftool.
See the default config how to get it done:
https://github.com/sxyazi/yazi/blob/49639aa34ca69fc72008dbae6a2ad033d888805f/yazi-config/preset/yazi.toml#L64
https://github.com/sxyazi/yazi/blob/49639aa34ca69fc72008dbae6a2ad033d888805f/yazi-config/preset/yazi.toml#L32-L37
Doc of [opener]: https://yazi-rs.github.io/docs/configuration/yazi#opener


Unable to invoke layer creator

Trying to build this project.
OS: Windows 10
Gradle: 6.8.1
Spring Boot: 2.4.2
Paketo Spring Boot Buildpack: 4.0.0
Docker: v.17.03.1-ce-rc1-win3 (10625)

C:\docker version
Client:
Version:      17.03.1-ce-rc1
API version:  1.27
Go version:   go1.7.5
Git commit:   3476dbf
Built:        Wed Mar 15 20:33:22 2017
OS/Arch:      windows/amd64
Server:
Version:      17.03.1-ce-rc1
API version:  1.27 (minimum version 1.12)
Go version:   go1.7.5
Git commit:   3476dbf
Built:        Wed Mar 15 20:28:18 2017
OS/Arch:      linux/amd64
Experimental: true

command line:
gradlew bootBuildImage --imageName=ai91/alexamqttbridge
verbose output:
output.txt
Error:

[creator]       Spring Cloud Bindings 1.7.0: Contributing to layer
[creator]         Downloading from https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0.jar
[creator]         Verifying checksum
[creator]         Copying to /layers/paketo-buildpacks_spring-boot/spring-cloud-bindings
[creator]     unable to invoke layer creator
[creator]     unable to link /layers/paketo-buildpacks_spring-boot/spring-cloud-bindings/spring-cloud-bindings-1.7.0.jar to /workspace/BOOT-INF/lib/spring-cloud-bindings-1.7.0.jar
[creator]     symlink /layers/paketo-buildpacks_spring-boot/spring-cloud-bindings/spring-cloud-bindings-1.7.0.jar /workspace/BOOT-INF/lib/spring-cloud-bindings-1.7.0.jar: permission denied
[creator]     ERROR: failed to build: exit status 1

am I missing some configuration, or is it about windows-docker?

whoa. after docker update everything works without issues.


New Extension: Youtube Music

Description
A Youtube Music extension for Playing, Pausing, selecting Previous Track, selecting Next Track, Liking a Track, and Disliking a track.
Screencast
https://user-images.githubusercontent.com/2720368/183271361-891bd5be-fd45-4771-8417-6e07dccebbce.mov
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@danieldbird This is so useful, thanks for making it. Is it possible to add a Currently Playing command, similar to what the Apple Music and Spotify extensions have?


NetworkGateways no longer short circuits if no networkGatewaysBySvc

This PR fixes https://github.com/istio/istio/issues/46435
We no longer want to short circuit our NetworkGateways logic based on if there are no networkGatewaysBySvc, because there could still be networkGatewaysByResource.

Hi @saiskee. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@saiskee: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
0c0823a26388fb6dfcc33608df2bae10bb5fa505
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@saiskee: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-pilot-istiodremote-mc_istio
91f5326365fb7409d67492a3f494abbd521161c9
link
unknown
/test integ-pilot-istiodremote-mc

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@saiskee: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-pilot_istio
31564057422f4a26c2e364d36365ecc27b8abddb
link
true
/test integ-pilot

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@saiskee: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
31564057422f4a26c2e364d36365ecc27b8abddb
link
unknown
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests
flake
2023-08-15T16:18:16.340863Z	info	klog	failed to renew lease ns/test-lock: timed out waiting for the condition


Uncallable (and probably custom) mock methods do not render properly.

I have no idea what I meant by this. Closing until it rears its head again.

This was probably to do with the fact that assertion failure messages still look like Expected call on {stub}[5] with arguments like: instead of actually including the class and method names.

Fixed next release.


TraitsData equality

What
Decide on how best to handle equality operations in C++ for TraitsData.
Why
#481 switches to C++ code only ever having a shared ptr to a TraitsData, this opens up the question of how best to facilitate by-value comparisons of traits datas. Currently this needs to be achieved by *data1 == *data2. Do we need an equality method that takes a ptr or similar?  This isn't a problem in python as there isn't a distinction between a ptr/value in the same way.

We think pointer comparisons in C++ are a fundamental concept and having an operator== overload for shared_ptr<TraitsData> would be counter-intuitive.  Closing.


update 'Dask Social' video meeting URL

[ ] Closes #xxxx
[ ] Tests added / passed
[ ] Passes pre-commit run --all-files

Can one of the admins verify this patch?

In the last Dask community meeting, it was decided that "We’re going to switch to once-monthly, US-EU friendly.", and that we would switch that in the calendar.
@james I believe you have access to the calendar?

Yep, this is on my TODO list


Directly inject embeddings

As an additional type of input, provide the embeddings directly.

This has been solved with commit 35954ce and in PR #22.


[ELASTIC-126] Remove health checks from Elastic

If we are confident that this makes Elastic more reliable, then I am comfortable removing the health checks.

What was the reasoning behind removing health checks? I understand that sometimes deploy might take longer than expected and killing nodes before other nodes boot up is not very effective.
Wouldn't be to prolong grace period until deploy is finished and then start executing health checks? Currently the only health checks executed is /v1/plans/deploy which returns "healthy" even though cluster deployment wasn't finished:
> GET /v1/plans/deploy HTTP/1.1
< HTTP/1.1 202 Accepted
"status" : "IN_PROGRESS"
...


Clipy

in please_report_this_error_to_help_at_realm_dot_io

Number of crashes: 49
Impacted devices: 41

There's a lot more information about this crash on crashlytics.com:
https://fabric.io/econa77/mac/apps/com.clipy-app.clipy/issues/56ce5ca6f5d3a7f76b156e31

This issue has been fixed in v1.0.9.


Replace explicit type with <>.

Change looks good, and CI error appears to be some fragile test but not sure. Thanks @arturobernalg 👍

No clue what is happening here.


Hi.

Please see the change below;
Also, I learned a neat trick here for Slicing, I did not know you could do that! I've only gotten a prusa 3 months ago, so much to learn about it and many failures in my future!

Hi Brian,
I renamed the ankor-io project to ankor-io-deprecated.
Hope that helps.
Kind regards
Manfred

Thanks!


{Core} Bump MSAL to 1.10.0

Description
Bump MSAL to 1.10.0 so that https://github.com/AzureAD/microsoft-authentication-library-for-python/issues/314 is fixed.
Symptom
When

ARM (https://management.azure.com/.default) doesn't require MFA
VM SSH (https://pas.windows.net/CheckMyAccess/Linux/.default) requires MFA

In CLI beta, failure in az ssh vm (https://github.com/Azure/azure-cli/pull/17147) will cause the RT of ARM in MSAL token cache to be removed, making subsequence ARM commands like az group list fail.
Testing Guide
az login
az ssh vm -g cli-dev --vm-name ubuntu-vm
# Wait 1 hour so that AT expires
az group list

Additional context
The change will be merged to beta branch later.

Core


Past, present, future time block

Colors for corresponding past, present and future time blocks not displaying

use parseInt for var sectionTime to turn string into integer, for conditional statements to work


DRAFT: HSEARCH-1182  experiments

https://hibernate.atlassian.net/browse/HSEARCH-1182
This is just to get some initial feedback. ExcludePathsIT is the test I've been experimenting with.
The general idea is that a user can apply either include or exclude paths. The filtering part happens in IndexSchemaFilter#isPathIncludedInternal by just adding a check if the path wasn't explicitly excluded. Everything else in here is just "noise" to get the info from an annotation to the filter 😃. Is this going in the right direction?

Hey, thanks for taking a look at this and for suggestions 🎉 I'll close the PR and will come back with a new one once I'm ready 😄


why removed object in payload.values?

hi,
i'm trying to send response for get method.
but client can't get data property in payload.values.
ex)
server send response like this:
payload = {       type: iotivity.OCPayloadType.PAYLOAD_TYPE_REPRESENTATION,      values: {          serial: 'uuid',         data: {           text: 'hello',           id: 1         }      } }
then client get response
payload: {   type:4,   values: {     serial: 'uuid',     data: null   } }
is this spec problem? or node version problem?
client using 7.10.1 version, server using 6.11.4 version.

The payload needs to look like this:
{
  type: iotivity.OCPayloadType.PAYLOAD_TYPE_REPRESENTATION,
  values: {
    serial: 'uuid',
    data: {
      type: iotivity.OCPayloadType.PAYLOAD_TYPE_REPRESENTATION,
      values: {
        text: 'hello',
        id: 1
      }
    }
  }
}

This iotivity-node test gives you an example of a payload that has object-valued properties.


doc: application.py: Make functions that don't use 'self' static

Fixes this pylint warning:
R0201: Method could be a function (no-self-use)

Another option would be to turn them into regular functions, but that'd
be a bigger change.
Fixing pylint warnings for a CI check.

@ulfalizer please rebase

@ulfalizer please rebase

Done


Export to the clipboard

When clicking Save, it'll now copy the contents of the export to the clipboard.

Actually, having a "Copy" button may be better.


Allow configurable cookie corner wrapped year

Please add the following information to your pull request:
Please describe what your PR is fixing
Allow configurable cookie corner wrapped year
Does your PR change how we process personal data, impact our privacy document, or modify (one of) our data export(s)?
no
Does your PR include any django migrations?
no
Does your PR include the proper translations (did you add translations for new/modified strings)?
no, my PR does not include translations
Does your PR include CSS changes (and did you run the compile_css.sh script in the scripts directory to regenerate the compiled.css file)?
no, my PR does not include CSS changes
Does your PR need external actions by for example the System Administrators? (Think about new pip packages, new (local) settings, a new regular task or cronjob, new management commands, etc.)?
no
Did you properly test your PR before submitting it?
yes

Pim and Daniel find it beautiful


Progress Bar

Please add a download and upload percentage showing progress bar it will really help us to understand how much percentage of file is getting downloaded or uploaded.
Thanks for your Repo it is really helpful.
And one more doubt I have If I purchased a premium plan of gofile, Can I add my token in code and upload videos to my gofile account through bot?

Added token support on https://github.com/FayasNoushad/GoFile-Bot/commit/d5a7b70806b876ded45a2681d314c3e20849d34b


Number of epochs before seeing a decrease in the loss

Hi, I am currently training the instant-mesh model but after 3 epochs I am not seeing convergence and the loss does not seem to decrease. I am using the same config as you set (DDP strategy) and also I added grad_accumulation. I am not sure if I am doing something wrong or if I should be more patient and wait for more epochs. Not sure if I should train the instant-nerf first and then instant-mesh.
Here some plots if it helps:

Thanks for your help!

You need to train instant-nerf first. The mesh-based rendering can only provide gradients at near-surface area, making the network hard to converge. Our mesh model is finetuned from the nerf model.

Alright makes sense thank you! I have tried the training of instant-nerf, however I am starting with cubes as first images and I was wondering if the default code starts with pretrained weights for the LRM since I am starting with cubes?

@Kev1MSL According to the paper, the training is initialized using openlrm weights. @bluestyle97 How many training steps have you run the training of instant-nerf for using your training data?

@Kev1MSL Hello, please take a look at your dataset structure and training configuration file？ This will help you better

@Sri-vatsa Hello, could you take a look at the structure of your dataset and the configuration file used to train nerf? I have encountered a problem in this regard, which I cannot solve, and I need your help

Alright makes sense thank you! I have tried the training of instant-nerf, however I am starting with cubes as first object rendered and I was wondering if the default code starts with pretrained weights for the LRM since I am starting with cubes?

Hi based on your graph, it seems like your training set contains only 3.5k instances, is that true? The paper says 270k instances, so do you know how to curate the dataset correctly for training instantnerf? Thanks a lot!


Specs for views and fix n+1 problems

Write integration tests with Capybara gem
Fix linter errors
Secure app from n+1 problems.

Screenshots:
before:

After:

Before:

After:

Before:

After:

Thank you @omarsalem7


Fix the include statements in awesome/root.rs

The include statements in the tests in awesome/root.rs weren't using the latest code organisation, importing from super::super.
Now they import from ::root and ::objects.
Fix for: https://github.com/way-cooler/way-cooler/issues/574

Awesome, thanks! :)


The solution is not as simple as adding a lock, because unlocking does some stuff with consensus. The unlocking process is likely to require a bool covered by a separate lock.

is this still an issue?

Yeah, just because the wallet needs to have an 'unlocking' state, instead of just a binary locked/unlocked state.

I believe I fixed this at some point.


integrate check license into mvn verify

for elastic/elasticsearch#11705

that's the last time I try to contribute to your projects man - I don't like this perl stuff anyways :P

haha i didn't even see this :)


Math/Science Formulas

Some scientists are interesting to post Maths on Busy, but it does not display correctly, one solution is to use a library like KaTeX
https://khan.github.io/KaTeX/

KaTeX is really big dependency and adding this would make our bundle way bigger.
We can however use online service like codecogs that accept latex and return image.
We could add special code that would turn
\[x^n + y^n = z^n\]

into
![equation](https://latex.codecogs.com/gif.latex?x^n + y^n = z^n)

So it would show like this:


urllib3 unlock

Status
Ready/In Progress/In Hold (Reason for hold)
Related Content Pull Request
Related PR: link to the PR at demisto/content
Related Issues
Related: link to the issue
Description
A few sentences describing the overall goals of the pull request's commits.

adding label as this was never locked in native


fluttertoast:androidJdkImage

Fluttter sdk = 2.2.0
sdk: ">=2.10.4 <3.0.0"
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':fluttertoast:compileDebugJavaWithJavac'.

Could not resolve all files for configuration ':fluttertoast:androidJdkImage'.
Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
Execution failed for JdkImageTransform: /Users/agilemac49/Library/Android/sdk/platforms/android-31/core-for-system-modules.jar.
jlink executable /Users/agilemac49/.gradle/jdks/adoptium-8-x64-hotspot-mac/jdk8u422-b05/Contents/Home/bin/jlink does not exist.

I have the same issue:
* What went wrong:
Execution failed for task ':fluttertoast:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':fluttertoast:androidJdkImage'.
   > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JdkImageTransform: /home/momo/Android/Sdk/platforms/android-33/core-for-system-modules.jar.
         > Error while executing process /opt/android-studio/jbr/bin/jlink with arguments {--module-path /home/momo/.gradle/caches/transforms-3/8539d099d6d4d5d2ea71f9998cae88b8/transformed/output/temp/jmod --add-modules java.base --output /home/momo/.gradle/caches/transforms-3/8539d099d6d4d5d2ea71f9998cae88b8/transformed/output/jdkImage --disable-plugin system-modules}

I have the same issue.

Facing the same issue as well. Any progress on this bug?

Yeah , i solve it actually
It imcompatibility betwen install jdk for android toolchain and flutter used jdk
Go to your application directory
Make an
cd android
Then
./gradlew clean
Configure your java jdk on flutter globally
flutter config --jdk-dir "/usr/lib/jvm/java-17-openjdk-amd64"
Now close all IDEs and restart the build or run process

Facing the same issue after the update to Android Studio Ladybug | 2024.2.1 Patch 1. Probably, because the default JDK included in Android Studio now is 21.

@krasylnikov what is the solution then?

Facing the same issue after the update to Android Studio Ladybug | 2024.2.1 Patch 1. Probably, because the default JDK included in Android Studio now is 21.

@krasylnikov what is the solution then?

There is no solution yet. I will probably use a lower version of JDK from brew.


Good Job!!!

here it is aZSraFVKezLzQWmZ62NzMvfJWwGEW7wP67d8SfoWEuwvUqf  forgot to add it to the readme. Will do that.

here it is aZSraFVKezLzQWmZ62NzMvfJWwGEW7wP67d8SfoWEuwvUqf forgot to add it to the readme. Will do that.

ReadMe updated!


Validate SLE Micro 5.5 in Rancher 2.9.0 - Imported Only

Request description:
Rancher Manager v2.9.0
Add support for SLE micro 5.5 imported only

Ticket #45868 - Test Results -
Verified on Rancher v2.9.0-rc1 using SLE Micro 5.5 community ami-0bbae1f84573606ad:

Scenario
Test Case
Result

1.
Import RKE2 w/ k8s 1.29.5+rke2r1
✅

2.
Import RKE2 w/ k8s 1.28.10+rke2r1 => upgrade to 1.29.5+rke2r1
✅

3.
Reboot RKE2 agent node
✅

4.
Import K3s w/ k8s 1.29.5+k3s1
✅

5.
Import K3s w/ k8s 1.28.10+k3s1 => upgrade to 1.29.5+k3s1
✅

6.
Reboot K3s agent node
✅

Scenario 1 - ✅

Spin up a standalone RKE2 w/ k8s v1.29.5+rke2r1
Once active, import the cluster into Rancher
Verified - cluster successfully imports
Deploy downstream workloads and verify cluster functionality
Verified - cluster active and functioning as expected

Scenario 2 - ✅

Spin up a standalone RKE2 w/ k3s v1.28.10+rke2r1
Once active, import the cluster into Rancher
Verified - cluster successfully imports
Upgrade the k8s version to v1.29.5+rke2r1 via Rancher UI
Verified - cluster successfully upgrades
Deploy downstream workloads and verify cluster functionality
Verified - cluster and all pods active; as expected

Scenario 3 - ✅

Reboot agent node of imported clusters from Scenario 1 and 2
Verified - node reboots; cluster doesn't break; as expected

Scenario 4 - ✅

Spin up a standalone K3s w/ k8s v1.29.5+k3s1
Once active, import the cluster into Rancher
Verified - cluster successfully imports
Deploy downstream workloads and verify cluster functionality
Verified - cluster active and functioning as expected

Scenario 5 - ✅

Spin up a standalone K3s w/ k3s v1.28.10+k3s1
Once active, import the cluster into Rancher
Verified - cluster successfully imports
Upgrade the k8s version to v1.29.5+k3s1 via Rancher UI
Verified - cluster successfully upgrades
Deploy downstream workloads and verify cluster functionality
Verified - cluster and all pods active; as expected

Scenario 6 - ✅

Reboot agent node of imported clusters from Scenario 4 and 5
Verified - node reboots; cluster doesn't break; as expected


fix(ci): use official codespell action

Motivation
Codespell has been failing based on an upstream error in the GitHub Action repo. We're taking this opportunity to use the new official version.
Fixes #8081
PR Author Checklist
Check before marking the PR as ready for review:

[ ] Will the PR name make sense to users?
[ ] Does the PR have a priority label?
[ ] Have you added or updated tests?
[ ] Is the documentation up to date?

Complex Code or Requirements
None
Solution

Change plettich/action-codespell@master with<EMAIL_ADDRESS>Keep the same options

Testing
Confirm this is running as expected.
Reviewer Checklist
Check before approving the PR:

[ ] Does the PR scope match the ticket?
[ ] Are there enough tests to make sure it works? Do the tests cover the PR motivation?
[ ] Are all the PR blockers dealt with?
PR blockers can be dealt with in new tickets or PRs.

And check the PR Author checklist is complete.
Follow Up Work

This is making the annotations as expected here: https://github.com/ZcashFoundation/zebra/pull/8087/files and not failing as it's optional.


Const-qualify IPAddress::ReadAddress

Codecov Report

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

@@            Coverage Diff             @@
##           master     #159      +/-   ##
==========================================
+ Coverage   53.63%   53.63%   +<.01%
==========================================
  Files         326      326
  Lines       55427    55427
==========================================
+ Hits        29727    29729       +2
+ Misses      25700    25698       -2

Impacted Files
Coverage Δ

src/inet/IPAddress.cpp
80.53% <100%> (ø)
:arrow_up:

src/test-apps/TestInetAddress.cpp
99.68% <100%> (ø)
:arrow_up:

src/lib/profiles/security/WeaveCert.cpp
84.41% <0%> (+0.64%)
:arrow_up:

Continue to review full report at Codecov.

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


Zillow data is missing from data folder

Chapter 8 exercises, R question 3

Note to myself: there should be some note in the preface where I mention that, even though all data sets are cited, the files are available for download

I think these are all the files that need to be added:
sim_data.csv
kr-vs-kp.data
Zip_zhvi_uc_sfr_tier_0.33_0.67_sm_sa_month.csv
X_train.txt
y_train.txt


Need your help!

I had error when I'm running your bot. Please help me to fix it.
Here is logs
main : INFO : 2023-05-08 06:42:30,523 : Bot started - use Ctrl+C to stop the bot.
indicators : CRITICAL : 2023-05-08 06:42:31,778 : An error has occurred in the mainloop - restarting in 5 seconds...
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3/dist-packages/simplejson/init.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/root/Telegram-Crypto-Alerts/bot/indicators.py", line 359, in run
self.mainloop()
File "/root/Telegram-Crypto-Alerts/bot/indicators.py", line 320, in mainloop
r = self.call_api(endpoint=BULK_ENDPOINT, params=query)
File "/usr/local/lib/python3.9/dist-packages/ratelimit/decorators.py", line 113, in wrapper
return func(*args, **kargs)
File "/usr/local/lib/python3.9/dist-packages/ratelimit/decorators.py", line 80, in wrapper
return func(*args, **kargs)
File "/root/Telegram-Crypto-Alerts/bot/indicators.py", line 287, in call_api
return requests.post(endpoint, json=params).json()
File "/usr/local/lib/python3.9/dist-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
telegram_handler : WARNING : 2023-05-08 06:42:32,550 : taapiio_bot started at 2023-05-08 06:42:32.550406 UTC+0
alert_handler : INFO : 2023-05-08 06:42:33,116 : Bot polling for next alert...
^C__main__ : INFO : 2023-05-08 06:42:37,033 : Bot stopped
Thanks

I fixed it. I used proxy --> had this error.
Thanks

Glad you got it fixed @braverynew !


[mydevice.io] -> [Others]

Others
Resolutions(including css widths and heights) of most popular devices such as phones and tables
Link: https://www.mydevice.io/
Checklist:

[X] I have performed a self-review of submitted resource and its follows the guidelines of the project.

Apologies, i fixed it but go ahead and the close the issue it is a bit fked up on my fork


JS MapReduce returns partial results when some VMs are busy

To reproduce this issue do the following:
1. make devrel with Riak 1.0.3
2. Set map_js_vm_count to 0 on one node
3. Issue the following puts:
curl -XPUT http://localhost:8091/riak/docs/foo \
-H 'Content-Type: text/plain' -d 'demo data goes here' -v
curl -XPUT http://localhost:8091/riak/docs/bar \
-H 'Content-Type: text/plain' -d 'demo demo demo demo' -v
curl -XPUT http://localhost:8091/riak/docs/baz \
-H 'Content-Type: text/plain' -d 'nothing to see here' -v
curl -XPUT http://localhost:8091/riak/docs/qux \
-H 'Content-Type: text/plain' -d 'demo demo' -v

4. Issue the following MapReduce job:
curl -XPOST http://localhost:8091/mapred \
     -H 'Content-Type: application/json' \
     -d '{"inputs":"docs",
          "query":[{"map":{"language":"javascript",
            "source":"Riak.mapValues"}}]}'

Only a partial result set will be returned. For example:
["demo demo demo demo","demo data goes here","demo demo"]

You should get:
["demo demo demo demo","demo data goes here","demo demo","nothing to see here"]

In the logs on the node with 0 map_js_vms you will see notifications like this:
2012-02-07 12:38:36.700 [notice] <0.26723.1821>@riak_kv_js_manager:blocking_dispatch:246 JS call failed: All VMs are busy.

Bugzilla mirror: https://issues.basho.com/show_bug.cgi?id=1334


google pixel now playing history

https://dfir.pubpub.org/pub/xbvsrjt5/release/1
Need to create an full backup of my phone and go in and dump some protobuf stuff
man...

hmm seems that I cant back this up without rooting my phone -- android may have disabled the android:backup flag for the com.google.intelligence.sense package, which means it cant be accessed
Guess one just hopes that Google adds something that lets you export it


Fail on no analyzers registered

(I seem to be hitting every possible way to hold this tool wrongly!)
I think it's more useful to fail when there are no analyzers registered, than to return "OK, did nothing". I suspect it's going to be very unusual to intentionally register no analyzers.

@dawedawe if you agree, can you approve and merge?

Sweet 😌


dialogflow: add retry logic to all tests

Fixes #313 (will reopen if there are additional problems).

Merging to fix flakiness.


Release 1.7.2 rc1

A release candidate to test upgrading from 1.6.x to 1.7.1

https://github.com/k8s-operatorhub/community-operators/pull/902
https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/945

Tested `on OpenShift 4.9 using the "candidate" channel and upgrading from 1.6.2.


Date input bug

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix building on OpenBSD

OpenBSD is very similar to bitrig, so I've just copied what's done for
bitrig and changed the arch triplet. I'm able to build on OpenBSD
-current (as of 2015-07-11) with this patch.

This is a duplicate of https://github.com/carllerche/curl-rust/pull/72; the diffs are identical. Sorry for the noise.


The debug version of apk runs, while the release version of apk hangs up.

I cannot pinpoint what went wrong this time.   My debug version of apk can run correctly, but the released version of apk just hangs up.  No error message, never return.  What files are you needed to help me to fix this issue?

@kust-wulin if it's production code, so I assume you cannot debug, could you add a couple of Log.i to understand what's going on in the code you're running and where the glitch happens? Otherwise, there are so many variables and I cannot give you a precise answer to your issue.

@abusuioc thanks for the feedback.  I can pinpoint the error now.
In my code, I have a line of code:
LocationData position = await _location.getLocation();
In debug version of the code, this call return position.
However, in release version of the code, this call immediately throws an exception.
PlatformException(UNEXPECTED_ERROR, -5:Core error, null)
My cellphone is a Huawei's phone.
Do you know why I got this exception?

I have checked the source code of location and changed the error message to find which line throws this exception. The line throws this exception is:
FlutterLocation.java:417
sendError("UNEXPECTED_ERROR", e.getMessage(), null);
Since the debug version of the code works, I expect the release version will return the location instead of throwing an exception.
In simulator, the code runs without error. My location version is 3.0.2
I have tested on:
Android 9, API Level 28, real device

@abusuioc I have found the following two links that may solve my issue.
https://stackoverflow.com/questions/63280882/flutter-hms-core-plugin-integration-error
https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/configuration-obfuscation-script
I have checked the source code.  I found file proguard-rules.pro is located at hms-gms-wrapper-location-1.0-beta-1\lib
Does this mean I have to compile all the source codes by myself?  Or you will update the hms-gms-wrapper-location-1.0-beta-1 and provide a new version which excludes hms from obfuscate.
Thanks a lot.  Have a nice day.

@abusuioc Thanks a lot for your sincere help.  Now I have solved the issue.
My solution is:

Add the following lines in my build.gradle file at directory "project_home/android/app"
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
Add a text file named proguard-rules.pro in the same directory
Inside proguard-rules.pro add the following lines
-ignorewarnings
-keepattributes Annotation
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.{*;}
-keep class com.huawei.updatesdk.{;}
-keep class com.huawei.hms.**{;}

My project is created by Android Studio.  So I guess my solution works for all Android Studio users.  You may want to update your README.md, so that people using your library will not meet this issue again.
Thanks a lot again.  Have a nice day.

@kust-wulin thanks a lot for your persistence in figuring out what the issue was.
Please try the 1.0-beta-2 (  implementation 'com.github.abusuioc:hms-gms-wrapper-location:1.0-beta-2' ). The issue is now fixed in the library and there is no need for you to modify your app code with the obfuscation configuration.

@abusuioc Thanks.  I should thank you for providing us a wonderful solution for the hms and gms issue.  This solution helps us a lot.  Contributing to it is our duty for using it.


duplicate code for y.go and influxql.token.go

add some content here
There are repeated defined tokens for lexical parser in yacc/y.go and inflxuql/token.go. So shall we consider to get rid of one of them?

I think that we should rewrite all AST and Expression of influxql instread of just rewrite duplicated defined tokens. It would be better. Do you think so?


Using system GMP fails on Travis Linux

After #168 we can detect system GMP on Travis instances, however, the Linux one then fails with a link error, similar to what I get on Windows, https://github.com/snowleopard/shaking-up-ghc/pull/168#issuecomment-171639193:
[...]
/home/travis/build/snowleopard/shaking-up-ghc/ghc/.build/stage1/libraries/integer-gmp/build/libHSinteger-gmp-<IP_ADDRESS>.a(Type.o): In function `cmbQ_info':
(.text+0x16372): undefined reference to `__gmpn_mod_1'
collect2: ld returned 1 exit status
`gcc' failed in phase `Linker'. (Exit code: 1)

A GMP framework is also detected on the OS X instance, but it doesn't lead to the link error.
Note, the build log contains the following:
| Create directory .build/stage0/gmp
/------------------------------------------------------------------------------\
| Run Tar (stage = Stage0, package = integer-gmp)                              |
|      input:libraries/integer-gmp/gmp/tarball/gmp-5.0.3-nodoc-patched.tar.bz2 |
|  => output:.build/stage0/gmp                                                 |
\------------------------------------------------------------------------------/
| Apply .build/stage0/gmp/gmpsrc.patch
| Apply .build/stage0/gmp/gmp-5.0.4.patch
| Run configure in .build/stage0/libffi...
| Run configure in .build/stage0/gmp/gmp-5.0.3...
| Create directory .build/stage0/gmp/include
| GMP library/framework detected and will be used
/------------------------------------------------\
| Copy file                                      |
|      input:libraries/integer-gmp/gmp/ghc-gmp.h |
|  => output:.build/stage0/gmp/include/ghc-gmp.h |
\------------------------------------------------/
| Successfully built custom library 'integer-gmp'

@kgardas Have you come across the same error on Solaris?

@snowleopard no, at least not yet. But the question is if I get that far at all. You know #164 & #165

@kgardas I see. Sorry I can't help much with #164 and #165 as I can't reproduce these issues on Windows. I will try to fix this one though, because it seems to be reproducible on Windows.

@snowleopard Solaris is probably hurt by this issue too, not sure, don't see enough of your failure. My failure looks:
<a lot of messages>
__gmpz_sizeinbase                   /tmp/shake-test/.build/stage1/libraries/integer-gmp/build/libHSinteger-gmp-<IP_ADDRESS>.a(wrappers.o)
__gmpn_divrem_1                     /tmp/shake-test/.build/stage1/libraries/integer-gmp/build/libHSinteger-gmp-<IP_ADDRESS>.a(Type.o)
__gmpn_tdiv_qr                      /tmp/shake-test/.build/stage1/libraries/integer-gmp/build/libHSinteger-gmp-<IP_ADDRESS>.a(wrappers.o)
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status
`gcc' failed in phase `Linker'. (Exit code: 1)
)

and is cause by simple fact that build system completely omits -optl-lgmp from the linking arguments. This is when using system supplied GMP and when using appropriate --with-gmp-* flags for configuration. When I added -optl-lgmp to the problematic line the binary was linked well...

Thanks @kgardas.
I attempted a fix based on your comment. Let's see if it works.

Now, my build passes all the way long up to the point of:
/---------------------------------------------------------------\
| Successfully built program 'compareSizes' (Stage1).           |
| Executable: utils/compare_sizes/stage1/build/tmp/compareSizes |
| Program synopsis: Size comparison utility.                    |
\---------------------------------------------------------------/
shakeArgsWith                         0.000s    0%
Function shake                        0.061s    0%
Database read                         0.747s    0%
With database                         0.034s    0%
Running rules                      4271.027s   99%  =========================
Pool finished (22782 threads, 1 max)  0.000s    0%
Lint checking                         0.115s    0%
Total                              4271.986s  100%
Lint checking error - value has changed since being depended upon:
  Key:  libraries/integer-gmp/integer-gmp.buildinfo
  Old:  File {mod=0xACF0D705,size=0x87,digest=NEQ}
  New:  File {mod=0xAE28D93E,size=0x84,digest=NEQ}

I'm not sure if this is a failure or what...

This says that something depended on integer-gmp.buildinfo, and then later it changed. Perhaps some unrelated rule touched it? Perhaps the dependency was insufficient? It's a warning from the build system error, so everything built properly, but if you were to rebuild again right now, more stuff would rebuild, which isn't great.

@kgardas Thanks, I see what's going on:

When building GMP, we run the configure script inside libraries/integer-gmp to determine whether there is a system GMP library installed, and which one, by looking into produced files config.mk and integer-gmp.buildinfo.
Later on the build process, the integer-gmp library is built, which also involves running the configure script (ghc-cabal performs it and we currently don't know how to avoid this, see #18).
This second configure updates integer-gmp.buildinfo file again, and even though it is exactly the same as the first time, the build system raises a warning that we've done something suspicious: changed a file after we read it.

Not sure yet what would be the best solution, but it's great to hear that the build was successful for you!

Note Travis now also fails with the lint error mentioned by @kgardas.

So here's how I resolved this: I stopped tracking integer-gmp.buildinfo for now, switching from Shake's readFileLines to liftIO . readFile. When/if we resolve #18 we will be able to bring the tracking back.


Arrow Keys do not work in programs such as "less" inside Git Bash

Windows Terminal version
1.11.34710.0
Windows build number
19042.1586
Other Software
Git for Windows version 2.35.1.windows.2
Steps to reproduce

Include Git Bash into Windows Terminal via "Git for Windows" install dialogue.
Execute a command like "less SOMEFILE" or within a git repository execute "git diff SOMEFILE".
Try navigating the output with arrow keys.

Expected Behavior
I can navigate through the lines of the output.
Actual Behavior
The output does not move. A Windows error sound plays.

Ah, thanks. The solution described in the comment of your last link solved it for me. Sorry for the duplicate issue.


Try to use getters when getting non-existent field values for Sluggable

Use getters when getting field values for Sluggable, if property does not exist (solves problem with accessing non-existent field, like in translations)

:+1: I need this feature too, a merge would be great !

@docteurklein please tell us your opinion, this PR hangs here for 5 months already.

LGTM! sorry for the delay, i'm quite busy these days.


Electron start run in webhost

Hello Shane
How are you from Brazil?
Congratulations about your codes.
We trying to put your codes aframe-in-app-browser in our WebHost ( Alibaba Cloud )  but when deploying /dist folder, we don't see Electron library ( server.js file ).
How step-by-step to run in our webhost with server.js too?

Thanks for your return.

@mespper  Hi mespper! Electron is an npm package, you need to install it. npm i electron
But my question is after npm run build, I just see a white browser page, how to open a url link? Have you solved it?


Max retries exceeded with url: /oauth2/token

Hi,
I used the docker implementation and that ran a cornjob to sync hourly.
After 5 days it stopped working with the error message below.
I tried removing the docker container and set it up again from scratch, but got the same error message.
Any suggestion how I can get it to run?
(I set it up using cli on my NAS (Linux AS6302T 4.14.x #1 SMP Fri Oct 16 00:30:37 CST 2020 x86_64 GNU/Linux)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 159, in _new_conn
conn = connection.create_connection(
File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 61, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/usr/local/lib/python3.8/socket.py", line 918, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
httplib_response = self._make_request(
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 309, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 171, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f5447a84040>: Failed to establish a new connection: [Errno -3] Try again
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen
retries = retries.increment(
File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 439, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='account.withings.com', port=443): Max retries exceeded with url: /oauth2/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5447a84040>: Failed to establish a new connection: [Errno -3] Try again'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/withings-sync", line 33, in
sys.exit(load_entry_point('withings-sync==3.1.2', 'console_scripts', 'withings-sync')())
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/sync.py", line 191, in main
sync(**vars(args))
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/sync.py", line 77, in sync
withings = WithingsAccount()
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/withings2.py", line 161, in init
self.withings = WithingsOAuth2()
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/withings2.py", line 61, in init
self.refreshAccessToken()
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/withings2.py", line 137, in refreshAccessToken
req = requests.post(Withings.TOKEN_URL, params)
File "/usr/local/lib/python3.8/site-packages/requests/api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='account.withings.com', port=443): Max retries exceeded with url: /oauth2/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5447a84040>: Failed to establish a new connection: [Errno -3] Try again'))

Hi @MSMortensen
I think this is pretty much expected that there will be a limit. I'm not sure what's the max and how requests are counted (is it per user or the max is shared for whole app).
I'd suggest to decrease frequency, I believe the counter will get reset-ed after a while. Personally I run the sync once a day.
Best regards,
Jarek

Thanks for the quick reply.
I will disable it and try and see if it will run tomorrow.
If I set it to sync daily is there a way to ensure that I do not miss any measurements without hardcoding a --fromdate?
For example always make it sync any measurements from yesterday and today?
Best regards,
Martin

Hi,
I start the script daily in the afternoon without any date parameters. If you're afraid of loosing measurements, you could schedule it just before midnight.
Best regards

Hi again,
I removed the docker container and image, as well as .withings_user.json, and tried to install it again.
I get the same error as before.
Any idea how I can get it to work again?
Best Martin
PS: I used my garmin username and password
$ docker run -v $HOME:/root --interactive --tty --name withings stv0g/withings-sync --garmin-username={MY_USERNAME} --garmin-password={MY_PASSWORD}
Unable to find image 'stv0g/withings-sync:latest' locally
latest: Pulling from stv0g/withings-sync
df20fa9351a1: Pull complete
36b3adc4ff6f: Pull complete
3e7ef1bb9eba: Pull complete
78538f72d6a9: Pull complete
1692f1a2776b: Pull complete
4dacf6c2b0b3: Pull complete
c860f9f6deb6: Pull complete
49e18d18e796: Pull complete
5ef3985ee8a9: Pull complete
ae195f2fe619: Pull complete
Digest: sha256:342fbae1c3cfa40c4f91bcbe555abb3038a1d9e14ab091463846671d1de874b4
Status: Downloaded newer image for stv0g/withings-sync:latest
2020-11-08 13:30:33,043 - withings - ERROR - Can't read config file /root/.withings_user.json
2020-11-08 13:30:33,044 - withings - WARNING - User interaction needed to get Authentification Code from Withings!
2020-11-08 13:30:33,044 - withings - WARNING -
2020-11-08 13:30:33,044 - withings - WARNING - Open the following URL in your web browser and copy back the token. You will have 30 seconds before the token expires. HURRY UP!
2020-11-08 13:30:33,045 - withings - WARNING - (This is one-time activity)
2020-11-08 13:30:33,045 - withings - WARNING -
2020-11-08 13:30:33,045 - withings - INFO - https://account.withings.com/oauth2_user/authorize2?response_type=code&client_id=183e03e1f363110b3551f96765c98c10e8f1aa647a37067a1cb64bbbaf491626&state=OK&scope=user.metrics&redirect_uri=https://jaroslawhartman.github.io/withings-sync/contrib/withings.html&
2020-11-08 13:30:33,046 - withings - INFO -
Token : 1fe12aff58bb01943b4750fd7e2fd2cda11de1f1
2020-11-08 13:30:53,622 - withings - INFO - Get Access Token
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 159, in _new_conn
conn = connection.create_connection(
File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 61, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/usr/local/lib/python3.8/socket.py", line 918, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
httplib_response = self._make_request(
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 381, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 978, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 309, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 171, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fe503241040>: Failed to establish a new connection: [Errno -3] Try again
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen
retries = retries.increment(
File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 439, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='account.withings.com', port=443): Max retries exceeded with url: /oauth2/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe503241040>: Failed to establish a new connection: [Errno -3] Try again'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/withings-sync", line 33, in
sys.exit(load_entry_point('withings-sync==3.1.2', 'console_scripts', 'withings-sync')())
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/sync.py", line 191, in main
sync(**vars(args))
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/sync.py", line 77, in sync
withings = WithingsAccount()
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/withings2.py", line 161, in init
self.withings = WithingsOAuth2()
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/withings2.py", line 59, in init
self.getAccessToken()
File "/usr/local/lib/python3.8/site-packages/withings_sync-3.1.2-py3.8.egg/withings_sync/withings2.py", line 106, in getAccessToken
req = requests.post(Withings.TOKEN_URL, params)
File "/usr/local/lib/python3.8/site-packages/requests/api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='account.withings.com', port=443): Max retries exceeded with url: /oauth2/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe503241040>: Failed to establish a new connection: [Errno -3] Try again'))


Build copyright when rendering instead of at init

ViewComponent raises a ControllerCalledBeforeRenderError when rendering previews because we're calling #link_to at the point the component is initialized, which is problematic because the view context only exists once the ViewComponent is passed to the Rails render pipeline.
Setting copyright_text and copyright_url during initialization but combining them into a link with #link_to when rendering the component should alleviate this.
Fixes #512

@peteryates looks good to me! Anything stopping this from getting merged?

No, I think it's good to go.


MAC OSX: AXUIElement Bad Access Ref

Small fix here to manually retain the AUXUIElement ref we cache, so it stays around after releasing the rest of the windows. See: https://developer.apple.com/documentation/corefoundation/1521269-cfretain?language=objc
Avoid copying property list and just retain it

@sentialx I think I got all the mem leak fixes I found debugging. Thanks for the quick turn around w. the release 👍

@sentialx thank you for merging! When you have a moment today, could you push out an updated release? We'd love to integrate w. this change into our app and ship recent memleak fixes our end users.


Issues with multiple PRs opened

:memo:  Issues when opening multiple PRs in a single workflow
In my workflow, I am attempting to use this component to open a PR to branches within the repo. I'm looking to open a PR that updates two different branches with the main branch.  What actually happens, thought, is that one PR is opened and the second attempt to open a PR results in the component PATCH-ing the first PR.  I expected this to open two different PRs to two different branches.
The workflow I'm using is below.  I originally tried this with a matrix and had the same issue.

on:
  workflow_dispatch:
  repository_dispatch:
    types: [update-environments]

jobs:
  continuous-integration-1:
      name: "Upper Environment Pull Requests - devex-dev"
      runs-on: ubuntu-latest
      steps:
        - name: Checkout s2-env-configuration
          uses: actions/checkout@v3
          with:
            fetch-depth: 0

        - name: Create pull request to s2-env-configuration devex-dev branch
          uses<EMAIL_ADDRESS>          with:
            github_token: ${{ github.token }}
            allow_no_diff: true
            assignee: bentonjimmy
            source_branch: main
            target_branch: devex-dev
            title: "feat(deployment): updated devex-dev to latest s2-deployments tag"
            body: "Updated branch to latest s2-deployments tag"

  continuous-integration-2:
      name: "Upper Environment Pull Requests - demo-dev"
      runs-on: ubuntu-latest
      steps:
        - name: Checkout s2-env-configuration
          uses: actions/checkout@v3
          with:
            fetch-depth: 0
        - name: Create pull request to s2-env-configuration demo-dev branch
          uses<EMAIL_ADDRESS>          with:
            github_token: ${{ github.token }}
            allow_no_diff: true
            assignee: bentonjimmy
            source_branch: main
            target_branch: demo-dev
            title: "feat(deployment): updated demo-dev to latest s2-deployments tag"
            body: "Updated branch to latest s2-deployments tag" ```

## :warning: Checklist
* [x] Provided a clear and concise description of what the issue is.
* [x] Given a clear and concise description of what is expected.
* [x] Proposed a clear and concise description of any alternative solutions or other features.
* [x] Added any other context or screenshots about the feature request.
* [x] Associated pull request has been already created and link was provided.

*Check [CONTRIBUTING.md][contributing] and [CODE_OF_CONDUCT.md][code] for more information*

[contributing]: https://github.com/devops-infra/.github/blob/master/CONTRIBUTING.md
[code]: https://github.com/devops-infra/.github/blob/master/CODE_OF_CONDUCT.md

The issue seems to be with this line: https://github.com/devops-infra/action-pull-request/blob/master/entrypoint.sh#L99
This line is checking if the source/head has any other PR open where it is the source/head. If it retrieves a value, this value is later used for PATCH-ing the PR.
I think this line of code should be checking for a pre-existing PR that has the same source/head and target/base.

Opened a PR with the change: https://github.com/devops-infra/action-pull-request/pull/100

Thank you for this change :)

Had the same issue with v0.4.2.
Thanks for this fix, really helped us when we were creating new Actions again.


Slow update from table data view results in locked UI

A slow update from an SQL Editor window behaves beautifully: it shows the "Read data" progress bar with a cancel button for the duration of the update.
A slow update from the table data view blocks the event thread, completely freezing the DBeaver UI for the duration of the update. This results in "application not responding" messages. (The transaction eventually times out and DBeaver returns to normal, but on my system this takes almost a minute)

If you still can reproduce this issue - could you try to make a tread dump (jstack <dbeaver-pid>) and post it here?
It's a bit strange issue. Can't yet find any differences in data update from SQL editor of table viewer..

I am actually reproducing this using SELECT * FROM x FOR UPDATE, then opening table-data view in DBeaver and attempting to edit a cell. Attached is the thread dump.
threads_report.txt

Thanks for thread dump.
Entity editor save fixed.