[BUG] return an Error will not stop middleware chain.Still call route handler!

Use async middleware, retuen an Error. Still call route handler.
But in middleware docs said it will trigger global error handler as we are returning an Error,Docs

Could you provide a reproducible example? I believe the example snippets already have tests for them which would fail If they were not behaving properly?

Could you provide a reproducible example? I believe the example snippets already have tests for them which would fail If they were not behaving properly?

https://github.com/SaltFish001/hyperexpress_exm
here

Yep i can confirm this aswell.
Middleware:
const verifyRequest = (permission) => {
    return async (req, res) => {
        try {
            let UserToken;
            // Get the token from the header
            if (req.headers['authorization'] != undefined) {
                UserToken = req.headers['authorization'].replace('Bearer ', '');
            } else {
                throw new InvalidToken('No Token Provided').withBackUrl("none");
            }
// Some other code
        } catch (error) {
            return error; // This will trigger global error handler as we are returning an Error
        }
    };
};

Route:
router.get('/', verifyRequest('app.admin.usermgm.users.read'), limiter(), async (req, res) => {
    const query = await pageCheckDataTable.validateAsync(req.query);
    const users = await admin.users.get_page(Number(query.page) - 1, query.size, query.search, query.sort, query.order);
    res.status(200);
    res.json(users);
});

When in this case no token is provided, the route gets executed.
When adding a throw, it will crash the program
C:\Users\1515\Documents\GitHub\EBG-Webpage\node_modules\hyper-express\src\components\compatibility\ExpressRequest.js:43
        const first = this.#negotiator.mediaType(mimes.filter((type) => typeof type === 'string'));
                           ^

TypeError: Cannot read private member #negotiator from an object whose class did not declare it
    at Request.accepts (C:\Users\1515\Documents\GitHub\EBG-Webpage\node_modules\hyper-express\src\components\compatibility\ExpressRequest.js:43:28)
    at Request.accepts (C:\Users\1515\Documents\GitHub\EBG-Webpage\node_modules\hyper-express\src\components\http\Request.js:950:29)
    at Object.on_error (C:\Users\1515\Documents\GitHub\EBG-Webpage\src\app.js:182:34)
    at Response.throw (C:\Users\1515\Documents\GitHub\EBG-Webpage\node_modules\hyper-express\src\components\http\Response.js:869:33)
    at C:\Users\1515\Documents\GitHub\EBG-Webpage\node_modules\hyper-express\src\components\router\Route.js:123:35
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.14.0

Ok so the error where it skips into a route was fixed after i deleted node_modules folder and my package_lock and just installed everything again. However the error i saw when returning is now permanent. And i´ve made a new issue for it #329

Yeah, the codebase where i´ve not deleted node_modules folder before updating still got this bug while the exact same codebase works on a diffrent machine with fresh install of nodemodules.
I can only provide the debuger steps, since its not reproducable. I´ll later try copying my modules folder to check if thats the cause.

If the middleware would not error, it would attach the data to the req to use in routes/other middlewares.
But since it errored, this data is missing but it still executed my route as seen here.

The lagg of this data then throws the error "Cannot read properties of undefined (reading 'user_id')" and this tfinaly triggers the global error handler code at
app.set_error_handler((req, res, error) => {
});

I´ve now tested all the version between, its from 6.16.4 -> 6.17.2
On 6.16.4 status 500 with the error is returned
From version 6.17.2  status 200 with the secret message is returned.

This isn't actually a bug in the code but rather a problem in the documentation. The problem is using a return statement doesn't actually pass control to the error handler, and I don't believe it should either from a design philosophy. If you change your verifyRequest middleware to only throw your error, rather than throw -> catch -> return, you will get the expected behaviour.
I will note that I believe there is another issue with how errors are handled in hyper-express. I have mentioned this in PR #328.

Thanks for your quick response pointing this out @zeta-squared. I've tryed it like you said and it works in the new version again.
However using it without the try catch resutls in a exit using the previus version.
throw new Error("No")
              ^

Error: No
    at Object.handler (C:\Users\1515\Desktop\hypertest\index.js:10:15)
    at Route.handle (C:\Users\1515\Desktop\hypertest\node_modules\hyper-express\src\components\router\Route.js:112:37)
    at Server._handle_uws_request (C:\Users\1515\Desktop\hypertest\node_modules\hyper-express\src\components\Server.js:527:19)

In gerneral there should be a test to catch when any behaviour with error handling changes like this. At least i do not expect such significant change from such a smal version jump.

That's strange I copied your snippet from above and tested with my suggestions and they work. I've included it below.
const HyperExpress = require('hyper-express');
const app = new HyperExpress.Server();

const port = process.env.PORT || 5000;
const bindip = process.env.BINDIP || '<IP_ADDRESS>'

const verifyRequest = () => {
    return async (req, res, next) => {
    /**
     * Optionally replace the try-catch block with:
     * console.log("Yes")
     * throw new Error("No")
     */
        try {
            console.log("Yes")
            throw new Error("No")
        } catch (error) {
            next(error); // This will trigger global error handler as we are returning an Error
        }
    };
};

app.get('/', verifyRequest(), async (req, res) => {
    res.status(200);
    res.json({
        message: `Secret`
    });
});

app.set_error_handler((req, res, error) => {
    res.status(500);
    res.json({
        message: error.message
    });
});

app.listen(port, bindip)
    .then((socket) => console.log(`Listening on port: ${port}`))
    .catch((error) => console.error(`Failed to start webserver on: ${port}\nError: ${error}`));

Make sure npm i realy installs 6.16.4 or ^6.17.2
It works on ^6.17.2
It does not work 6.16.4

I wrote this middleware ~2 years ago, reading whatever documentation there was back then and endet up with the try & catch version. Im fine with change to this, but i would like to read about this change before it happens and not by my entire codebase breaeking from a "smal" version jump, i hope you understand.

I´ve looked at @zeta-squared  #328 and your solution there with next(error) works for both versions, but you left the command with return or throw it. I've tryed throw in #329 and that just dosn't work for me at all :/
const verifyRequest = () => {
    return async (req, res, next) => {
        try {
            console.log("Yes")
            throw new Error("No")
        } catch (error) {
            next(error);
        };
    };
};

@BolverBlitz
I have left the throw in my fork because that works in the current version of hyper-express so it should be included. Just to help me understand the situation a bit more, are you trying to transition to the current version of hyper-express or are you wanting to stay on 6.16.4 and add additional features to your application but are running into issues because the current documentation is not relevant for 6.16.4?

I work on this application for over a year and from time to time i update my packages with npx npm-check-updates -u when there is a (large) jump from for example 1.0.0  to 2.0.0 or 1.11 - 1.86 then i check the docs of the module if there where any breaking changes.
I did this a few days ago, i was on 6.14.12 and updated to 6.17.3. For me thats a smal update so i did not check docs on breaking changes and since it seemd to work at first glance i just continue to work on the project.

Spoiler: My spesific story, not relevant to this issue at all just for your question
Now yesterday i wrote a API route to allow the user to view and remove all of his current sessions, when testing this i got the error that the user was not defind when the UI updated after deletion was completed. My `verifyRequest` middleware validates the session and then adds users permissions and the user itself to `req.user` which i use in my route to save a database transaction.
At first glance, this makes sense because the session got deleted by the previus request. However later i realized that it should not even go into the route because the session was invalid but because "bug" (or whatever you wanna call it) the returned error did not matter anymore. Most routes perform actions by session context so `db.user.updateName(req.user.id)` so a user can only ever update his own data, but admin routes use `db.user.updateName(param.id)` (param refering to `/editname/:id`. So on 6.17.3 every user can just send any token, or even just not include a token at all and can edit any user with those routes because the middleware won´t stop it anymore.

@BolverBlitz Ok I understand now. Going back to:

I´ve looked at @zeta-squared #328 and your solution there with next(error) works for both versions, but you left the command with return or throw it. I've tryed throw in #329 and that just dosn't work for me at all :/
const verifyRequest = () => {
    return async (req, res, next) => {
        try {
            console.log("Yes")
            throw new Error("No")
        } catch (error) {
            next(error);
        };
    };
};

Are you saying that just using throw instead of a try-catch in 6.17.3 does not work either?

Good call, looks like this works with the smal code example here just fine.
It dosn´t work in my project and i have no idear why. I can´t write a smal example to reproduce it, sorry.
Its caused either by a throw new Error in the middleware, or by a req.accepts('html')
The debugger makes it seem everything is fine until this point.

Then in the next step the errow was thrown

@BolverBlitz is your application written in JavaScript or TypeScript?

@zeta-squared Pure JS, i did link to it there in the spoiler.

I work on this application for over a year and from time to time i update my packages with npx npm-check-updates -u when there is a (large) jump from for example 1.0.0 to 2.0.0 or 1.11 - 1.86 then i check the docs of the module if there where any breaking changes. I did this a few days ago, i was on 6.14.12 and updated to 6.17.3. For me thats a smal update so i did not check docs on breaking changes and since it seemd to work at first glance i just continue to work on the project.
Spoiler: My spesific story, not relevant to this issue at all just for your question
Now yesterday i wrote a API route to allow the user to view and remove all of his current sessions, when testing this i got the error that the user was not defind when the UI updated after deletion was completed. My verifyRequest middleware validates the session and then adds users permissions and the user itself to req.user which i use in my route to save a database transaction. At first glance, this makes sense because the session got deleted by the previus request. However later i realized that it should not even go into the route because the session was invalid but because "bug" (or whatever you wanna call it) the returned error did not matter anymore. Most routes perform actions by session context so db.user.updateName(req.user.id) so a user can only ever update his own data, but admin routes use db.user.updateName(param.id) (param refering to /editname/:id. So on 6.17.3 every user can just send any token, or even just not include a token at all and can edit any user with those routes because the middleware won´t stop it anymore.
Edit: If you wanna look at the code, its there: https://github.com/EBG-PW/EBG-WEB-Core/blob/7c62ebacfb0d74d19b75ff7780017c659daa1a00/middleware/verifyRequest.js#L14-L85 https://github.com/EBG-PW/EBG-WEB-Core/blob/7c62ebacfb0d74d19b75ff7780017c659daa1a00/api/user.js#L76-L90 https://github.com/EBG-PW/EBG-WEB-Core/blob/b5bae22f588d2cdc19a830d0ddfd2d23bf8546a9/api/admin_user.js#L59-L64

@BolverBlitz I'm sorry I couldn't be anymore help. I have looked at the code you linked and there are many try-catch blocks which will catch then return the error. It's possible that these are causing the conflict. At least for now you have a working solution.
When you have had a chance to write some tests and reproduce the bug can you please let me know. I need to make sure that if this is indeed an unintended bug that I account for it as well with the router specific error handlers in my fork - and of course if they're accepted into the main repo.


Hide non essential parts of "Network" snippets by default

Updated net.md to hide error_chain boilerplate by default
it can be exposed by selecting the "expand button"
The expand button is no longer hidden
This is connected to https://github.com/brson/rust-cookbook/issues/106
@dtolnay please check if net.md and decide if such approach is acceptable

Please note no other section was updated as this is only a demo for the moment ;)

Thanks! This is great.
Looks like the hidden parts are awkwardly indented by one space when visible. Is that something we can fix or a mdBook bug?
Is // fn main() required?

both indentation and // fn main() are problems with mdbook:

the hidden code has to have at least one space from # char or the doctests will not compile. Possibly this could be solved in mdbook
// fn main() - is a workaround for mdbook inserting its own boilerplate

fn main() {
...

around playpen if it does not find string fn main() in the example (due to quick_main!)

Let's fix both of those in mdBook before merging this. I think the solutions are:

It should treat # the same way rustdoc does. That means no awkward one space indent.
Do not insert boilerplate if there is a quick_main!.

I filed https://github.com/azerupi/mdBook/issues/281 and https://github.com/azerupi/mdBook/issues/282 to follow up on the mdBook fixes.

@dtolnay I made (hopefully nonidiotic) PR's for both of these issues.
For what is worth the indentation problem can be solved by locally patching the book.js
but I would strongly prefer for this problem to be solved in mdbook.

Rebased and cleaned up the commit. As both problems are now fixed in upstream mdbook I would wait for the next release (0.0.22)

@dtolnay mdbook has released a version (0.0.22) with fixes for both blockers.
I have rebased the PR for your consideration.
If the idea and this PR is ok then I'll gladly update rest of the examples.

Thanks!


Make ToS checkbox more obvious on checkout

We've been seeing some failed checkout requests due to checkout persons not noticing the ToS checkbox at the top of the page. We should make it more obvious so that doesn't happen.

Note that this was failing silently, compounding the issue (see #1227). Nonetheless, we should make it more obvious.


Realt-time collaboration

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
Make it possible to collaborate on the same page.
Examples 🌈

https://wishlist.webflow.com/ideas/WEBFLOW-I-39
https://liveblocks.io/
https://github.com/ToolJet/ToolJet/pull/2517
https://vercel.com/live
https://www.figma.com/blog/how-figmas-multiplayer-technology-works/

Motivation 🔦
This is similar to #348 but covers multiple editors. To be honest, seeing Webflow, Retool not having this feature, and how developers work in their own PRs, I doubt this is a feature developer would really want. But who knows, upvotes will tell us.

I strongly believe most people look the wrong way at what's the benefit of real time collaboration. The big advantage really isn't about working in a document simultaneously. It's about having a single source of truth. About knowing that whenever you open the document, you're looking at the latest version, and having the confidence that when you're editing a document, your changes will be in there for the next person. It's about avoiding branching off and having to maintain multiple versions of the same document.
The fact that I see someone else's cursor move and realtime type is a nice gimmick but most of the time it's not practical working on a document simultaneously.

About knowing that whenever you open the document, you're looking at the latest version

Strong agree with this. Same in the GitHub PRs view that has a websocket to let you know that there is a new commit.

Tooljet, dynaboard and appsmith have it.

I would be careful with this. Maybe they got trapped into the same thinking as of<EMAIL_ADDRESS>at 💯. "Retool doesn't have X, let's add X". I think that it should be more: "What is a core dimension of the problem that we can make x10 better?"

Strong agree with this. Same in the GitHub PRs view that has a websocket to let you know that there is a new commit.

Yes, but merging conflicts manually is still a difficult process. the 10x better approach might as well be, "eliminate the possibility for merge conflicts altogether".
The implementations in appsmith and tooljet feel like they're an afterthought. They are indeed bad examples. Maybe we should rather look at google docs vs. word. Or figma vs. sketch? I may be wrong but I have a sense that their realtime nature is a great contributor to their success. Maybe the paradigm is only useful for editing documents?

Maybe the paradigm is only useful for editing documents?

I guess so. A design/document has a lower threshold for anyone to contribute, hence collaboration is needed. But the same doesn't apply to building a production app.
In the broader view of allowing collaboration. I see 3 options:

Real-time commenting: A user will be able to see others commenting and their pointer moving. Retool doesn't have this. Though it is possible through Cord: https://retool.com/blog/build-together-in-retool-with-cord-comments-and-annotations/
Multi-user editing: Like the present Toolpad, Retool experience, and it is not real-time. https://community.retool.com/t/multiples-users-collaborating-on-the-same-app/3852
Real-time multi-user editing: As discussed above like Figma/Google Docs

I think before we consider 3. we should do 1.


Amplify push randomly restored cloud environment to previous version of it

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v12.12.0
Amplify CLI Version
4.51.3
What operating system are you using?
Ubuntu 20.04
Amplify Categories
Not applicable
Amplify Commands
pull, push
Describe the bug
I created a new Lambda function in the project and made some changes, then I tried to push it. When I do, I notice in the changes log that one of the functions is marked as Deleted, but obviously I did not delete it. Since this has happened to me before, I already have a "procedure" for such scenario. I do amplify env pull --restore to restore the local to the previous cloud version, then I recreate the function and try to push again. Everything seems correct in the changes log, the new function is marked as Created, and the other functions as No change. But when I check on the AWS Console, all the cloud environment has been downgraded to a very old version of it. Now I don't have a way to restore the previous version in the cloud. The local and the remote version are different (since the local is still the up-to-date version) but if I try to push again, the push really behaves as a pull. The change log shows the new functions as Deleted and No change to the already-existing ones.
Expected behavior
The function that I did not delete should not have been marked as Deleted. The push to the cloud environment should not have randomly restored to a previous  version of it. I should now have a way to at least push again my local version (which is currently the correct one).
As requested by several others users, there should be a clear and simple way to restore to previous cloud versions to avoid such disasters.
Reproduction steps
I don't know how to reproduce this bug. It has happened to me before that some function are marked as Deleted even though I never deleted them, but this is the first time that the push breaks everything in the cloud environment.
GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
No response

Hey @alessandromoscato thanks for raising this! How were the changes made to the project? Were these changes done via the console, cli, mix of both, etc.?

Hi @josefaidt, everything was done via cli. The sequence of commands was:

amplify add function, to create the Lambda function
amplify update api, to attach the Lambda function to a REST API
Made some changes to the source of the function
Attempt to amplify push, but realized that another function results as Delete even though I hadn't deleted it, therefore I do not proceed with the push
amplify env pull --restore, to fetch the cloud environment locally. The function created at 1. is correctly deleted from local environment
Repeat steps from 1. to 3.
amplify push, this time everything seems correct. The function (re)created at 6. is marked as Update and no other function is marked as Delete, therefore I proceed with the push.
Check in the console and realize that all functions in the project have been "rolled back" to a very old version of the project
There is an obvious difference in the local environment (which is still up-to-date) and the cloud environment, therefore I try amplify push again. No changes are detected

Hope this more detailed explanation helps reproduce the bug. Obviously, the issue already occurs at 4., but I have perfomed steps 1. to 3. several other times before and everything worked fine.

Some of the functions have Lambda layers, but I do not create them (the layers) within the Amplify project. At the moment, I only have one environment.

For the functions that were rolled back, are they all a part of the same lambda layer? Is it just a specific layer?

Yes, they were all part of the same layer. By that, I mean that I have several functions that have the same layer attached.

@alessandromoscato were any changes done outside of Amplify in between local changes? I'm not able to reproduce, but I'm thinking there's some drift between what is available locally and what is available in the cloud. There has been significant work done to Lambda Layers in our most recent release. Can you try upgrading to the latest version of the CLI and see if the issue persists?

Hey @alessandromoscato just wanted to follow up on this issue and see if you are still experiencing it on the latest version of the CLI?

Hi @josefaidt, sorry for the late response. I have upgraded to the new CLI about a couple of weeks ago and the issue didn't happen for a while. Unfortunately, yesterday it occurred again.
To answer your question above, no changes were done outside Amplify in between local changes. Let me add two more info though:

Not sure if this is relevant but all my Lambda functions are inside a VPC. To allow this, I perform two "manual" steps each time I create a new function. After the first time I push the function to the cloud, in the Management Console I attach a specific policy to the function to allow it to be inside a VPC. Then I modify the (local) cloud formation template to include the VPC and push the function again.
I use an EC2 instance as a dev machine. Therefore, I have an AMI that "represents" my dev environment. Each time I work, I create a brand new EC2 instance from the AMI and pull my repo from GitHub. To make sure that the cloud environment and my local environment are aligned, I also run amplify env pull before I start working.

Once again, this is my standard set up and usually everything goes smoothly. I have not been able to figure out myself the set of steps that lead to the bug.

Hey @alessandromoscato thank you for the details!

Then I modify the (local) cloud formation template to include the VPC and push the function again.

I believe this may be causing the drift but I have not been able to reproduce. A couple of follow-up questions:

are there multiple Lambda Layers in the project where a Lambda may be connected to both layers?
are the changes made to the Lambda's cloudformation template mimicking what has been performed in the console?
have you noticed any unwanted changes to the cloudformation templates upon running an Amplify command that are reversing/removing your changes?
are the associated Lambda Layers also getting rolled back?

Hi @josefaidt, the issue has not been happening for a while now. Please find below my answers:

no, there is just one layer, to which all Lambda functions are connected
could you please clarify this question?
no, I check the templates and they seem correct and consistent with what I have done. My understanding is that there is a local copy of the template in a hidden folder, which is used to make the comparison between local and cloud templates. I believe that is the template that gets unwanted changes or rollbacks
It depends, my impression is that since the aforementioned templates in the hidden folder do not get updated or get rolled back, the status of the project (including the Lambda layers) will be restored to the "version" of those hidden templates

Hey @alessandromoscato thank you for the information and glad to hear you are not experiencing the issue anymore! I have not been able to successfully reproduce with the steps provided, however I do want to continue to keep an eye on this issue. If/when you experience this issue again please provide the steps necessary to reproduce, which will help us better identify what went awry.
I'll close this issue for now, but please respond with the reproduction steps if/when you experience it again and we can re-open and investigate further.


Different multi-select-two-sides fields in same form act like one input field

Reproduction steps:

create 2 selects in same form
try to select item from first one, it's selected in second one, check
Another possible Bug it filters on name not the id some duplicate names considered as one item check 1st and 2nd screenshots

I found a work a round, it's to manipulate each data list IDs and add a suffix  or a prefix such (1_1, 1_2, 1_3)  for the first options list and (2_1, 2_2, 2_3 ) for the second options list

Good call! I will work on a fix for this soon to allow use multiple fields on the same form.

@lucasgiovanny is that works well with many multi-select-two-sides with same array of data because if I selected one in first tab it's selected in second tab  ?


git-completion, OS X, Homebrew instructions

For more recent versions of git (installed via brew), the shell script should be:
if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
  . `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

Does not work on my macOS Sierra with Git version 2.9.3 (Apple Git-75). I get errors:
-bash: __git_find_subcommand: command not found
-bash: __gitcomp: command not found

WEll for me there is just nothing. So i added the git-flow-completion.bash into /etc/bash_completion.d folder.
i added this script to my .bash_profile
if [ -f `brew --prefix`/etc/bash_completion.d/git-flow-completion.bash ]; then
  . `brew --prefix`/etc/bash_completion.d/git-flow-completion.bash
fi

then reload bash
source ~/.bash_profile

Then what ? No auto completion at all! What am i missing ?

@erikhuizinga @manodupont My suggestion only works when you install git via brew. (I recommended installing it via brew because you can get the latest version easier.)

I did that too.
Sent from my iPhone
On Apr 7, 2017, at 11:32, Thomas <notifications<EMAIL_ADDRESS>wrote:
@erikhuizingahttps://github.com/erikhuizinga @manoduponthttps://github.com/manodupont My suggestion only works when you install git via brew. (I recommended installing it via brew because you can get the latest version easier.)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/bobthecow/git-flow-completion/issues/46#issuecomment-292569505, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHN6oZtY5blTWeVtBS9xnhp3PqsHt0z-ks5rtlcBgaJpZM4ID1JV.

When installed with brew the full path should be: /usr/local/etc/bash_completion.d/git-flow-completion.bash. It should be installed there when you install git (via brew).

Me too after all hassle. Brew update and brew install git and brew upgrade
truly work magically!
On Fri, 7 Apr 2017, 18:20 Thomas<EMAIL_ADDRESS>wrote:

When installed with brew the full path should be:
/usr/local/etc/bash_completion.d/git-flow-completion.bash. It should be
installed there when you install git (via brew).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bobthecow/git-flow-completion/issues/46#issuecomment-292582215,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ASeikK1Ric6cpuJcJ0Ml8nt3hy_5Z4HQks5rtmI9gaJpZM4ID1JV
.

I was able to fix this by relinking the newest.
brew install git && brew link --overwrite git

I had to brew uninstall git then brew install git, perhaps because git was installed before bash_completion and there were no updates to pick up.

I just made it work!
First install with brew bash-completion just running brew install bash-completion
Then download this two files
git-completion.bash
git-flow-completion.bash
Now copy them to the folder BREW_PREFIX/etc/bash_completion.d/ typically BREW_PREFIX is /usr/local but you can figure out which one is yours just running the command brew --prefix
And lastly copy this instructions to your ~/.profile file
if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi
if [ -f $(brew --prefix)/etc/bash_completion.d/git-completion.bash ]; then
  . $(brew --prefix)/etc/bash_completion.d/git-completion.bash
fi
if [ -f `brew --prefix`/etc/bash_completion.d/git-flow-completion.bash ]; then
  . `brew --prefix`/etc/bash_completion.d/git-flow-completion.bash
fi

Close the terminal or source the .profile file to enable autocompletion
And now you can use tab to autocomplete commands on git

@dnetix Your solution worked for me too (Sierra 10.12.6)
How comes those files are not downloaded automatically by bash though?

@dnetix Thank you!!! Finally works. I'd been trying half-heartedly to get this working for a couple months and kept giving up.

@dnetix Many thanks for your solution. It works great. I've been bothered by this Git-cannot-autocomplete for about 3 months after starting my journey on Mac OS (Sierra 10.12.6 + Git 2.14.3).
By the way either 'source ~/.bash_profile' or 'exec -l $SHELL' enables the autocompletion.

@adrian2x It looks like this gem hasn't been updated in quite some time. Looks like it needs updating.

another update to this little gem.
thanks

Thank you soooo much @dnetix. Finally it works!!!!

My usage

brew install bash bash-completion@2 and set it as my shell
put completion script to /usr/local/share/bash-completion/completions/<command_name> for lazy loading

the script is not loaded until I  on the command
use a jumper script if needed

e.g.
# file: /usr/local/share/bash-completion/completions/git
if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash ]; then
    . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
fi

@dnetix thank you for your solution.It works for me.

+1 hat tip for this 👌

+1 - ty @dnetix !!

finally!!! Thank you @dnetix

Nono of the above worked for me :(
I am using macOS Catalina version 10.15.7 (19H114)
@dnetix your solution gives me this error /usr/local/etc/bash_completion:1577: command not found: complete when running source ~/.bash_profile
Anyone can help?

Nono of the above worked for me :(
I am using macOS Catalina version 10.15.7 (19H114)
@dnetix your solution gives me this error /usr/local/etc/bash_completion:1577: command not found: complete when running source ~/.bash_profile
Anyone can help?

This is quite ancient -- the .bash script is now considered deprecated, apparently -- zsh is now the default terminal on OSX it seems.

This is quite ancient -- the .bash script is now considered deprecated, apparently -- zsh is now the default terminal on OSX it seems.


write_resource_from_urn

In order to enable event based workflows (e.g. updating a resource in storage from a CloudWatch Event trigger) we need to be able to trigger the writing of a resource from its URN.

Supported in release 0.13.0 #90


Vietnamese Translation "work-in-progress"

We've just started the translation of https://vuejs.org
We created the organization and folked the vuejs.org repo.

https://github.com/vuejs-vn (vuejs Vietnamese user group)
https://github.com/vuejs-vn/vi.vuejs.org (vuejs Vietnamese repo)

We'll keep you up-to-date when the project has more updates.
Thank you. (contributors are always welcome)

welcome !

Hello!
The current demo site is available at http://vuejs.senviet.org/. We'll update the Translation Status checklist soon.
Thank you.

I will contribute on this issue ;)

Hi @hngiang
Thank you so much.
Feel free to contribute at https://github.com/vuejs-vn/vi.vuejs.org.

Hi @hngiang
Welcome!, please feel free to contribute at https://github.com/vuejs-vn/vi.vuejs.org.
Thank you so much.

Cảm ơn bác nhiều ^^


Make it work in python 3

New print-syntax () needed

@InsulinJunkieDe - thanks so much for your contribution!


Add a simple chlorophyll 3DVAR ctest

Description
Include chlorophyll in the SOCA 3DVAR ctest. Due to a number of issues yet to be resolved (e.g. geovals refactoring, log-transformation, depth integration and penetration), here we start simple by only assimilating surface chlorophyll using the Identity operator. This feature will be revisited and improved at a later stage to integrate cutting-edge science.
Solution
The proposed solution is implemented in a feature branch here.
ocn.bkgerror.nc is updated to include chl, the values of which are set to be 30% of the background values according to literature.

Sounds like a good plan @liuxiao37k


ruby - gems are incompatible with other patch-level versions of ruby

Describe the bug
Nix's ruby seems quite brittle - if I install a gem with C extensions and then switch to a different nix ruby version (even with just a patch-level version difference), it fails to load the gem with incompatible library version.
This can make gem entirely unusable if, say, the stringio gem is installed in GEM_PATH:
$ gem list
<internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:88:in `require': incompatible library version - /root/nixpkgs/bundle/gems/stringio-3.0.5/lib/stringio.so (LoadError)
	from <internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:88:in `require'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych/nodes/node.rb:2:in `<top (required)>'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych/nodes.rb:2:in `require_relative'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych/nodes.rb:2:in `<top (required)>'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych.rb:15:in `require_relative'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych.rb:15:in `<top (required)>'
	from <internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:151:in `require'
	from <internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:151:in `require'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems.rb:608:in `load_yaml'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/config_file.rb:346:in `load_file'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/config_file.rb:189:in `initialize'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/gem_runner.rb:71:in `new'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/gem_runner.rb:71:in `do_configuration'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/gem_runner.rb:33:in `run'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/bin/gem:21:in `<main>'

It's not possible to run gem uninstall stringio or gem pristine stringio at this point - the only fix seems to be manually rm -rfing the gem directory.
The same isn't true for ruby from docker or rvm - I can update patch versions and still expect to load existing gems. Gems aren't compatible across minor/major version updates, but that's usually handled by GEM_PATH being scoped to the minor version (eg ~/.gem/ruby/3.1.0/, ~/.gem/ruby/3.2.0/, etc).
Steps To Reproduce
Steps to reproduce the behavior:

Clone nixpkgs, checkout 17fa5d3a36ec73c897f9024b7158e13867faf76b (where ruby_3_1 is at 3.1.3)
Use this version of ruby to install a gem with a c extension. Normally I'd have this in my shell and gem install foo would be installing to the default location of ~/.gem/ruby/3.1.0/gems, but as a self-contained one-liner:

nix shell .#ruby_3_1 .#gnumake .#bintools  -c env GEM_HOME=./bundle GEM_PATH=./bundle LIBRARY_PATH=$(nix eval --raw .#glibc)/lib gem install stringio

Checkout 1aecb7bea358c820032072eca6f82f5a50efc52b (where ruby_3_1 is at 3.1.3)
Try and do anything with gem:

$ nix shell .#ruby_3_1  -c env GEM_HOME=./bundle GEM_PATH=./bundle gem list
<internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:88:in `require': incompatible library version - /root/nixpkgs/bundle/gems/stringio-3.0.5/lib/stringio.so (LoadError)
	from <internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:88:in `require'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych/nodes/node.rb:2:in `<top (required)>'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych/nodes.rb:2:in `require_relative'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych/nodes.rb:2:in `<top (required)>'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych.rb:15:in `require_relative'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/psych.rb:15:in `<top (required)>'
	from <internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:151:in `require'
	from <internal:/nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:151:in `require'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems.rb:608:in `load_yaml'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/config_file.rb:346:in `load_file'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/config_file.rb:189:in `initialize'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/gem_runner.rb:71:in `new'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/gem_runner.rb:71:in `do_configuration'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/lib/ruby/3.1.0/rubygems/gem_runner.rb:33:in `run'
	from /nix/store/yg797kp2fwwjzfzf78cf3ixqn7p5lid8-ruby-3.1.4/bin/gem:21:in `<main>'

Expected behavior
It successfully loads gems with c-extensions following patch-level upgrades.
Additional context
I think I've seen this even if the ruby patch level doesn't change after upgrading my nixpkgs channel, but haven't managed to narrow down a commit where that happens.
You can see this working better in docker with something like:
docker run -v $(pwd)/docker-bundle:/bundle -e GEM_PATH=/bundle -e GEM_HOME=/bundle ruby:3.1.2 gem install stringio
docker run -v $(pwd)/docker-bundle:/bundle -e GEM_PATH=/bundle -e GEM_HOME=/bundle ruby:3.1.3 gem list

I'm not sure what's special about the nix version of ruby that makes it so intolerant of patch-level updates.
Notify maintainers
@vrthra @manveru @marsam
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.105, NixOS, 22.11 (Raccoon), 22.11.3539.3e01f83884b`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.11.1`
 - channels(root): `"nixos-22.11"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

I run into this same situation on every update as well. I keep uninstalling and reinstalling gems with native extensions which gets very tedious indeed, there are a lot :-)
Would be great to find a definitive solution for this together.

I've been mitigating it by overriding GEM_HOME to include nix's derivation hash, so my gems get installed to, eg,
~/.gem/ruby/ppaf93qzk1dx2zal81js8m91snfz48z8-ruby-3.1.4/ -
let gemHome = "$HOME/.gem/ruby/${builtins.baseNameOf ruby}"; in {

# ...

  shellHook = ''
    export GEM_HOME="${gemHome}";
    export GEM_PATH="${gemHome}";
  '';
}

greetings !
@jdelStrother your solution is actually pretty neat !
The underlying issue is itself is pretty obvious, as non nix build systems have certain expectations about paths which don't hold true in nix
if you use gems from nix ( either via nixpkgs or bundix) you are not going to have those issues
here is example of using gems via bundix
https://nixos.org/manual/nixpkgs/stable/#developing-with-ruby


Collection updates ($inc) in hooks running twice and double incrementing server values.

In a Collection JS file in my collections folder (both client and server) I have an after.update hook like this:
Widgets.after.update(function(userId, doc, fieldNames, modifier, options) {

    if(modifier.$set && modifier.$set.approved === true) {
        //  Increment gadget.totalPurchases - THIS IS GETTING CALLED TWICE
        Gadgets.update(doc.gadgetId, {$inc: {totalPurchases: 1}}, function(error) {
          if(error) {
            // error code
          }
        });
     }
});

I assume this is because it's running on both client and server.  However, your documentation says that it "works on the client, server, and mix".  Is this a bug?  If you use $set this doesn't happen because the same value gets set on both client and server.  But an $inc increments twice and saves all the way to the server a value that's doubly incremented and wrong.
If you're doing client/server collection hooks, is the idea to convert any $inc updates to $set updates before you use them in a collection hook to prevent this from happening?  If so, you should update the documentation.
Same problem here:
http://stackoverflow.com/questions/29092731/collection-before-hook-called-twice
The work-around is to wrap all my collection hook code in Meteor.isServer brackets. Is there a drawback to not having collection hooks on the client?  It seems to work just fine from the client this way.

I found another issue sort of related to this.  Let's say I indeed use a $inc to update a collection (Gadgets above) and then I have a second before.update hook on the Gadgets collection to set a value in the modifier before it writes.  In the Gadget's before.update hook its modifier is $inc: modifier.$inc.totalPurchases: 1.
If in that hook I want to add a set to the modifier object with a $set statement before the update to set some flag like  to true: modifier.$set.flag: true, it returns an error.
Can you not mix or "add to" modifiers?  If not, it just makes sense to convert any $inc updates to $set updates anyway since it limits you to what you can do in a before hook.

Looks like there's an issue converting an $inc to a $set... they resolve asynchronously and won't actually increment the database in time if a lot of objects are added at once.  So this isn't a solution.
More details here:  http://stackoverflow.com/questions/31617512/mixing-collection-hooks-modifier-operations-in-hook-causes-error

I'll close this as it appears to be all related to your same issue report

My other post was just me trying to solve this issue.  If you put a $inc collection hook in a client/server code-space, it still gets called twice.  I might mention this in your documentation - to explain wrapping a hook in Meteor.isServer or placing it in a server-only file.  That or elaborate further on what "Works across client, server or a mix" means exactly.
As a double-increment all the way to the server isn't expected behavior.

I agree the documentation could be clearer on this.


Copy "Docs" GitHub issue template to Consul adapter repo

Description
The Layer5 community's GitHub issue template for documentation is missing in this repo.
Expected Behavior
The meshery-consul repo should contain the documentation issue template in the ISSUE_TEMPLATE folder.

@hdelacru, if you're inclined you might choose to take a crack at this issue.


Improve the manual judge

Improve the workflow of the manual judge so the Delta part of the competition can run smoother.
This includes:

Add aliases automatically
Setup a working environment
Problemtools integration
Running submissions in jail

And more.

Fixed in branch judgesh


BUG-107573 filter images valid for cluster upgrade

DELETE THIS TEMPLATE BEFORE SUBMITTING
Describe the change you are making here!
Please include tests. Check out these examples:

https://github.com/hortonworks/cloudbreak/blob/master/core/src/test/java/com/sequenceiq/cloudbreak/service/blueprint/BlueprintLoaderServiceTest.java#L62-L76

Please include a short description. Check out these examples:

https://github.com/hortonworks/cloudbreak/commit/888b2e2a8887def28a24e26efcd6d9ca5863733a

If your PR resolves any open issue(s), please indicate them like this so they will be closed when your PR is merged:
Closes #xxx
Closes #xxx

If i start to create a cluster and invoke the cli command for the images, I got a NPE in isStackMatchIfPrewarmed. The cluster is just launched and missing a couple of information regarding versions, etc..


typo in code of stats tutorial page re "Univariate estimation"

On the page http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html
the code in the "Univariate estimation" section has the following lines:

ax.plot(x_eval, kde1(x_eval), 'k-', label="Scott's Rule")
ax.plot(x_eval, kde1(x_eval), 'r-', label="Silverman's Rule")

The second of the above lines should be using 'kde2' instead of 'kde1'.

Indeed. Thanks for the report @hayne.

Looks like that's my fault, will send a PR.


[Web] Text selection, and tooltip interactions seems broken on iOS

Steps to reproduce
Build the sample code for the web, then launch the website on a physical iOS device, or in a simulator.
When the website is up and running, interact with the TextField, by trying to select text in various scenarios.
Expected results
The behavior should be the same as when we select text in an iOS application.
Actual results
There are a few issues:

First, there is a weird "double overlay" on the selected text

In the screenshot above we can see a grey overlay, and a purple overlay for the selected text.

Then after a few manipulations, the contextual tooltip menu can be placed in the wrong place like at the very top of the screen

I tested this on 3.24.3 and on master with little to no improvement on master
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // TRY THIS: Try running your application with "flutter run". You'll see
        // the application has a purple toolbar. Then, without quitting the app,
        // try changing the seedColor in the colorScheme below to Colors.green
        // and then invoke "hot reload" (save your changes or press the "hot
        // reload" button in a Flutter-supported IDE, or press "r" if you used
        // the command line to start the app).
        //
        // Notice that the counter didn't reset back to zero; the application
        // state is not lost during the reload. To reset the state, use hot
        // restart instead.
        //
        // This works for code too, not just values: Most code changes can be
        // tested with just a hot reload.
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // TRY THIS: Try changing the color here to a specific color (to
        // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
        // change color while the other colors stay the same.
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          //
          // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
          // action in the IDE, or press "p" in the console), to see the
          // wireframe for each widget.
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const TextField(),
            const Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/user-attachments/assets/0e16cd4f-20d6-4bdc-9fcd-43d4aca020e0

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.3, on macOS 14.5 23F79 darwin-arm64, locale en-FR)
    • Flutter version 3.24.3 on channel stable at /Users/adrien.padol/fvm/versions/3.24.3
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (5 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0-rc3)
    • Android SDK at /Users/adrien.padol/Library/Android/sdk
    • Platform android-34, build-tools 35.0.0-rc3
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] VS Code (version 1.94.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.98.0

[✓] Connected device (6 available)
    • iPad de Adrien (mobile)         • 00008101-001805211128801E            • ios            • iOS 17.6.1 21G93
    • iPhone de Adrien (mobile)       • 00008101-0015250C3A82001E            • ios            • iOS 18.0.1 22A3370
    • iPhone 15 Pro Max (mobile)      • 9933FEE3-416B-40DC-8B91-5646B2E3B364 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • macOS (desktop)                 • macos                                • darwin-arm64   • macOS 14.5 23F79 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad                • darwin         • macOS 14.5 23F79 darwin-arm64
    • Chrome (web)                    • chrome                               • web-javascript • Google Chrome 129.0.6668.101
    ! Error: Browsing on the local area network for iPhone de Remi. Ensure the device is unlocked and attached with a cable or associated with the same local
      area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Reproducible using the code sample shared above.
The double selection issue is being tracked in https://github.com/flutter/flutter/issues/151479.

flutter doctor -v
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0.1 24A348 darwin-arm64, locale en-US)
    • Flutter version 3.24.3 on channel stable at /Users/deanli/dev/stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (5 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[!] Flutter (Channel master, 3.27.0-1.0.pre.66, on macOS 15.0.1 24A348 darwin-arm64, locale en-US)
    • Flutter version 3.27.0-1.0.pre.66 on channel master at /Users/deanli/dev/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 13718df71d (5 hours ago), 2024-10-16 01:17:25 -0400
    • Engine revision 6b93cf9fbc
    • Dart version 3.7.0 (build 3.7.0-27.0.dev)
    • DevTools version 2.40.1


version check has a bug

https://github.com/twintproject/twint/blob/e7c8a0c764f6879188e5c21e25fb6f1f856a7221/twint/cli.py#L335
twint raises an error that "TWINT requires Python version 3.6+" when you try to run it in Python 3.10 because the comparison casts the version as a float.
It would be better to take the version number as a tuple and compare it works with semantic versioning.
>>> (3, 10) > (3, 6)
True

I do this little change like you suggest @dmhowcroft and it seems to work:
--- cli.py.bkp	2022-01-15 10:23:22.172975710 +0100
+++ cli.py	2022-01-15 10:35:20.349681221 +0100
@@ -297,8 +297,7 @@ def main():
         run.Search(c)

 def run_as_command():
-    version = ".".join(str(v) for v in sys.version_info[:2])
-    if float(version) < 3.6:
+    if (sys.version_info.major, sys.version_info.minor) < (3, 6):
         print("[-] TWINT requires Python version 3.6+.")
         sys.exit(0)

I do this little change like you suggest @dmhowcroft and it seems to work:
--- cli.py.bkp	2022-01-15 10:23:22.172975710 +0100
+++ cli.py	2022-01-15 10:35:20.349681221 +0100
@@ -297,8 +297,7 @@ def main():
         run.Search(c)

 def run_as_command():
-    version = ".".join(str(v) for v in sys.version_info[:2])
-    if float(version) < 3.6:
+    if (sys.version_info.major, sys.version_info.minor) < (3, 6):
         print("[-] TWINT requires Python version 3.6+.")
         sys.exit(0)

This one works for me.


Check if gk points to greenkeeper

Since git from Homebrew tends to install gitk when installing git people using OSX may end up with gk being an alias to gitk --all --branches.
Maybe Greenkeeper should check which gk points to greenkeeper before suggesting to use gk in the greenkeeper help command.

@OmgImAlexis thanks for bringing this up.
I see no mention of gitk in https://github.com/Homebrew/homebrew-core/blob/master/Formula/git.rb
In addition, by the time greenkeeper help runs, the gk alias is already installed, and we have no way of telling (aside from running, which is surely not what we should be doing), whether it’s us or someone else.


Testing / automating examples

What do you think about adding a script to run all the examples automatically on the cluster? It could simply submit all of the run-torque.sh scripts for each example, but it would be a useful way for us to check out this project and run everything to make sure it works.

I think thats a good idea that I wanted to put in as well. I have tested these individually to ensure they at least run by hand. I think as a "1.0" release we just wanted to get good example files out there and the corresponding documentation with walkthrough.

Fixed by #33


Major change in stream expected version?

Hi @damianh ,
We have recently tried to upgrade to one of 1.2.x pre-release versions and got some unexpected behavior due to this change here https://github.com/SQLStreamStore/SQLStreamStore/blob/13ae8dc6390fc86e8be9f231f4d9d13cd96cecf5/src/SqlStreamStore/Streams/ExpectedVersion.cs#L23 compared to version 1.1.x.
So it looks like there should be a major version change. What versioning strategy is applied to this repo?

Are you using 1.2.x's ExpectedVersion with an older client (e.g. 1.1.x)? Or are you shipping the constant as part of another lib which you can't upgrade? What was the unexpected behavior (I suspect the reuse of -1)?

Well, as ExpectedVersion is an integer, the code which relies on this public contract made some assumptions about -1. After it was switched to 1.2.0-beta.6 some of the checks started to return different results.

I've never really liked these as a constant nor as an integer - it should be opaque to the consumer and nobody should ever base decisions on the underlying value - it's a deficiency in SSS's type system. Alas, that ship has sailed for SSS, and so here we are.

As I mentioned in #332, calling code should not just blindly rely on these
magic numbers. Use a value object in your application code and translate
before you call sql stream store.
On Sun, Nov 3, 2019 at 2:06 PM Yves Reynhout<EMAIL_ADDRESS>wrote:

I've never really liked these as a constant nor as an integer - it should
be opaque to the consumer and nobody should ever base decisions on the
underlying value - it's a deficiency in SSS's type system. Alas, that ship
has sailed for SSS, and so here we are.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/SQLStreamStore/SQLStreamStore/issues/331?email_source=notifications&email_token=AADY7BZ5MEDZNJLMKYFAJE3QR3EBVA5CNFSM4JH4SB22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC5SEFQ#issuecomment-549134870,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADY7BYXK6YIYYHJCAFVZH3QR3EBVANCNFSM4JH4SB2Q
.

--
Sent from my regular computer
http://twitter.com/thefringeninja
http://www.thefringeninja.com/

For now it looks to me that we cannot move on with this version as this is a breaking change, because a public API has been changed in a non-backwards compatible way. And it is not captured in this library's version if I would assume that it uses semantic versioning.

Use a value object in your application code and translate
before you call sql stream store

Could you please give an example?
IMO, since the API exposes a constant, I cannot imagine a way of wrapping it with anything which would not use an if() function of some sort (or directly expose the same value with a different name).
Aside of that, the ExpectedVersion type/contract mixes unrelated concerns together by introducing EmptyStream and NoStream. These have no relation to version but to the presence status of a stream. So I would argue that there is a need to introduce an entity called Stream which would have a set of properties exposed like bool=IsEmpty. NoStream does not fit into both approaches as it is neither a version nor a stream status, but probably is a part of a stream "accessor" interface.

It would help a lot if you had example code of what it is you are trying to
do.
On Mon, Nov 4, 2019 at 9:52 AM Semion Akimtsev<EMAIL_ADDRESS>wrote:

For now it looks to me that we cannot move on with this version as this is
a breaking change, because a public API has been changed in a
non-backwards compatible way. And it is not captured in this library's
version if I would assume that it uses semantic versioning.
Use a value object in your application code and translate
before you call sql stream store
Could you please give an example?
IMO, since the API exposes a constant, I cannot imagine a way of wrapping
it with anything which would not use an if() function of some sort (or
directly expose the same value with a different name).
Aside of that, the ExpectedVersion type/contract mixes unrelated concerns
together by introducing EmptyStream and NoStream. These have no relation
to version but to the presence status of a stream. So I would argue that
there is a need to introduce an entity called Stream which would have a
set of properties exposed like bool=IsEmpty. NoStream does not fit into
both approaches as it is neither a version nor a stream status, but
probably is a part of a stream "accessor" interface.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/SQLStreamStore/SQLStreamStore/issues/331?email_source=notifications&email_token=AADY7B45QZLNEIBODCBF4LDQR7O75A5CNFSM4JH4SB22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC6RWHY#issuecomment-549264159,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADY7B3J7T5MIS3HMFCV7CLQR7O75ANCNFSM4JH4SB2Q
.

--
Sent from my regular computer
http://twitter.com/thefringeninja
http://www.thefringeninja.com/

I agree this is a breaking change in that an existing value was (re)used for a different purpose and constants being copied and embedded into consumers can make this painful. You can only move to this version if you are willing to recompile, yes.


Adapted to python3

@adrianlzt  Thanks!!!

@adrianlzt Does it still works for python 2.7?

Sure, I have just tested it with Python 2.7.13 and Flask==0.10.1
El lun., 23 ene. 2017 a las 6:24, Danil Skachkov<EMAIL_ADDRESS>escribió:

@adrianlzt https://github.com/adrianlzt Does it still works for python
2.7?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/api-ai/apiai-weather-webhook-sample/pull/8#issuecomment-274403162,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADFnmHTRErA0oF88u3ww8iaiqe9-Ix4aks5rVDmJgaJpZM4LpZPg
.

@adrianlzt Thanks! :-)


Stock item page should show build allocations

Display 'available stock' quantity (total - allocated)

@SchrodingersGat
"Stock item page should show build allocations"
I believe this is now the case? At least I can see the build order on few stock items I looked at


Hex Editor is not updated if bytes are updated outside of editor

Testing #141347

Open hex editor from variables view
Update bytes in debug console or by stepping through code

🐛 => hex editor remains unchanged

I don't think we'll be able to detect byte updates via the debug console, but updates via stepping is covered by the 'known issue' in https://github.com/microsoft/debug-adapter-protocol/issues/238


[REPL] option to persist queries (in localstorage?) upon reloads

I find myself reloading the admin UI sometimes when things aren't fresh namely the schema, the globals (and sometimes the data in the explorer).
Upon reload, my previously executed queries in the REPL get discarded.
I find it annoying as it acts as my draft when prototyping. So I must resort to saving the EdgeQL queries somewhere else in a random file.
Also, the "Persist query" toggle at the bottom is somewhat confusing as I thought it would enable the above behavior while in fact it prevents the editor from clearing upon query execution.
So two usability notes on this:

First, the whole "clearing the editor after running a query" is weird and should not be the default. I know that's how REPLs work, but REPLs in general are very bad DX. Instead, the "Persist Query" should be ON by default and I'll argue that it should not even be an option. (see the next point)

To further explain, I expect my writing NOT to disappear after running the query. Often-time because my query is wrong and I want to immediately correct errors on it. Right now I must CMD+UP or click "Edit query" to re-run the query which is not convenient. And that's partly because I expect CMD+UP to go up the text editor instead of rewinding the history.
And to go up the history, maybe we can find another shortcut, or simply use the mouse to "edit query" which are in the right panel.

Besides, "Persist query" for me meant: persist queries in storage in my browser so when I come back to the UI, I find my previous queries ready to be tried and hacked upon. And this should also be the default. If for some reason, you want to clear your previous queries, maybe you can add a "Clear history" button on the right column to do just that.

That said, maybe I can help with this if others are sharing the same sentiment.
Have a nice day 😃

@jaclarke I think we should implement this.

Been implemented a while ago


Don't Block Redirection Link or Only Block Spy Pixel (Dropbox invitation link broken)

Summary
Dropbox domain is included in the "bad domain list" here:
https://github.com/apparition47/MailTrackerBlocker/blob/175ad0d7cce52204c1c98611b9fcdbfe8a7f7989/Source/MTBBlockedMessage.m#L191
This breaks Dropbox invitation links.
Expected behavior

The "bad domain list" only blocks/prevent link that call image, tracking pixel, or prefetch data.
If image source is from the "bad domain list", detect whether the image is small enough to be a tracking pixel

my logic is, even though large image can still track you, but chance is the email reader wants to see that.

Image for details

Thanks for the detailed report.
I'm going to limit the block list to img tags only since that appears to be the majority of trackers that I've come across so far. This change will be in 0.3.29 and will fix this issue

can confirm this works! thank you very much 🎉


Support ESPRESSIF ESP32-S3-DevKitC-1

please add the Espressif ESP32-S3-DevKitC-1 to the list of boards available in the GPIO Viewer app.
Link to image:

It is already there, it's called "ESP32-S3-Wroom-1"

When I initially looked at the board I noticed that the physical layout was different and moved on.  I now wee that the pins do correspond to the unit I have.  Thanks,


Is jscpd support comparasions between commit diffs and all sources?

Is your feature request related to a problem? Please describe.
Want to compare the files from diffs in branchs between master and all other source files , like using eslint to compare diffs to increase comparing speed and reduce the report size. Is this feature will be supported?
Describe the solution you'd like
Support diff commits in config files or cli
Describe alternatives you've considered
no
Additional context
no

Thank you for feature request, I will investigate

Thanks for this nice tool.
Maybe my comment is a different feature request.
I am looking to deploy jscpd for an existing 10+ project.
There are already a few copy paste instances.
My main goal is that from now on, at least any new code doesn't contain duplication... and with time, the legacy code will see reduced duplication.
So, besides the normal full report, it would be nice to get a report with 0% threshold for the changes with the main branch.
Slava Ukraini!

Hi @adiroiban! I appreciate your support of Ukraine.
You can fix thresholds for old code and control that the level of duplication is not higher than the existing one.
Also, you can use the following bash script for check duplication just in changed files:
git diff --name-only [sha1 sha2] | xargs jscpd

Btw, I'm going to close the issue due to the existing workaround, you can try to use the following command for that
git diff master..feature --name-only | xargs jscpd

I think that this can be closed.
I don't understand the original comment.
but having the json reporter helps a lot.

Updating the threshold is a workaround if you want to update the threshold after each commit to the main branch.
If you have a PR in which a lot of non-duplicate code is removed the duplicate percentage will go up.
Also, if you remove duplicate codes in a PR you might forget to lower the configured threshold... leave spare lines to be duplicated in future PRs :)

The git diff workaround is a start.
It will only detect duplicates inside single file, or between files of that diff.
Clone found (python):
 - chevah/server/authentication/ldap.py [24:1 - 35:16] (11 lines, 82 tokens)
   chevah/server/authentication/radius.py [18:1 - 30:16]

Run again
jscpd chevah/server/authentication/radius.py
Found 0 clones.

But I think I have a way forward to implement this.
Do a full jscpd run with json reporter.
Re-use the code from here https://github.com/Bachmann1234/diff_cover/blob/main/diff_cover/diff_reporter.py to get the line number from the diff.
Compare the line ranges from json-reporter with the line ranges from diff.
If there is no match, all good. it means the duplicates are outside of the diff.

good point, also I can suggest using persistent storage for hashes, in this case, you can increase the speed of detection process in case of a big repository https://www.npmjs.com/package/@jscpd/leveldb-store

What if I introduced a new duplication of some file beyond the diffs? git diff --name-only [sha1 sha2] | xargs jscpd only check the diff files.

The diff will not work... the diff is just a workaround that might fix some cases.

Another idea.
Instead of the JSON custom report, produce a JSCover report, in which the duplicate lines are marked as not having coverage.
Then, you can use standard code coverage reporting tools - https://pypi.org/project/diff-cover/
The semanting is a bit different , but the end result should be the same.
The duplicate lines will be reported as missing coverage.
And the nice thing is that by submitting a standard coverage report, you can hack some GitHub  PR inline reporting via standard coverage services like codecov.io


Add feature to open documentation panels in new tab or window

Version 1.21.0
Commit 9a199d77c82fcb82f39c68bb33c614af01c111ba
Date 2018-03-07T11:04:09.969Z
Shell 1.7.9
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64
Steps to Reproduce:

Install ms-python.python extension and correlated add-on plugins.
https://marketplace.visualstudio.com/items?itemName=ms-python.python
Mouse-over any framework method, and see the documentation panel. Even if this panel gives pretty useful information, there is no way to navigate from here to online resources (python.org) in new default browser window, or I cannot drag & drop it somewhere where I can partially copy / paste pieces of it.

This feature comes in PyCharm with Ctrl+Q button bound to it, and it would be great to have in VS Code, not only for Python, for all other languages supported.
Please see screen shot below:

This is how it looks like in PyCharm, and pretty easy to read through, without loosing window in case of mouse-out event etc.

This is already supported in the API although not with that extra UI.
A hover message is a MarkedString, which suports MarkdownString. This allows you to have links in the docs which execute commands, which can open editors.
https://code.visualstudio.com/docs/extensionAPI/vscode-api#_a-namemarkdownstringaspan-classcodeitem-id614markdownstringspan


Please rework TermMatcher

While the TermMatcher trait is simple in a theoretical/mathematical sense, in practice just looping through the whole knowledge base and checking everything with the match method can be too slow to be viable, especially if the knowledge base is only available in compressed form, such as with HDT.
This causes workarounds that are cumbersome and error prone, for example in the HDT library I currently treat anything as "Any" where constant doesn't return true.
It's also not possible to check for the Sophia Any implementation because  the std::any::TypeId::of method only works with a static lifetime like S: TermMatcher + 'static but I can't use that in an implementation., see also https://github.com/pchampin/sophia_rs/issues/150 for a problem the current implementation is causing.
Thus I propose something like the following:
enum TermMatcher {
   Constant(Term)
   Any,
   List(Vec<Term>) // or a set, could help optimization if it is sorted
   Deterministic(...),  // this one doesn't change, so one could for example map it to a set of database IDs once
   NonDeterministic(...), // in case the term matcher can return different results on different calls, maybe that is also overkill and it being Deterministic could just be always true and the two could be called "Other"
}

Would that be possible?

I am not opposed to improve TermMatcher, but, respectfully, I am not convinced by the solution you propose above, nor by the rationale you have for it (see also my response to #150).
What could be done, however, is to replace the [TermMatcher::constant] by a more complex method (call it optimHint for example), which would be an enum similar to the one you propose above. Different implementations would be able to take advantage of different hints...
Proposal:
enum TermMatcherHint {
    NoHint, // you need to call  the match method...
    Constant(Term), // matches a unique term
    List(Vec[Term]), // matches a pre-determined list of terms
}

I don't think that nondeterministic matcher should be a thing :-)
One thing that might be interesting to add, though, would be Range(Term, Term),
(for some determined order on terms),
because some implementations (based on ordered arrays or BTrees) might also take advantage of this.

NB: Any would still return NoHint, and that's OK, because calling Any::match, which always returns false, will be optimized away anyway.

Yes, you are completely right, since your explanation in #150 I finally understand the monomorphization (at least practically, I still have to read up on the theory behind it) and have no current problem with the TermMatcher trait anymore.
I think your proposal sounds great but as I currently don't use, and thus can't benchmark, non-Any non-constant matchers, I'm not sure what would actually be the most useful interface in practice and whether I should close this issue or if you and maybe others want to further develop this idea.
For example, could Constant(Term) and List(Vec[Term]) be unified to something like a Term slice &[Term] so that developers could write a loop that merges all the results (maybe Rust also optimizes away single element slices?) and that codepath would also take care of the special case of a slice with exactly one element, maybe that would be a minuscule overhead.
And as for the Range(Term, Term) I think it would be really useful to have an implementation to test that requires it.

@KonradHoeffner  I'm glad we reached an agreement. I'll open a new issue, in order to spare future readers the trouble of reading through our discussion before getting the core of the proposal.


[docs] Add contribution guidance section in document

We need add contribution guidance section in document, e.g. develop environment setting, code format, PR description
We can add it in readme.md and about.md

Hi @leonardBang I am very interested in this，and I want do some job for flink-cdc，can I help to do that？
Thank you

Thanks @MonsterChenzhuo for taking this,  I've assigned to you.

@MonsterChenzhuo  you can refer https://github.com/ververica/flink-cdc-connectors/issues/340 when you write the documentation

@ruanhang1993 @GOODBOY008 @Jiabao-Sun I'm interested in it.

@gtk96 Assigned

Hi everyone! I'm new to the project and excited about the opportunity to contribute. This issue caught my eye as a great way to get started. I'd appreciate any guidance on how to approach this. Are there any specific resources or documentation I should refer to? Thanks for your help!

Hi everyone! I'm new to the project and excited about the opportunity to contribute. This issue caught my eye as a great way to get started. I'd appreciate any guidance on how to approach this. Are there any specific resources or documentation I should refer to? Thanks for your help!

I'm glad that you are willing to contribute to this.
I have submitted the pr of this question. Can you help me review it?

Yes @gtk96! Thank you for taking the initiative to address this issue by submitting the pull request. I'd be happy to help review it and provide feedback.
I'm new to the project and eager to contribute. This issue seems like a great way to start, and I'm particularly interested in adding the contribution guidance section to the document. Could you please provide some guidance on how to approach this? Are there any specific resources or documentation I should refer to in order to make a meaningful contribution?
Looking forward to your advice. Thanks in advance!
@saadaqnuur


[Flaw] Cease sending users to malware distributing sites (here: Aptoide)!

Jolla still strongly suggests to install Aptiode in its all its Sailfish X installation guides and at docs.sailfishos.org, despite Aptoide having a track record of multiple, big security breaches (the biggest one in 2020, see e.g. TJC and FSO), being flooded with malicious APKs (e.g. "fake apps", "typo-squatting apps") since about a decade (10 years!; examples at FSO: [1], [2]) and the Aptoide client app has become a data collection tool since version 8.0.0 (in 2016).
Hence please do stop advertising Aptoide and …

… remove the Aptoide client app from the Jolla Store for good.
… eliminate all references to Aptoide at jolla.com, i.e. on the "Services and Support" page (one reference) and in every Sailfish X installation guide (really all of them):

For the Xperia X series (two references): Linux, Windows, MacOS
For the Xperia XA2 series (two references): Linux, Windows, MacOS
For the Xperia 10 series (one reference): Linux, Windows, MacOS
For the Xperia 10 II (one reference): Linux, Windows, MacOS
For the Xperia 10 III (one reference): Linux, Windows, MacOS

… eliminate all references to Aptoide at docs.sailfishos.org:

On the Android App Support page (four references: two as "Aptoide", one misspelled as "Apptoide" and one in the screenshot of the app-grid)
Delete the complete Aptoide directory
For other occurrences, see the results of this code search.

Mind that F-Droid.org and the Google Play Store (via Aurora Store app) are the only two major sources of Android apps, which are not significantly compromised by malware, e.g. "fake apps", "typo-squatting apps" etc.
P.S.: Aptoide is well known (since its incarnation in 2011) to host some pirated software, hence it might be legally critical for Jolla / Jollyboys to actively advertise Aptoide.
P.P.S.: See also a similar issue report for APKPure; eliminating both issues in one go likely requires less effort.

Point 3 in the initial message is resolved by PR #403.


docs(readme): use newer syntax for vars

Just a small improvement, thanks for the library! 😃

Thanks @hongbo-miao


Twitter links are now “X.com/username”

So since Twitter changed to X, their links to posts also changed

x.com still redirects to twitter.com. and it might even take longer to change the API URLs.
So, nothing changed yet and everything of vxtwitter still works.

Oh my god are you serious
Bleh, I'll have to work something out

You should be able to use fixvx.com with those new links (add fixv right before the x)
Working on additional names that could be used as well

nodejs example
const twitterUrl = 'https://x.com/dotey/status/1706062780955074614?s=20'
const twitterUrlObj = new URL(twitterUrl)
twitterUrlObj.host = 'c.vxtwitter.com'
twitterUrlObj.toString()


viewer presets for dds devices

Enabled Viewer presets in DDS devices.
The Viewer detects that a device has presets based on implementation of serializable_interface.
Added a unit-test making sure that DDS devices are serializable, and have their Visual Preset set first when loading JSON.
The values for all serialized sensors are kept in <sensor-name>/<option-name> keys when serializing.
On loading, the Visual Preset option is special: it is the baseline for all other options, so it is changed first. Then all the rest of the options are loaded.
Enhanced test.remote so capture of remote stdout is possible.
Read-only options were not tested before. Added a test for those as well, but noticed that they are actually settable (i.e., it was up to the server to check read-only). I don't know what's right at this point, but I think it's safe for LibRS to fail and throw if a read-only option is modified. The code for the regular non-DDS options also seems to not check.
Tracked on [RSDEV-986]

Read-only options were not tested before. Added a test for those as well, but noticed that they are actually settable (i.e., it was up to the server to check read-only). I don't know what's right at this point, but I think it's safe for LibRS to fail and throw if a read-only option is modified. The code for the regular non-DDS options also seems to not check.

I think that back than we discussed it and decided not to check read only. Leave it for the server to fail if trying to update read only.

the Visual Preset option is special: it is the baseline for all other options, so it is changed first. Then all the rest of the options are loaded.

Not sure I understand what is special in the preset value. Changing preset triggers a change in a group of "advanced mode" options, but it does not affect regular options like exposure and such.

Not sure I understand what is special in the preset value. Changing preset triggers a change in a group of "advanced mode" options, but it does not affect regular options like exposure and such. I think that "Advanced mode" options are not exposed via DDS

The Visual Preset sets parameters that may not even have equivalents available to the user: internal settings. The idea here is that the preset determines the "baseline" on top of which the rest of the settings are then applied.
If still unclear, let's talk.


Allow mac address to be optionally defined (#63)

Hi @njk464! Thanks for raising this feature and giving the implementation a shot.
Can you show your work for how you tested this? We will need to make sure the acceptance tests pass (and probably add a new one for this case). I can help with that since the test suite is hard coded for parts of my deployment at the moment.

Hi @ddelnano. I just tested it manually on our xenorchestra 5.46.0 instance with a vm resource for the cases when the mac_address field is defined, not defined, and defined incorrectly ("00:00:00:00:00:0H". In all cases it behaved as expected (assigning the defined mac address to the VIF, auto generating a mac address, and throwing an error). I could probably add something before the vm resource is created to verify the mac address if you want. Right now the error that's shown when the mac address is not defined is
Error: jsonrpc2: code -32000 message: unknown error from the peer

  on main.tf line 53, in resource "xenorchestra_vm" "bar":
  53: resource "xenorchestra_vm" "bar"

As for making acceptance tests It looks like that would be in client/vm_test.go? But I don't even know where to start with making a test since right now the

The issue with the test I identified above is because the property is no longer computed. Terraform thinks that on resource refresh the mac_address is an empty string (because the vm resource code doesn't include a mac_address attribute and it's optional) but the internals of the provider is treating it like a computed property (creating it behind the scenes and storing it in the state).
I'm sure there is a pattern to deal with this but I don't know off the top of my head.

Hey @ddelnano. I added the changes you requested, added the test cases you created, and updated the documentation. I'm not able to run the tests on my setup so please let me know if any other tests fail.

Since I need to run the tests and I need a little patch on top of what you have (the test code doesn't have a function it needs) I'm going to close this in favor of #65. I cherry picked your commits and the tests are passing.
Thanks for this contribution and sorry the tests aren't approachable yet! I plan to make them easy to run from a clean install soon

Thanks for helping me make a pull request! This feature is really going to help my team out with automating our deployment. Would love to do some more development on this project once the tests are more approachable.


Break glass process to remove projects from Sentry

Background

Proposed user journey

Approach

Questions / Assumptions

Acceptance Criteria

[ ] Enter text
[ ] Enter text
[ ] Enter text
[ ] Enter text

Reference
How to write good user stories

Met by #1997


Create an online form for the participants

Related to #529

@Mayaleeeee What exactly we are needed to do in this issue. And is it ready to start working on it?

@Mayaleeeee , i wish to work on this...

closing this for now ,We will reopen this once other things are done


Don't print the Vault banner when using the help argument

Not sure for this one... It might interesting to print VAULT_HOME, JAVA_HOME and JAVA_OPTS even when displaying the help, no?

Why? I don't see how it's helpful or applicable to the usage statement. Additionally other CLI tools don't behave that way, which is why I raised these CLI issues in the first place. Is there a standard for CLI tools somewhere that we can defer to? I don't know of one.


 Can we remove these? I think they came in from Pure and then Pure realized they didn't need them and they were then never removed.

This could be as easy as just identifying these organizations and deleting them from RMD.  We should check, though, that these don't get re-imported from their sources.  If they do, we'd need to somehow get them removed from the source, or change our importers to not import things that have no users.

Also, just to err on the side of caution here, I'm not sure whether the tally that shows 0 people currently in the organization takes into account all records of user membership in the organization or only current memberships. If it's the latter, then we'd maybe want to be careful that we weren't deleting useful historical information about organizations that had members in the past but no longer do (maybe because the organization used to exist but is now defunct?).

Found a second issue today with Organizations, it looks like these are not being updated when people come or go. I have 23 users that need to be added to the Social Science Research Institute Organization, there are 13 that are no longer at PSU and 2 that are no longer in SSRI. I am going to add the 23 missing people, and do nothing with the 15. This is just one of the Institues, I can only imagine what the others are like.
Attached is a spreadsheet I pulled together if you have any questions, let me know.
Social Science Research Institute.xlsx

Looking at a handful of the users that are not in SSRI but should be, they appear to be in sub-organizations of SSRI.  They are importing properly from Pure, but we need to figure out a way to handle these in the API.  Right now the API keys only allow access to the users directly linked to any orgs directly linked to the API key (not the sub-organizations).  We could tweak this to give API keys access to all users in the organization, which would include all users in the sub-organizations.  I'm not sure if there was a reason it wasn't implemented this way in the first place, though.  It may have been that we didn't want to accidentally give someone too much access.  In that case we may actually not want to do what I described above and instead make sure that we manually assign sub-organizations to the API keys.
As for people leaving the orgs.  We still want a record of them having been a part of the org, and don't want to delete those linkages.  If the orgs are from Pure (which I believe basically all are), then we should get an ended_on timestamp to know when they are no longer with the organization.  We may want to filter them out of the users accessible in that org through the API.  We could add some code to find all_current_users for an organization and use that to determine which users are accessible to an API key.

After discussing this in standup and reviewing the things exposed in the API for any potential security concerns, we've decided it would be okay allow API keys access to everyone in an assigned organization and all of it's sub-organizations.  So to summarize this issue:

We still want to delete organizations without users.  We should double-check that those organizations don't have any users (not just current users).
Modify API access to allow access to not just a linked organization's users and publications, but also that organization's sub-organizations' users and publications.
Modify API access to exclude users and their publications if they contain an ended_on timestamp in their user_organization_membership record, indicating they are no longer a part of that organization.

I did go through and manually added the people to the SSRI org if they were here (https://pure.psu.edu/en/organisations/httpsssripsueduabout/persons/). I am not sure why the Pure data didn't have both, the main org (SSRI) and the sub-org in the data, typically it does if they appear under the organization.
Let me know if I caused any issues with the work I did yesterday, with adding the missing people to the SSRI org, I can go in and undo it if necessary.

For now, I think everything is fine.  We probably want to remove the top level SSRI from those users after these changes are made.  It's not a big deal that they are there right now.  However, if they leave the organization in the future, we won't get that info from Pure for that top-level SSRI.

Modify API access to allow access to not just a linked organization's users and publications, but also that organization's sub-organizations' users and publications.

Just to be totally clear, we're thinking that we want to do this recursively - so that an API key can access data for an associated organization and for everything in the whole tree of organizations under the associated organization (not just direct sub-organizations), correct?

Yes correct, we want to go all the way down the tree.

Related to #57

@anaelizabethenriquez @nmg110 Reopening this.  It appears — from manually pulling data via the Pure API for a bunch of organizations — that the organizations in RMD without users are still in Pure.  They have no users there either.  Simply deleting them will not work, so I will have to make some adjustments to the importer to prevent them from importing.

@ajkiessl given our current plans for #828 ("use the Org's ID in the URL so we can predict the URL and provide it as needed," rather than a drop-down menu) I don't think this issue blocks that one the way it blocks #774. So perhaps we don't need to finish this now?

@anaelizabethenriquez Yeah, I agree.  I'll move it back into the backlog.


AuthZ Follow-Up

[x] CORS for UI
[x] GCS integration tests
[ ] Fix "// ToDo: Better pagination with non-empty pages"
[ ] Pagination for List Roles & List Users
[ ] Keep Update Role or move to /rename /update-description?
[ ] Review Logging level for charts
[ ] Respect view metadata versions to keep - also cleanup S3
[ ] Register Table Endpoint
[x] Nested Namespaces
[ ] Warehouse: Update TabularDeleteProfile is missing - any side effects on update?
[ ] Delete commit_table and use commit_transaction under the hood?
[x] Serve: Better error for non-migrated database& authorizer
[x] Fix just file update management

[ ] pagination for search user (currently, if >10 users with the same name exist, we wouldn't be able to search some)

[ ]  pagination for search user (currently, if >10 users with the same name exist, we wouldn't be able to search some)
[ ]  pagination for search roles (see above)

I don't think pagination has a high priority as of now. What we would need first is a way to distinguish those users - maybe a profile picture or the email or so.
As the search API is so open, we should very much restrict what results are returned. Only global admin can use the list users API. The search API can be used by almost everyone, which is why we shouldn't make it easy to extract data.


Redirect Loop

Not necessarly an issue, but may be worth documenting here. I encountered a problem with fitbit-js that seems to be an issue with the Fitbit API: https://community.fitbit.com/t5/Third-Party-Integrations/Stuck-in-Deny-Allow-loop-when-trying-to-give-access-using-OAuth/m-p/814536
Message I wrote is repeated below.

I did
git clone https://github.com/smurthas/fitbit-js.git
cd fitbit-js
npm install
cd example
node test.js [Consumer Key] [Consumer Secret]
I have the callback URL set to http://localhost:8553/ (also tried http://localhost:8553/getStuff)
I opened http://localhost:8553/ in a Chrome when I was logged-in in another tab.  I sent to https://www.fitbit.com/oauth/authorize?oauth_token=... was given the Deny/Accept option.  I clicked Accept, was sent to http://localhost:8553/?oauth_token=...&oauth_verifier=... which then sent a 302 redirect back to https://www.fitbit.com/oauth/authorize?oauth_token=...
I tried this in Safari and Firefox - I have never logged into Fitbit in these accounts.  I also tried clearing the cache and got the same result.  Same when using incognito mode.

@rweigel Are you still having this issue?
If so, are you using OAuth 1 or 2? And would you please post a screenshot of you application configuration, e.g.

@smurthas - I don't have the issue now.  Thanks. I have it working with the same settings as in your image except with an application type of personal.
I may have had a trailing slash in the callback URL when I tried the first time.  I just tried with and without the trailing slash and did not have the problem.


Hs in the building archetypes

SINGLE_RES buildings built renovated after 2006 lave a larger heated floor area (Hs=0.9) than any other SINGLE_RES buildings (Hs=0.85 regardless of construction or renovation year). @JIMENOFONSECA is there any reason for this? Seems counter intuitive.
Similarly, SERVERROOM's renovated after 2006 have Hs=0.9 whereas any other building or renovation year has Hs=1.

I recall taking these values from SIA 380/1 but i might be wrong. Let me know of there is any other source.
For servers it should be 1 i guess
Best, Jimeno
On 20 Jun 2017, at 18:30, martin-mosteiro <notifications<EMAIL_ADDRESS>wrote:
SINGLE_RES buildings built renovated after 2006 lave a larger heated floor area (Hs=0.9) than any other SINGLE_RES buildings (Hs=0.85 regardless of construction or renovation year). @JIMENOFONSECAhttps://github.com/jimenofonseca is there any reason for this? Seems counter intuitive.
Similarly, SERVERROOM's renovated after 2006 have Hs=0.9 whereas any other building or renovation year has Hs=1.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/architecture-building-systems/CEAforArcGIS/issues/687, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIjrgshHgyJlSrinNSTYjEKb9exLCRZjks5sF585gaJpZM4N_Y04.