Document & clarify development model

Hi Guys @sourceryinstitute, I'd love to help out some more, but I'm finding it hard to follow the branching/release/development model. It seems the two main branches, master and branch-1.0.0 have diverged significantly.
I assume this is intentional, and you're following some kind of "git-flow" development model?
The development model should be documented somewhere and branches described as well as more detailed procedures for authoring PRs, like which branch they should be based on, and made against.

Hi Zaak,
I wrote a rather lengthy reply and then accidentally hit a Safari bookmark that took me to another page and I lost everything I wrote. :(  I should get in the habit of writing responses in a separate document and then pasting them here.
I have to head home for dinner with the family but hope to reconstruct what I wrote later.
Damian

Damian,
Sorry to hear you lost your hard work. No rush, just have a few minor things that I spotted and thought needed fixing.

Ok, Take 2:
Your question nicely assumes that we have a branching/release/development model. :)  Your help in developing one is welcome.  Alessandro and I talk weekly so you could join one of our upcoming teleconferencesto discuss this if you like.  For now, I'll explain my thoughts and influences informally and why I'm comfortable with the divergence between the two branches.
First, the seeming divergence is partly superficial divergence because I manually copy files from one branch to the other (almost always from the release branch to the master branch).  I do this only to avoid the complications of git merge.  Git for me is like democracy, which has been described as the worst form of government except for all the alternatives.  I think possibly some of my previous difficulties related to frequent rebasing.  My life seems so much simpler now that I've stopped rebasing.  "Hi. I'm Damian and I don't rebase." :D
Second, the minor new features that have been added on the release branch (branch-1.0.0) have very little if any interaction with the core library.  Version 1.1.0 added scripts for building the OpenCoarrays prerequisites. Version 1.2.0 added the installation script, which will see some very significant improvements in the imminent 1.2.1 release.  It's very easy and safe to copy these sorts of new features over to the master branch, which is our pre-release 2.0.0 branch as I'll explain below.
The following have most influenced my thinking on branching, version numbering, and releasing:

The GCC approach (https://gcc.gnu.org/develop.html), especially the version numbering scheme they adopted with release 5.
Semantic Versioning (http://semver.org).
The Forking Workflow (https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).

Many thanks to you for referring me to the latter page.  It took quite some time and several reads for me to fully digest it.   ;) I haven't disciplined myself to follow the Forking Workflow in practice, but I set up my "rouson" GitHub username to facilitate private forking of the OpenCoarrays project that is hosted on the sourceryinstitute account.  Let's see if I can get back to this practice after this next release.
Our unwritten policy has been to use x.y.z version numbers to refer to major new features (x), minor new features (y), and bug fixes (z).  Hence, the master branch is 2.0.0 (the version number is in the project statement near the top of the top-level CMakeLists.txt file and it can be obtained by typing "caf --version" after a successful installation or "./install.sh --version" without installing. I'll copy the latter capability from the branch-1.0.0 release branch to the master branch as soon as I release).
Major new features under development on the master branch include Fortran 2015 EVENT_TYPE support and support for building with our first non-GCC compiler: Portland Group.  We expect these features to appear in our 2.0.0 release, which I imagine will roughly coincide with hte GCC 6.0.0 release, which will likel happen around April 2016.
I think that pretty much covers it.  Possibly what I've written here is the beginning of a branch/release/development model.  Possibly I should massage and reformat this into a document to add to the repository.  We could then edit and discuss it as we iterate toward a more formal policy statement.
Thoughts?

I just seem to have all the luck lately. As fate would have it, I started having hardware problems while conducting what I'm reasonably confident would have been my last test before releasing version 1.2.1. I might have a day or so of downtime while I attempt to back the computer up. (My computer automatically backs up wirelessly when I'm at home, but I was traveling over the holiday weekend and it appears the latest backup was a week ago).  After I back up (or if I can't back up), I'll put the computer in for service, pick up a loaner, and replace the disk image on the loaner using my back up.  I imagine I'll be up and running by late in the day tomorrow sometime.
How does all this relate to this thread?   I'm glad you asked. :)   In order that the next 24 hours won't be complete downtime, there's a feature I'd like to work on during the above process, but I want to be sure there is no chance that I'll break something that delays the release. (I'm not likely to release until I have access to the aforementioned disk image because it contains the Linux virtual machine on which I was running the final pre-release test.)
Forking WorkFlow to the rescue!  I'll work on the new feature on my "rouson" account fork (or on a new fork if merging the main repository into the existing "rouson" fork doesn't go smoothly).  Then I can safely keep everything I do on this new feature out of the main repository in case I decide to trash it.  That's what I love the most about Forking WorkFlow.
:D

@zbeekman, I just tried to merge the branch-1.0.0 into my private rouson/opencoarrays fork.  It appears the the result was to merge the branch into the master on rouson/opencoarrays repository.  I'm not sure if that's a good idea or not. Testing will tell, but it was surprising and yet another case where merging was sufficiently problematic that it might cost me more time than just copying the files to the appropriate branch.  The most confusing part was that the GitHub GUI gave me a message indicating that it was safe to delete the branch. I wasn't sure why it was suggesting that I would want to do that.  I did it and then it gave me a button to recover the branch.  In either state -- prior to deleting the branch and after restoring it -- I get an error message indicating the the file 'branch-1.0.0' doesn't exist when I type 'git checkout branch-1.0.0'.  Oh bother...

Boy, there is a lot of content here and a lot to discuss... I only ever use the command line these days, because I find it more difficult to figure out what clients like sourcetree and githubdesktop will do. I think this relates to your most recent woes: http://stackoverflow.com/a/72156/403516 When I have time I can try to catch up on everything else in this thread.

Sorry.  I wasn't referring to the GUI to which I think you're referring.   I simply meant the GitHub web interface, which I do find easier than the command line because it attempts to automate merges and pull requests and gives a nice presentation of diffs.  I use the command line for everything except merges and pull requests, which I guess is redundant in the sense that pull requests are a special case of merges.  I just wanted to highlight that the web interface is especially nice for handling pull requests.
I had a feeling that my use of the term "GUI" would be confusing. I struggle with that trade-off between brevity and clarity and too often err on the side of being overly verbose so I was trying to curb that tendency.
D
Sent from my iPhone

On Dec 3, 2015, at 2:11 PM, Izaak Beekman<EMAIL_ADDRESS>wrote:
Boy, there is a lot of content here and a lot to discuss... I only ever use the command line these days, because I find it more difficult to figure out what clients like sourcetree and githubdesktop will do. I think this relates to your most recent woes: http://stackoverflow.com/a/72156/403516 When I have time I can try to catch up on everything else in this thread.
—
Reply to this email directly or view it on GitHub.

One problem with the manual copy branch method, is it's even hard to determine what's diverged and how. If I try to compare master to branch-1.0.0 and take a look at the [install_prerequisites/build] on github I can't even see what the differences are... https://github.com/sourceryinstitute/opencoarrays/compare/master...branch-1.0.0?expand=1#diff-c3d7a108ce2265a38caf9379460b3199

Nothing has changed outside of install.sh and install_prerequisites since my October 22 commit.  In both install.sh and every file in install_prerequisites, the branch-1.0.0 versions of any files can completely replace any versions on the master branch and any files missing from install_prerequisites can be deleted on the master branch.  The copy will take me seconds or minutes so it's not something to attempt yourself if you're uncertain.  It's trivial for me to do, but there was no point in doing it until everything was working, which didn't  happen until just before I released 1.2.1 last week, at which I also experienced a hardware failure from which I didn't recover until Saturday and then I had to travel on Sunday, teach all day on Monday and Tuesday and give a talk yesterday so today id the first day this could reasonably happen. I'll be glad to do make the copies when we talk tomorrow if not sooner.

Sure, I don't mean to badger you... Just trying to get oriented.

Cool.  Thanks for hit continued interest, contributions and thorough review.  It would be great if you would join an upcoming call with Alessandro and me to recommend best practices around branching and merging.
Do you agree that the forking workflow described on Atlassian's web page is the best  ways to go?  I think that's what you referred me to last year. It worked pretty well for the class I was teaching, but that was a scenario in which conflicts were nearly impossible so merging was always easy. By contrast, on other projects, I frequently run into to problems with merges and give up.
Anecdotally, my observation is that many people, including me, develop a workflow of occasionally cloning a fresh copy of the central repository, manually copying changes over to the new clone, and abandoning the local copy of the repository that they were editing before the fresh clone because it has become too challenging to push and deal with related confusing git messages.  I'd go so far as to say this is the most common workflow that most people adopt quietly without admitting it publicly.  I hope there is a workflow that is straightforward and makes this secret practice unnecessary. I once thought that supposed workflow involved rebasing and then recently I had a conversation with someone who used to really push me to rebase and found out she had stopped rebasing secretly but never told me. I had held onto the practice much longer and had only quit rebasing just days before the conversation.
SMH... So much of my life I lost rebasing.   Just kidding of course. :)
Sent from my iPhone

On Dec 11, 2015, at 6:53 AM, Izaak Beekman<EMAIL_ADDRESS>wrote:
Sure, I don't mean to badger you... Just trying to get oriented.
—
Reply to this email directly or view it on GitHub.

Sure, I think it's worth talking about and thinking about ways to enable and enhance collaboration by changing/improving the git workflow... We can discuss this on the phone and at a later date with Alessandro.
Some thoughts on rebasing, since you brought it up:
I think rebasing has a place when you are working on say, a feature branch, and want to pick up some improvements/bug fixes that take place on master... but ONLY if you have not pushed your feature branch to the central repository (i.e. the feature branch of sourceryinstitute/opencoarrays) or any other repository that other people are working from. If, in the past, you have pushed the branch to your forked version's repository (i.e. the feature branch of rouson/opencoarrays or zbeekman/opencoarrays) then you will need to rewrite history (which you did when you rebased) and force push it to your (private!) fork. In general, avoid rebasing branches that have already been pushed somewhere where other people might be working.
This is what I typically do to decide how to proceed:
Before trying to incorporate changes into a branch, I ask myself:

Do I want all the commits in master (or some other branch) since they diverged?

If I only want some of them, then I should use git cherry-pick -x <commit-sha> (-x adds a message to the log saying which commit you cherry-picked from) to pull in the changes from individual commits. Each commit should be a minimal set of atomic changes that advances the state of the branch from one functional state (compiles, etc.) to another, implementing a single logical change.

If you do want all the commits then ask yourself: Have I pushed this branch to a remote repository yet, or does it only exist locally?

if it only exists locally then try something like get pull --rebase <master-repository> master

If there are merge conflicts you should be able to walk through them with git merge --continue or git rebase --continue etc. as advised by git status. You can always abort and then fetch the upstream/origin/central repositories changes with get fetch <repo> and then git merge or git rebase using an appropriate merge strategy or merge strategy option. (You can resolve all conflicts to prefer yours for example with the strategy options.)

If you have pushed your branch to your private fork repository, and you're confident no one else is using it, then you can attempt a rebase as described above, so long as you make sure to propagate the changes to your private tracking remote with git push -f <my_private_remote>
If this is not the case, then you should never rebase, since you would have to overwrite common, shared history, leading to a lot of confusion. (If you did rebase and then forced a push to the common/central repository the next time anyone else tries to update their local copies all hell will break loose since the histories are now conflicting.)

in this case, if you want all the changes from the other branch, you should use a normal merge/pull. If you only want some changes, then use git cherry-pick.

One final note: reset is a pretty confusing command, but combined with git reflog it is a powerful way to restore your local copy after messing something up horrifically. In concept, it's not terribly different than just scrapping the local repository and cloning a new one, although it has more fine grained control to help you hang on to more of your work. It's a lengthy read, but this really helped clarify some things about git for me.

Let's continue the discussion from the bottom of PR #53 here.
Hi @rouson, I know you prefer video tutorials, so I just thought I would link you to GitHub's youtube channel. They have a wealth of tutorials and webcasts to help make us into true git ninjas: https://www.youtube.com/user/GitHubGuides/playlists
Also, the "github flow" workflow is my personal preference, and might be worthwhile contemplating adoption of this: https://guides.github.com/introduction/flow/ and is detailed in an hour long seminar here: https://www.youtube.com/watch?v=EwWZbyjDs9c&index=5&list=PLg7s6cbtAD17uAwaZwiykDci_q3te3CTY
As for the videos, I highly recommend watching all of the videos in the GitHub and git foundations playlist, each one is pretty short, around 5 minutes.
In particular, these more advanced videos I think are highly informative:

Committing frequently, and the safety net of reflog
Using rebase to promote clarity in git history, to enable collaboration in open source projects.
Restoring previous points in history or applying fixes using and the power of reset and checkout
Understanding the network and git remotes
How git understands code movement across files and preserving history even during file renames, and how it relates to the "ship of Theseus" philosophy problem

See also #52 for some discussion. We are moving to Github Flow.

Alright, this transformation has started. Next up is to add the documentation part.

[ ] document development workflow, procedures and philosophy

[ ] update CONTRIBUTING.md

I think my recent changes to CONTRIBUTING.md and other documentation have done an OK job implementing this. Closing for now.


Extent VoyagerBaseController for filtering relations on mustiselect with rawWhere option

Add to Relationship Details option for raw where filtering
{
"whereRaw": "role_id=2 or role_id=3"
}

Superseded by https://github.com/the-control-group/voyager/pull/4851


Support for managing catalog.cattle.io.clusterrepos objects defined on local cluster w/o full access to local cluster

To support restricted admins' ability to add new RKE2 templates we need to have a way to manage Cluster Repositories (catalog.cattle.io.clusterrepos) via UI without having to navigate to local cluster (as restricted admins don't have full access to local cluster).
The exact solution TBD, this is a UI issue for the following back-end issue: https://github.com/rancher/rancher/issues/33110

@vincent99 I assume what we need is a new nav item in Cluster Management named 'Cluster Repositories' that is the same as the chart repos list, but only showing ones with chart templates. We can then hide these in the Cluster Explorer Chart templates list.

Template Repositories seems like a clearer term. Maybe we can leverage the Apps & Marketplace view via a filter.

So I don't think there's really a good way to filter out the chart repos. The structure of the index.yaml seems to allow a single repository entry to contain both templates and charts.
I'm thinking that we should just rename this to Cluster Repositories and change the messaging on the existing page. I'll do a demo tomorrow and get some feedback to find out.

@codyrancher From a UX point of view, it is odd to have to change contexts to explore the local context in order to add a cluster template repository.
Even if we can't filter out the ones that are template repos, I think having the functionality in the cluster management part of the UI would be useful.

@codyrancher One suggestion - when a cluster template repo is added in the UI from the new page, can we add a label so that we can identify it as a cluster template repo to filter it out from the others?
This would give an issue for any cluster template repos already added - we could look at all of the charts, find those that are cluster templates (chartType = cluster-tempate) and from that we know that the corresponding repo is a cluster template one.

There is no such thing as a "chart" repo vs a "template" repo.  The difference is one annotation on the chart, and there can be many of both kinds mixed in one repository.

@codyrancher So, I think we just need to the chart repos page also to be available in Cluster Management - we can add an explanation there. We could show how many cluster templates are available from each repository - this might help users see which repos are app chart repos.
We need to make sure back links work correctly when you view, add or edit a repo.

hmm, I'm on the latest v2.6-head (1f5852d) but I don't see these changes yet. In drone, I see this has merged to both dashboard master and tagged to v2.6.1-rc3.  Does this mean I need to wait for an RC to see this?

@slickwarren , v2.6-head has CATTLE_DASHBOARD_UI_VERSION=v2.6.1-rc1, so the UI changes are not in yet.

@slickwarren , v2.6-head has CATTLE_DASHBOARD_UI_VERSION=v2.6.1-rc1, so the UI changes are not in yet.

This is and isn't true.
By default -head builds will use bits served from ui-dashboard-index (which is pointed to rancher/dashboard master). Non -head builds will use the CATTLE_DASHBOARD_UI_VERSION env. So it should be in 2.6-head but if that env hasn't been updated by the rancher/rancher release captain then v2.6.1-rc3 won't contain it.
@slickwarren The cluster repos are now shown in both the old (renamed) Cluster Explorer > Apps & Marketplace > Repositories page and the new Cluster Management > Advanced > Repositories page.

@richard-cox , thank you for explaining what version of UI is picked up by Rancher - my bad. I was going by screenshots on the PR and couldn't find any of these options available for restricted admin. But the "Cluster Management > Advanced > Repositories" is.

on v2.6-head (45dfeb4) I'm seeing an issue:

restricted admin can add a repository via the new menu in cluster management > advanced > repositories .  -- pass

currently, restricted admin gets this error when provisioning a cluster that the restricted admin has added:

the regular admin can use the same parameters to create a cluster from the template.  Reopening for this issue.

@slickwarren That's a separate backend issue, can you raise one against rancher/rancher?

also tested the following on v2.6-head (45dfeb4):

standard users cannot edit/create repositories -- pass

can view repos -- pass

admin users can edit/create/delete/view repositories -- pass
restricted admin can edit/create/delete/view repos -- pass

closing in favor of the backend ticket linked above


Using signal in the queryFn makes the query run twice

Describe the bug
I have discovered that whenever I try to use the signal property of the context the queryFn is running twice. I don't even need to use it but just specify it in the queryFn like so: queryFn: ({ signal }) => ...; if I remove it it works just fine: queryFn: () => ... the function runs only once.
Your minimal, reproducible example
https://codesandbox.io/p/sandbox/react-query-bug-demo-page-72c698?file=%2Fsrc%2Fapp%2Fpage.tsx%3A1%2C1-39%2C1
Steps to reproduce

Follow the documentation and setup React Query.
Choose a component and add the following code:"use client";

import { useQuery } from "@tanstack/react-query";

export default function Index() {
  const resultBug = useQuery({
    queryKey: ["current_user_bug"],
    // Issue: if `signal` is specified in the params
    //  the query is going to run twice
    queryFn: ({ signal }) => {
      console.log("Twice (page)");

      return {
        id: "test",
      };
    },
  });

  const resultAlsoBug = useQuery(["current_user_also_bug"], ({ signal }) => {
    console.log("Also Twice (page)");
    return {
      id: "test",
    };
  });

  const resultOk = useQuery({
    queryKey: ["current_user_ok"],
    // In here the signal is not specified and the query runs only once
    queryFn: () => {
      console.log("Once (page)");
      return {
        id: "test",
      };
    },
  });

  return <>Check the Console to see the bug logs.</>;
}

Start the project: yarn dev
Navigate to the page and check the logs, you should see:Twice (page)
Also Twice (page)
Once (page)
Twice (page)
Also Twice (page)

Expected behavior
We expect that the queryFn will run only once and it is not influence by the usage of the incoming parameters:
Twice (page)
Once (page)
Also Twice (page)

How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

OS: macOS
Browser: Chrome
Version: Version 117.0.5938.132 (Official Build) (arm64)

Tanstack Query adapter
react-query
TanStack Query version
v4.35.7
TypeScript version
v5.2.2
Additional context
No response

I know it sounds weird, but it's expected. Let me explain:
we track if the signal that we provide to the QueryFunctionContext gets used by consumers. We do this with custom getters on the object, so a destruct already triggers the getter. Usually, you'd forward the signal to fetch, but we can't know that. So invoking the getter means you're using the signal.
When you're using the signal, React Query behaves a bit differently than normal: When a component unmounts that uses a query that is currently fetching, instead of letting the Promise resolve and storing the data in the cache for later usage, we cancel the query and revert back to the previous state. This is what you want when using the signal, because it means requests that are running can be aborted when they become unused.
Further, NextJs uses React.StrictMode per default, which means React will unmount and mount the component in dev mode. This will always trigger a second fetch (because we fetch when a component mounts), but it can usually be deduplicated. With the signal though, the first fetch will be aborted because of the unmount. So you'll see:

mount, triggers fetch
unmount, aborts query & cancels fetch
mount, triggers new fetch

If you do a real fetch request, you'll even see the cancelled request in the browser devtools.
So yeah, it's a combo of using the signal + strict mode in dev env. If you want, please amend the docs about request cancellation. I've known this from the start (~ 1 year ago) but so far, no one has really reported it as an issue. There's also nothing we can do here because we can't wait with the request cancellation just to see if maaaaybe there will be another mount soon...

It makes sense, @TkDodo thank you for the quick response.
So from what I gather it will not be an issue in production because StrictMode will not be used and the component will not unmount like it does now.
Also, how would you deal with this in a local development environment? Would you just let it be, or?

Yes, I'd let it be. But also, I'm usually not using AbortSignals

I think this issue should be pasted in the docs about signal 😄 its been driving me crazy that I was prefetching a query and as soon as I got to a page using said query, it was re fetching, it never occurred to me that it could be because I was deconstructing ({signal}) in the fetchFn. Glad I found this because it was driving me insane!


Remove minified code blob

TL;DR If you want to get rid of the minified code blob, use @lemaik/qrcode-svg

Especially in a server application, running a blob of mangled JavaScript might scare some people (especially since recent npm package malware incidents), eg. this resolves #26
Following my observations in https://github.com/papnkukn/qrcode-svg/issues/26#issuecomment-1159805781, I restored the proper code by performing these steps:

Pretty-print the code so that the following diffs make sense (either trust me or run prettier yourself to get the same result)
Replace the now pretty-printed blob with the latest version from jeromeetienne/jquery-qrcode, and pretty-printed it again.
Notably, this version contains https://github.com/kazuhikoarase/qrcode-generator/pull/41 and thus can determine the type automatically
Restore the utf8 fix that was previously in this version, ie. apply https://github.com/davidshimjs/qrcodejs/commit/8247821f4a6336c8b7dd908a80f4e5c54e09fa1d
Remove the type detection that got added in step 2, because that's implemented already here

@papnkukn has this project been abandoned? Is there anychance you can merge this PR to remove the obfuscated code?


⚠ Bofrost.de has degraded performance

In ba79432, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 2253 ms

Resolved: Bofrost.de performance has improved in 8ac9b5d after 39 minutes.


Showcase

Functional
We're missing a frontend on satis which shows what components we have and how to use them.
See https://daisyui.com/components/ for how this could be done.
Technical
Add a frontend to satis, which basically works as a demo.
One introduction page with the page component, with links to all components.
Each component should demo what it's capability is, including documentation.
Tests
Add browser tests

added system tests for dropdown in oms and removed two bugs in satis dropdown component
https://github.com/boxture/oms/pull/3441
https://github.com/entdec/satis/pull/78


Computation expresions formatting

Original issue https://github.com/fsprojects/fantomas/issues/1526
This repository does not provide any sample of computation expressions formatting.
I propose to define
let asyncDoSomething () = async {
    do! asyncSomething ()
    let! result = asyncGetSomething ()
    ()
}

let items = seq {
    "item1"
    "item2"
}

as a standard formatting option.
Currently Fantomas changes the code above to
let asyncDoSomething () = async {
    do! asyncSomething ()
    let! result = asyncGetSomething ()
    ()
}

let items = seq {
    "item1"
    "item2"
}

This one's a bit of a poser. I think I exclusively use:
let items =
    seq {
        yield "item1"
        yield "item2"
    }

However, in the case of an async function only, I use the following, with async on the same line as the equals:
let foo () : Async<int> = async {
    let! blah = Async.Sleep 100.
    return 3
}

If it's a variable, I'd often do the following:
let somethingElse () : int =
    let bar =
        async {
            let! blah = Async.Sleep 100.
            return 3
        }
    bar |> Async.RunSynchronously

I'll write up a PR to this effect, and run it past the GR team.

Having that exception only for async seems quite inconsistent.
Not only amongst computation expressions but currently the guide has no examples where a multiline let binding expression still starts after the equal sign.
I'd like to point out that this would be an exception where 62 other types of syntax expression always start on the next line.

I checked with the rest of the team and we're happier staying consistent, everything on a newline. I'll update my PR.

(The reason for the exception is that this is the only computation expression in common use where the intent is to be "just like a normal function".)

It can be applied the same to any computation expression.
As I understand .editorconfig allows to specify any values and separate them by comma.
It would be nice to have a setting like computation_expression_to_keep_on_same_line = async, asyncResult
This way anyone can be happy with the styling 🙂

The only case when the next line must be forced regardless of the setting is when computation expression passed to the left pipe
let somethingElse () : int =
    async {
        let! blah = Async.Sleep 100.
        return 3
    }
    |> Async.RunSynchronously

By the way this constructs (with a single pipe) I always write as
let somethingElse () : int = Async.RunSynchronously <| async {
    let! blah = Async.Sleep 100.
    return 3
}

To be clear, the G-Research/fsharp-formatting-conventions repo is primarily here to record G-Research's style guidelines; Fantomas uses it as a reference, because Fantomas supports G-Research's style guidelines as well as Microsoft's.
I am only an imperfect vessel for GR's style, and it turns out I was wrong about what the team wanted, so I amended my original PR to completely remove the async special case.

My team and I would really appreciate this code style to be included as an option. We have 1000+ usages of async on the same line (and some of the other CEs) and we really can't bear with the amount of indentation that default code style generates.
Actually it seems like it is the only blocker for using Fantomas with our project.
I totally understand that this repo is about GR, but it seems that this is the only place to discuss unorthodox code style suggestions for Fantomas.

Hello, there might be room for this in https://github.com/fsprojects/fantomas/issues/1408.
Please join the discussion over there.


Improve error message under amount input field when user's ETH balance is too low to pay for the tx fee.

Story: When the users's ETH balance is too low to pay for the transaction fee we currently display "Not enough ETH balance" error.

Users reported confusion when they are sending some token on Ethereum (different from ETH) about why they see such a message if their token balance is enough. The reason is that the user may not be aware the tx fees are paid in ETH.
Suggested improvement: update error texts for this field for all blockchains. As follows:
"AE balance is not enough to pay for transaction fee"
"ETH balance is not enough to pay for transaction fee"
"BTC balance is not enough to pay for transaction fee"

LGTM


[Rebase] Collapse memory related tracks by default

Memory tracks and pagefault tracks take too much space. They should be
collapsed by default.

Hey! I have 2 comments:
1- This should be in the release :)
2- Shouldn't we instead SetCollapse all tracks to true by default and only expand the Thread Tracks?

I will merge to the release branch also!
For the second point, I would like to also hear about the suggestion from @florian-kuebler

We decided not to change the default value of is_collapsed_ in the release fix. Let's have a better solution after the release! 😄


Debug Endpoints do not populate when importing new openapi collection

Expected Behavior
I've imported an OpenAPI 3.0.2 file to get my endpoints and everything. A copy of that openAPI is available by going here: https://apidocs.legalserver.org/docs/ls-apis/c25097c5ad308-legal-server-core-api-v1 and clicking export in the top right.
When I click on spec, I can see the file and edit it.
When I click on Debug, no endpoints show up on the left.

When I've got spec open, I can see details on lots of endpoints:

I would expect to see 272 automatically created endpoints to test

It said it imported 1 workspace and 272 enpdoints.
Why don't I see any of the endpoints automatically populating?
Actual Behavior
When I click on Debug, no endpoints show up on the left.

Reproduction Steps

Goto https://apidocs.legalserver.org/docs/ls-apis/c25097c5ad308-legal-server-core-api-v1  and export the OpenAPI references in the top right corner.
In Insomnia, start a new project and import that in as the basis for the project
It will say that it is importing 1 workspace and 272 endpoints.
The spec will eventually show.
switch to the Debug tab and see nothing.

Is there an existing issue for this?

[X] I have searched the issue tracker for this problem.

Additional Information
No response
Insomnia Version
2023.5-8
What operating system are you using?
macOS
Operating System Version
13.5.2
Installation method
download from insomnia.rest
Last Known Working Insomnia version
It worked about a month ago for me.

I rolled back my version of Insomnia. 2023.5.5 still had the issue. 2023.4.0 did not and I was able to successfully import my endpoints.

I just want to add that everyone who uses Insomnia at my company is experiencing this issue as well.  Upgrading to version 8, which released today, does not correct the problem.

@michaelhofrichter @dannyarango-soda thank you for reporting this, we'll investigate and hopefully release a fix for this soon.

Any clues about when will this issue be fixed?
In Insomnia 8.3.0 it's still present.

Hey guys. I'm using v8.5.1 and it's still having a problem :[

I rolled back my version of Insomnia. 2023.5.5 still had the issue. 2023.4.0 did not and I was able to successfully import my endpoints.

I tried to install this version, but macOS notifies me that it is damaged and I cannot open it

Hi @filfreire, this seems to be quite severe issue (at least for openapi import use case). Is this on your roadmap in near future, please ?
I see there was PR #6635 but it was closed without merging...

I was just informed that I can generate the collection manually so this issue is not that severe after all... 😉
Maybe it could be even closed if it's expected to generate the collection manually.


Fix up a couple of typos

Just starting to look at handling the new format features and I noticed this small difference for this years Lents.
http://www.cucbc.org/bumps/results/26/2

And one in 2019 Mays 🙂


Is message_context.offset wrong when messages are created using rstream Producer?

Consider following code, it's basic_producer and basic_consumer from examples:
import asyncio
import signal
import time

from rstream import AMQPMessage, Producer

from rstream import (
    Consumer,
    MessageContext,
    amqp_decoder,
)

STREAM = "my-test-stream"
MESSAGES = 100

async def publish():

    async with Producer("localhost", username="guest", password="guest") as producer:
        # create a stream if it doesn't already exist
        await producer.create_stream(STREAM, exists_ok=True)

        # sending a million of messages in AMQP format
        start_time = time.perf_counter()

        for i in range(MESSAGES):
            amqp_message = AMQPMessage(
                body="hello: {}".format(i),
            )
            # send is asynchronous
            await producer.send(stream=STREAM, message=amqp_message)

        end_time = time.perf_counter()
        print(f"Sent {MESSAGES} messages in {end_time - start_time:0.4f} seconds")

async def consume():
    consumer = Consumer(
        host="localhost",
        port=5552,
        vhost="/",
        username="guest",
        password="guest",
    )

    loop = asyncio.get_event_loop()
    loop.add_signal_handler(signal.SIGINT, lambda: asyncio.create_task(consumer.close()))

    async def on_message(msg: AMQPMessage, message_context: MessageContext):
        stream = message_context.consumer.get_stream(message_context.subscriber_name)
        offset = message_context.offset
        print("Got message: {} from stream {}, offset {}".format(msg, stream, offset))

    await consumer.start()
    await consumer.subscribe(stream=STREAM, callback=on_message, decoder=amqp_decoder)
    await consumer.run()

async def main():
    await publish()
    await consume()

asyncio.run(main())

Expected output:
Got message: hello: 0 from stream my-test-stream, offset 0
Got message: hello: 1 from stream my-test-stream, offset 1
Got message: hello: 2 from stream my-test-stream, offset 2
Got message: hello: 3 from stream my-test-stream, offset 3
Got message: hello: 4 from stream my-test-stream, offset 4

Actual output:
Got message: hello: 0 from stream my-test-stream, offset 0
Got message: hello: 1 from stream my-test-stream, offset 1
Got message: hello: 2 from stream my-test-stream, offset 3
Got message: hello: 3 from stream my-test-stream, offset 6
Got message: hello: 4 from stream my-test-stream, offset 10

When messages are published with different client, actual output is the same as expected.

hi @kyrylokovalenko Thank you for reporting. We will check it as soon as possible


Add numerous events and input display example

#12
This exposes the following additional input::Event variants:

TextInput: Triggers on text entry. Contains the character typed as a char.
CursorEntered/CursorLeft: Triggers when the mouse cursor enters or leaves the game window, respectively.
MouseWheel: Triggers when the mouse wheel is scrolled. Contains the number of horizontal and vertical lines scrolled as f32.
WindowFocused/WindowUnfocused: Triggers when the game window gains or loses focus, respectively. (This was originally 1 event with a bool in winit; I split it into two to mirror CursorEntered/CursorLeft.)
WindowMoved: Triggers when the game window is moved. Contains the new X and Y coordinates of the window as f32.

The naming will probably need updating to match your personal style.
Besides that, I've added an example that displays inputs, but it's pretty roughly written. If this is something you think might be good to have in the repository, I can take some time to refactor it a bit (like reducing all the label drawing by writing a helper, etc.). Currently it draws a red square under the mouse's position, displays pressed/released mouse buttons/keys, scroll wheel scrolls, and has a text buffer at the bottom to test the text entry event (supporting backspace). It's very likely not idiomatic Rust, either (I'm fairly new to the language), so ultimately it's your call whether you want to keep this or drop it.
A raw input display-style sample like this may not be suited to your engine, either; since Game::draw has no access to Input, there's a lot of passing variables from Game::on_input to Input to Game::interact to Game and finally to Game::draw, so it may be a bit too complex for an example.
Let me know if there are any other events I should implement, names I should change, fields I should expose...

A raw input display-style sample like this may not be suited to your engine, either; since Game::draw has no access to Input, there's a lot of passing variables from Game::on_input to Input to Game::interact to Game and finally to Game::draw, so it may be a bit too complex for an example.

This reminded me of a thing! We could use the debug method to draw everything in the example, as it has access to Input! We will probably need a way to enable the debug view by default when the application runs instead of having to press the debug key (there is a debug feature already that we can use!), but don't worry about it I can add that later easily.

Interesting! I hadn't considered how the example would work with high refresh rates. I'll do some tweaking along the lines of what you suggested.
Thanks for the feedback. I'll try to work on this a bit later today.

I fixed the issue with not mapping logical->physical coordinates in input::Event::WindowMoved (whoops) and revised the example slightly, as you suggested 🎉 Good practice would probably dictate that I use a dirty flag or something to stop the program from creating a bunch of strings every draw, but oh well

Fixed by #15.
If anyone needs some additional event, open a new issue describing your use case!


Include client_id in logout request

Core Library
MSAL.js (@azure/msal-browser)
Wrapper Library
Not Applicable
Public or Confidential Client?
Public
Description
For usage with Azure B2C it is useful to include the client_id query parameter in the call to OAuth2 logout endpoint.
Popular setups, e.g. ones based on previous versions of the B2C custom policy starter pack, have a SSO scope Application, e.g. like this:
<UserJourneyBehaviors>
     <SingleSignOn Scope="Application" />
     <SessionExpiryType>Absolute</SessionExpiryType>
    <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
</UserJourneyBehaviors>

This means, that a session is maintained per Application, and when receiving a sign-out request, the B2C server needs to identify the Application to clear the session for. The Application is identified by client_id query parameter unless a id_token_hint is provided, see Send a sign-out request documentation:

client_id | No* | The application ID that the Azure portal assigned to your application. *This is required when using Application isolation SSO configuration and Require ID Token in logout request is set to No.

If the B2C server cannot resolve the correct Application, the session will not be terminated.
Of course, we could also try and include the id_token_hint, but this requires additional work and configuration. The client_id is already part of the most common MSAL configurations.
We can also include extraQueryParameters, but the client_id is already known to the MSAL configuration.
Source
External (Customer)

Given this is a B2C specific parameter I don't want to add this automatically on all requests and since MSAL already provides 2 ways you can add this yourself (id_token_hint or extraQueryParameters) I'm going to close this as wont-fix.


Append notes and use synced links

Is your feature request related to a problem? Please describe.
Most of my fleeting notes and quick jot downs are done into my Daily Notes. I use a lot of links between my jot downs to write ideas for projects (linking to the project ) or just adding comments to existing notes. The problem is that there's no way to append notes and use linking features (like the one we see in fleeting notes).
Describe the solution you'd like
I'd love to see an way to append notes to our daily notes. One solution I thought about is having a button that opens a box to jot down things to add to the daily note.  It could be placed next to the tasks and voice notes buttons in the app. And of couse, having the ability to use the synced links.
An alternative could be having a button inside the note to "Send to daily note" where the whole note $content is appended to the daily note.
Additional context
Since fleeting notes is the only app with the amazing outside-of-obsidian-app linking funtionality I believe it's the most qualified one to implement such a feature. Other funtionalities  like the "Append same source" also show how Fleeting Notes is the perfect app for it.
PS: The synced links are really really awesome, congrats on the idea, for me it's the game changer for Fleeting Notes.
I wonder if it's possible to achive such workflow with Templater, but my limited knowledge on the matter is not enough.

I don't know how plugins works but here's my 2 cents.
There's a templater  command that includes the content of a file inside the note<%tp.file.include("[[example note]]")%>
when appending to the daily note, the plugin could send the note to obsidian, add the command with the note name to the daily note, activate the command and delete the original fleeting note. This solution might be just adding extra features since if the app is appending the Templater command it could directly append the note already.


(...args:[any]) => any isn't assignable to (arg1, arg2) => any

From jest-in-case, follow-up to #30171, also from the nightly DT run.
type Mock = (...args: [any]) => void;
type DoneCallback = {};
var m: Mock = x => { };
var t: (opts: { name: string }, done: DoneCallback) => any = m

Expected behavior:
No error.
Actual behavior:
Error, DoneCallback isn't assignable to undefined.
Note that (arg: any) => void is assignable to typeof t.

@ahejlsberg This seems by-design-but-surprising, but I thought I'd check.

From investigation with @ahejlsberg, we're pretty sure it's a bug in the arity checking code that just doesn't expect or allow this, even though it should.


Add changelog for preview changes

I tweaked rooster to allow sections to be overridden from the CLI so we can generate a separate preview changelog
See https://github.com/zanieb/rooster/pull/43 for the rooster changes needed
I tested ./scripts/release.sh as well.

Hey, Arch maintainer of uv package here 👋🏼
I saw this PR while looking at the changes. I also work on a changelog generation tool called git-cliff and I was curious how easy it would be to generate the same changelog format with using git-cliff.
The result is the following:
# Changelog

## [0.2.10](https://github.com/astral-sh/uv/compare/0.2.9..0.2.10)

### Preview features

* Exclude preview items from changelog by @zanieb in [#4202](https://github.com/astral-sh/uv/pull/4202)
* Bump version to 0.2.10 by @zanieb in [#4201](https://github.com/astral-sh/uv/pull/4201)
* Clarify role of `--system` flag in README by @zanieb in [#4031](https://github.com/astral-sh/uv/pull/4031)
* Add `uv toolchain install` by @zanieb in [#4164](https://github.com/astral-sh/uv/pull/4164)
* Recreate project environment if `--python` or `requires-python` doesn't match by @konstin in [#3945](https://github.com/astral-sh/uv/pull/3945)
* Improve static metadata extraction for Poetry projects by @charliermarsh in [#4182](https://github.com/astral-sh/uv/pull/4182)
* Add `uv toolchain list` by @zanieb in [#4163](https://github.com/astral-sh/uv/pull/4163)
* Fetch managed toolchains in `uv run` by @zanieb in [#4143](https://github.com/astral-sh/uv/pull/4143)
* Implement `Toolchain::find_or_fetch` and use in `uv venv --preview` by @zanieb in [#4138](https://github.com/astral-sh/uv/pull/4138)
* Fix `>=` to `==` typo in `is_contained_by` docs by @charliermarsh in [#4196](https://github.com/astral-sh/uv/pull/4196)
* Document bytecode compilation in pip compatibility guide by @charliermarsh in [#4195](https://github.com/astral-sh/uv/pull/4195)
* Remove `PubGrubPackage` dependency from `ResolutionGraph` by @charliermarsh in [#4168](https://github.com/astral-sh/uv/pull/4168)
### <trimmed>

## New Contributors
* @Peiffap made their first contribution in [#4170](https://github.com/astral-sh/uv/pull/4170)

**Full Changelog**: https://github.com/astral-sh/uv/compare/0.2.9...0.2.10

<!-- generated by git-cliff -->

The obvious benefit is that you will have the links and usernames in the changelog along with the contributors list.
The config (if you are interested):

Details
# git-cliff ~ configuration file
# https://git-cliff.org/docs/configuration

[remote.github]
owner = "astral-sh"
repo = "uv"

[changelog]
# changelog header
header = """
# Changelog
"""
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
{% if version %}\
    {% if previous.version %}\
        ## [{{ version | trim_start_matches(pat="v") }}]\
          ({{ self::remote_url() }}/compare/{{ previous.version }}..{{ version }})
    {% else %}\
        ## [{{ version | trim_start_matches(pat="v") }}]
    {% endif %}\
{% else %}\
    ## [unreleased]
{% endif %}\

### Preview features

{% for commit in commits %}
  {% if commit.github.pr_title -%}
    {%- set commit_message = commit.github.pr_title -%}
  {%- else -%}
    {%- set commit_message = commit.message -%}
  {%- endif -%}
  * {{ commit_message | split(pat="\n") | first | trim }}\
    {% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%}
    {% if commit.github.pr_number %} in \
      [#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}) \
    {%- endif %}
{%- endfor -%}

{%- if github -%}
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
  {% raw %}\n{% endraw -%}
  ## New Contributors
{%- endif %}\
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
  * @{{ contributor.username }} made their first contribution
    {%- if contributor.pr_number %} in \
      [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
    {%- endif %}
{%- endfor -%}
{%- endif -%}

{% if version %}
    {% if previous.version %}
      **Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
    {% endif %}
{% else -%}
  {% raw %}\n{% endraw %}
{% endif %}

{%- macro remote_url() -%}
  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
{%- endmacro -%}
"""
# remove the leading and trailing whitespace from the template
trim = true
# changelog footer
footer = """
<!-- generated by git-cliff -->
"""
# postprocessors
postprocessors = []

[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = false
# filter out the commits that are not conventional
filter_unconventional = true
# regex for preprocessing the commit messages
commit_preprocessors = [
  # remove issue numbers from commits
  { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" },
]
# protect breaking changes from being skipped due to matching a skipping commit_parser
protect_breaking_commits = false
# filter out the commits that are not matched by commit parsers
filter_commits = false
# regex for matching git tags
tag_pattern = "[0-9].*"
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "newest"

Also you can take a look at https://github.com/ratatui-org/ratatui/blob/main/cliff.toml

Did this experiment and just wanted to share the results 🐻
Cheers!

Hi! Thanks maybe I'll take a look at it. We actually don't want the usernames / contributors in the changelog because we think it's too noisy. We are interested in populating the GitHub Release notes with the contributing users but I haven't had time to invest in the tooling.
Where do you do filtering based on the pull request label? I don't see it in the template you shared.

Ah I see! Here is the updated version:
### bug & preview

* Fix relative and absolute path handling in lockfiles by @konstin in [#4266](https://github.com/astral-sh/uv/pull/4266)
* Respect workspace-wide `requires-python` in interpreter selection by @charliermarsh in [#4298](https://github.com/astral-sh/uv/pull/4298)
* Respect `requires-python` in `uv lock` by @zanieb in [#4282](https://github.com/astral-sh/uv/pull/4282)
* Use registry URL for fetching source distributions from lockfile by @charliermarsh in [#4280](https://github.com/astral-sh/uv/pull/4280)

### cli & preview

* Add `--force` option to `uv toolchain install` by @zanieb in [#4313](https://github.com/astral-sh/uv/pull/4313)

### configuration & preview

* Add `--no-build`, `--no-build-package`, and binary variants by @charliermarsh in [#4322](https://github.com/astral-sh/uv/pull/4322)
* Load configuration options from workspace root by @charliermarsh in [#4295](https://github.com/astral-sh/uv/pull/4295)
* Add persistent configuration for non-`pip` APIs by @charliermarsh in [#4294](https://github.com/astral-sh/uv/pull/4294)

### error messages & preview

* Omit project name from workspace errors by @charliermarsh in [#4299](https://github.com/astral-sh/uv/pull/4299)

### internal & cli

* Move project commands into their own subcommand struct by @charliermarsh in [#4261](https://github.com/astral-sh/uv/pull/4261)

### internal & configuration

* DRY up index argument parsing by @charliermarsh in [#4262](https://github.com/astral-sh/uv/pull/4262)

## New Contributors
* @ericmarkmartin made their first contribution in [#4336](https://github.com/astral-sh/uv/pull/4336)
* @hofbi made their first contribution in [#4315](https://github.com/astral-sh/uv/pull/4315)
* @funkybob made their first contribution in [#4302](https://github.com/astral-sh/uv/pull/4302)
* @brianmego made their first contribution in [#4301](https://github.com/astral-sh/uv/pull/4301)
* @ticosax made their first contribution in [#4269](https://github.com/astral-sh/uv/pull/4269)

Updated template
(I quickly put it together - it can be simplified & cleaned up a bit)
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
{% if version %}\
    {% if previous.version %}\
        ## [{{ version | trim_start_matches(pat="v") }}]\
          ({{ self::remote_url() }}/compare/{{ previous.version }}..{{ version }})
    {% else %}\
        ## [{{ version | trim_start_matches(pat="v") }}]
    {% endif %}\
{% else %}\
    ## [unreleased]
{% endif %}\

{% for _groups, commits in commits | group_by(attribute="github.pr_labels") %}
  {%- set groups = _groups | trim_start_matches(pat="[") | trim_end_matches(pat="]") | trim | split(pat=",") -%}
  {%- set_global labels = [] -%}
  {%- for group in groups -%}
    {%- set_global label = group | trim_start_matches(pat='"') | trim_end_matches(pat='"') -%}
    {%- set_global labels = labels | concat(with=label) -%}
  {%- endfor -%}
  {%- if labels | length > 1 %}
    ### {{ labels | join(sep=" & ") }}
      {% for commit in commits %}
        {% if commit.github.pr_title -%}
          {%- set commit_message = commit.github.pr_title -%}
        {%- else -%}
          {%- set commit_message = commit.message -%}
        {%- endif -%}
        * {{ commit_message | split(pat="\n") | first | trim }}\
          {% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%}
          {% if commit.github.pr_number %} in \
            [#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}) \
          {%- endif %}
        {%- raw -%}\n{% endraw -%}
    {%- endfor -%}
  {%- endif -%}
{%- endfor -%}

{%- if github -%}
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
  {% raw %}\n{% endraw -%}
  ## New Contributors
{%- endif %}\
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
  * @{{ contributor.username }} made their first contribution
    {%- if contributor.pr_number %} in \
      [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
    {%- endif %}
{%- endfor -%}
{%- endif -%}

{% if version %}
    {% if previous.version %}
      **Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
    {% endif %}
{% else -%}
  {% raw %}\n{% endraw %}
{% endif %}

{%- macro remote_url() -%}
  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
{%- endmacro -%}
"""


Finalizing authors

We need to finalize authors for the version 1 release of this repository.
The authors should be those involved in the LINCS Cell Painting data creation. This means individuals involved in:

funding acquisition
experiment planning
assay optimization
data collection
data processing
data curation

I know that this is a complex task, but its complexity matches its importance. Once we define authors we can ensure proper  attribution to all papers that use this data. @shntnu - please help me with this :)
Once we define authors, I will also:

[ ] Update the zenodo archive https://zenodo.org/record/3928744#.YLTxBpNKiQ4 (I'll also update this to version 1)
[ ] Mark this task as complete in the LINCS complementarity paper

I've pinged Ted here

It sounds like this has been resolved. @shntnu - I am going to get to this this afternoon. Is that google doc also reflective of author order? IMO, you can make that call initially, let Ted know, and then we can always change it if need be.

Ted Natoli, Gregory P. Way, Xiaodong Lu, David Logan, Maria Alimova, Kate Hartland, Todd Golub, Anne E. Carpenter, Shantanu Singh, Aravind Subramanian


Missing tweets

Shorter version (tl;dr)
twint returns much less tweets than the number of tweets displayed on the Twitter page of a user.
Example with @BouloGiletJaune:

twitter page: 728
twint: 171

Longer version
Description
On Linux fedora29, using the latest twint 1.2.3 with Python 3.7 in a brand new virtual environment, when I run this command it returns about only half the tweets available:
$ twint --retweets -u BouloGiletJaune | wc -l
171

However this particular Twitter user has posted 278+ tweets: https://twitter.com/BouloGiletJaune?lang=en
Missing tweets occur with all the twitter accounts I could try.
Using Profile_full=True
With the Profile() function and Profile_full=True twint returns more tweets (272 tweets) yet not the right amount (278), but it's slow as hell:
$ time twint --profile-full --retweets -u BouloGiletJaune | wc -l
CRITICAL:root:twint.feed:Mobile:list index out of range
CRITICAL:root:twint.feed:Mobile:list index out of range
272

real	3m9.178s
user	1m11.755s
sys	0m1.081s

Profile_full is not a solution
Missing 6 tweets doesn't seem like a big issue, but with an account that has many more tweets (35k) --profile-full) still misses about 2,000 tweets, not mentioning the hours it takes to complete. So it's definitely not a viable workaround.
The --all option doesn't seem to work
To be noted: the --all command line option is supposed to return *all* tweets associated with a user, but it doesn't seem to work:
(virtualenv) $ twint --all BouloGiletJaune
[-] Error: Please use at least -u, -s, -g or --near.

Your help is much appreciated
So, can you please let me know what I'm doing wrong or if you spot a problem?
Maybe it's some known limitation?
Thank you.
Technical details
Installation
I've installed twint using this command from within the python3 virtual environment:
(virtualenv) $ pip3 install -e 'git+https://github.com/twintproject/twint.git@origin/master#egg=twint'

Bug signature
The number of tweets returned is too small:
$ time twint --retweets -u BouloGiletJaune | wc -l
171

real	0m15.453s
user	0m8.933s
sys	0m0.447s

pip version
(virtualenv) $ pip --version
pip 19.1.1 from /home/user/git/project/virtualenv/lib/python3.7/site-packages/pip (python 3.7)

python version
Fedora's stock version of Python is used. As with all virtualenv, binaries are automatically copied in the virtual environment.
(virtualenv) $ python -VV
Python 3.7.3 (default, May 11 2019, 00:45:16)
[GCC 8.3.1 20190223 (Red Hat 8.3.1-2)]

pip packages installed
Only twint has a local path because it's been installed using git (see above) which is the recommended way to install the latest version.
(virtualenv) $ pip list installed
Package         Version Location
--------------- ------- --------------------------------
aiodns          2.0.0
aiohttp         3.5.4
aiohttp-socks   0.2.2
async-timeout   3.0.1
attrs           19.1.0
beautifulsoup4  4.7.1
cchardet        2.1.4
cffi            1.12.3
chardet         3.0.4
elasticsearch   7.0.2
fake-useragent  0.1.11
geographiclib   1.49
geopy           1.20.0
idna            2.8
multidict       4.5.2
numpy           1.16.4
pandas          0.24.2
pip             19.1.1
pycares         3.0.0
pycparser       2.19
PySocks         1.7.0
python-dateutil 2.8.0
pytz            2019.1
schedule        0.6.0
setuptools      41.0.1
six             1.12.0
soupsieve       1.9.2
twint           1.2.3   /home/user/git/project/virtualenv/src/twint
urllib3         1.25.3
wheel           0.33.4
yarl            1.3.0

twint package details
(virtualenv) $ pip show twint
Name: twint
Version: 1.2.3
Summary: An advanced Twitter scraping & OSINT tool.
Home-page: https://github.com/twintproject/twint
Author: Cody Zacharias
Author-email<EMAIL_ADDRESS>License: MIT
Location: /home/user/git/project/virtualenv/src/twint
Requires: aiohttp, aiodns, beautifulsoup4, cchardet, elasticsearch, pysocks, pandas, aiohttp-socks, schedule, geopy, fake-useragent
Required-by:

The machine
(virtualenv) $ uname -a
Linux work 5.1.11-200.fc29.x86_64 #1 SMP Mon Jun 17 19:30:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

The O/S
(virtualenv) $ lsb_release
LSB Version:	:core-4.1-amd64:core-4.1-noarch

SELinux
(virtualenv) $ getenforce
Enforcing

First, thank you so much for taking time to write a properly documented issue
Limits with --retweets
I tried twint --retweets -u BouloGiletJaune and got 176 tweets, still less than expected.
While this might sound like Twint is doing something wrong, the point is that Twitter stops Twint before reaching the beginning of the timeline. This can be verified via browser as showed in this screenshot

Which is the latest returned tweet by Twint (at least in my experience)

Profile_full = True
This option requires a lot of time by construction, this should be used only if the account is shadow banned (which means that you can't find his/her/its tweets via search bar)
All options
There is a checking-args error (in Twint code) that I'm going to fix really quickly. Please consider that All option might require a lot of time since it returns tweets sent by/to him, and tweets that mention him
https://github.com/twintproject/twint/blob/ad27650fbc0bf8c3f2c78449088a5ede7239f53a/twint/url.py#L100-L101
If you use Twint as module, everything will work as expected
Conclusions
There are limitations with --retweets and --profile-full imposed by Twitter, limitations that we can't handle or workaround.
There's a checking-error in Twint code, which affects only if you use Twint via CLI

@pielco11 thank you for taking the time to formulate a prompt and structured response.

While this might sound like Twint is doing something wrong, the point is that Twitter stops Twint before reaching the beginning of the timeline. This can be verified via browser.

In the browser, the last tweet returned is indeed the same as twint grabs:
1069924606788685824 2018-12-04 12:01:19 BST <BouloGiletJaune> Un moratoire et quelques mesurettes...

In your response you're hinting that Twitter stops before reaching the beginning of the timeline. Maybe there are more tweets before that one? So I've checked using the python-twitter library which taps Twitter API directly (but is limited to the last 3,200 tweets) and I got 274 tweets. So indeed it's like you wrote: Twitter is limiting scraping.


May be useful to see if we can show "Fully Gemmed and Enchanted!" messages using the existing API.

May be useful to see if we can show "Fully Gemmed and Enchanted!" messages using the existing API.
https://wowwiki-archive.fandom.com/wiki/API_GetSocketTypes
https://wowwiki-archive.fandom.com/wiki/API_GetWeaponEnchantInfo
This is not for MVP. Just ideas for future state.
Originally posted by @Gogo1951 in https://github.com/Gogo1951/Groupie-LFG/issues/7#issuecomment-1212538461

#208 handles this.


clicking "Überarbeiten" should check for existing revisions

the current test approach is not reliable, as a failure will leave the system in a bad state.
Probably detect the state and fix it

another try for a more reliable approach


Docs

Review main README protocol flow, update it based on the blogpost

When published, a link to the part 2 of the blogpost will replace the protocol flow in the main readme


Edit config to throw warning for broken anchors

Purpose of this pull request

Edit config to throw warning for broken anchors
Fix existing broken anchors

Select the type of change

[x] Minor Changes - Typos, formatting, slight revisions
[ ] Update Content - Revisions, updating sections
[ ] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - .clabot, version updates, maintenance, dependencies, new packages for the site (Docusaurus, Gatsby, React, etc.)

Ticket (if applicable)
https://sumologic.atlassian.net/browse/DOCS-438

@kimsauce, I approved the PR. I disabled auto-merge because I thought you might want to double-check things before merging. I ran yarn build and it came out with no broken links.


Dask-friendly nan check in xr.corr() and xr.cov()

Was reading the discussion here and thought I'd draft a PR to implement some of the changes people suggested. It seems like the main problem is that currently in computation.py, if not valid_values.all() is not a lazy operation, and so can be a bottleneck for very large dataarrays. To get around this, I've lifted some neat tricks from #4559 so that valid_values remains a dask array.
Todo:

Add a test

[x] Closes #4804
[x] Tests added
[x] Passes pre-commit run --all-files
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

Hey both, I've added a test to check that dask doesn't compute when calling either xr.corr() or xr.cov(), and also that the end result is still a dask  array. Let me know if there's anything I've missed though! thanks for the help :)
@dcherian, regarding the apply_ufunc approach, I might leave that for now but as you said it can always be a future PR

Please feel free to add a whatsnew @AndrewWilliams3142

Thank you very much @AndrewWilliams3142 !


Beta/Devel. Roku Channel Can't Be Added

When trying to add the beta/development private channel, Roku reports:
The channel code provided is associated with a channel not available in your region.
I am in the USA. Is this only available for non-USA Roku users?

There’s no Beta/Development channel. Just add the channel in the channel store as that’s the latest version. It should be available UNC all country’s.

There is a post on Reddit by Chtaylo2 (here) that states a beta channel for this Google Photos Roku app is available. I am trying to add that channel since it seems to enable better support of 4K videos and 4K photo displaying on 4K TVs.

That post was from a year ago. It’s been released into the channel store for a long time now.

4K video is still not supported..Google API limitation.  It does support photos though


Added constants PI, TAU and E to the shader language

I added some of the more commonly used constants to the shading language.
Issue #20726
Bugsquad edit: Closes #20726

Yep, checked, seems worked correctly. Thanks for your first contribution to Godot Engine!

They just happened to be defined in the same file as PI and TAU. I guess they aren't necessary as long as the shader compiler is smart enough to compute ln(2) at compile time.

Thanks! And congrats for your first merged Godot contribution :tada:


FileSystem module

Implement the FileSystem module and make \Zettacast\Facade\FileSystem available.

The \Zettacast\FileSystem\Driver\Virtual class should have an option for saving and loading the filesystem from a file.

The drivers \Zettacast\Filesystem\Driver\FTP and \Zettacast\Filesystem\Driver\Zip should be implemented.


Gap between title bar and address bar doubles when tabs are enabled

Describe the bug
When the app uses the tabs layout, the gap between the address and title bar becomes too tall, and wastes a lot of space. It almost looks like there's another title bar below the actual one
To Reproduce
Open the app in Vertical layout, then in Horizontal/Adaptive layout, and compare them
Expected behavior
Gap should stay the same across both modes
Screenshots
Vertical layout:

Horizontal/Adaptive layout (aka. with tabs):

Desktop (please complete the following information):

OS Version: Windows 10 20H2
App version: v<IP_ADDRESS>

@SOI7 This issue should be resolved with #3797.


webpack中引入echarts-liquidfill，运行报错

错误：Uncaught DOMException: Failed to execute 'arc' on 'CanvasRenderingContext2D': The radius provided (-12) is negative.

代码：
import echarts from 'echarts'
import 'echarts-liquidfill'
let option = {
series: [{
            type: 'liquidFill',
            data: [0.20, 0.30, 0.15, 0.10],
            radius: '19%'
        }]
}
humidityDashboard = echarts.init(document.getElementById('humidity-dashboard'))
humidityDashboard.setOption(option)

换成别的 data 也一样报错吗？

Development Infrastructure:
Framework: React
Builder: Webpack 2
Temporary Solution:
change radius >27
import echarts from 'echarts'
import 'echarts-liquidfill'
let option = {
series: [{
            type: 'liquidFill',
            data: [0.20, 0.30, 0.15, 0.10],
            radius: 30
        }]
}
humidityDashboard = echarts.init(document.getElementById('humidity-dashboard'))
humidityDashboard.setOption(option)

@kingspp You should probably need a larger radius (try 300 perhaps). Open a new issue if you have further questions, rather than report unrelated problem in this issues. Thanks.


Support Pixhawk 1/2 with 2MB flash (boards with rev3 chip)

All the Pixhawks I have recently acquired have a rev 3 STM32 chip, and therefore should support the full 2MB.
Would make life much easier if we can add some sort of an auxiliary config to support these boards, and potentially @proficnc's Pixhawk 2s in a couple of months time, when they start retailing.
@davids5 @jgoppert

Is there any way to tell in software which revision we have (except triggering the known fault)?

There's mcu_version, but I think you'll need a new config, px4fmu-v2_large or whatever you want to call it.
https://github.com/PX4/Firmware/blob/ce7dad81c2db0bcf319f62d3d9550f604a87ea1c/src/modules/systemlib/mcu_version.c#L116
Then you could add cmake/configs/nuttx_px4fmu-v2_large.cmake, maybe make it a superset of px4fmu-v2_default.  You'll either need a duplicated nuttx-config, or find a find to use a different ld.script. https://github.com/PX4/Firmware/blob/master/nuttx-configs/px4fmu-v2/scripts/ld.script

Hi!
The latest revs of [bootloader] (https://github.com/PX4/Bootloader/blob/master/main_f4.c#L311) prevents that DL 2MB of a file to a "flawed device" - [see] (https://github.com/PX4/Bootloader/blob/master/main_f4.c#L578)
So it is conceivable we could add a new target or attribute to the build to switch in a different linker file.
I do this in nuttx_v3 for bootloader. Or in the nuttx copy for that target 'sed' it.
The danger here is boards with old bootloader will allow the load - so I would add a module or ifdef ver  to check if the > then 1 meg is not 0xffffff and refuse to run,

This would be great!
Also there are quite a few of the Pixhawk 1's that have the new chip.

@davids5 I'm trying to figure out how to make a px4fmu-v3 config which differs from v2 only in the linker script. But I can't find anything similar in nuttx_v3; could you point me in the right direction?

I think it is the same as you did for https://github.com/PX4/Firmware/pull/5821 but just use the /src/driver/boards/px4fmu-v2 in the cmake/configs/nuttx_px4fmu-v3_default.cmake
See https://github.com/PX4/Firmware/pull/5821/commits/43a7f83d1784f931d39bdadd96c92083a3e33d25

It seems that include paths are constructed using the target name:
12:44:03 {add_fmuv3} ~/git/kd0aij/PX4/Firmware$ make px4fmu-v3_default
-- nuttx-px4fmu-v3-default
-- CMAKE_INSTALL_PREFIX:
-- cmake module path: /home/markw/git/kd0aij/PX4/Firmware/cmake
-- The ASM compiler identification is GNU
-- Found assembler: /usr/lib/ccache/arm-none-eabi-gcc
-- catkin DISABLED
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.10", minimum required is "2.7")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- GIT_TAG = v1.5.0-565-g43a7f83
-- Configuring done
-- Generating done
-- Build files have been written to: /home/markw/git/kd0aij/PX4/Firmware/build_px4fmu-v3_default
PX4 CONFIG: /home/markw/git/kd0aij/PX4/Firmware/build_px4fmu-v3_default
ninja: Entering directory `/home/markw/git/kd0aij/PX4/Firmware/build_px4fmu-v3_default'
[26/529] Building CXX object CMakeFiles/msg_gen.dir/topics_sources/adc_report.cpp.obj
FAILED: /usr/lib/ccache/arm-none-eabi-g++   -DCONFIG_ARCH_BOARD_PX4FMU_V3 -D__DF_NUTTX -D__PX4_NUTTX -D__STDC_FORMAT_MACROS -g -fno-exceptions -fno-rtti -std=gnu++0x -fno-threadsafe-statics -DCONFIG_WCHAR_BUILTIN -D__CUSTOM_FILE_IO__ -fcheck-new -Wall -Werror -Wextra -Wno-sign-compare -Wshadow -Wfloat-equal -Wpointer-arith -Wmissing-declarations -Wno-unused-parameter -Werror=format-security -Werror=array-bounds -Wfatal-errors -Werror=unused-variable -Werror=reorder -Werror=uninitialized -Werror=init-self -Werror=unused-but-set-variable -Wformat=1 -Wdouble-promotion -Werror=double-promotion -Wno-missing-field-initializers -fvisibility=hidden -include visibility.h -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -nodefaultlibs -nostdlib -Os -fno-strict-aliasing -fomit-frame-pointer -funsafe-math-optimizations -ffunction-sections -fdata-sections -fno-strength-reduce -fno-builtin-printf -O2 -g -DNDEBUG -I../src -I. -Isrc -I../src/modules -I../src/include -I../src/lib -I../src/platforms -I../src/drivers/boards/px4fmu-v3 -Isrc/modules/px4_messages -Isrc/modules -I../mavlink/include/mavlink -I../src/lib/DriverFramework/framework/include -I../src/lib/matrix -Ipx4fmu-v3/NuttX/nuttx-export/include -Ipx4fmu-v3/NuttX/nuttx-export/include/cxx -Ipx4fmu-v3/NuttX/nuttx-export/arch/chip -Ipx4fmu-v3/NuttX/nuttx-export/arch/common -Iexternal/Install/include    -Os -fno-strict-aliasing -fomit-frame-pointer -funsafe-math-optimizations -ffunction-sections -fdata-sections -fno-strength-reduce -fno-builtin-printf -MMD -MT CMakeFiles/msg_gen.dir/topics_sources/adc_report.cpp.obj -MF CMakeFiles/msg_gen.dir/topics_sources/adc_report.cpp.obj.d -o CMakeFiles/msg_gen.dir/topics_sources/adc_report.cpp.obj -c topics_sources/adc_report.cpp
In file included from topics_sources/adc_report.cpp:37:0:
../src/platforms/px4_config.h:45:26: fatal error: board_config.h: No such file or directory
 #include <board_config.h>
                          ^
compilation terminated.

Yes, you need to duplicate that. But not the whole directory structure. In addition: You can just include the v2 header in your v3 config.

@LorenzMeier Thanks, looks like that's working OK. I'll clean up my branch and reopen #5821 soon.

Done.


Computed properties

Not sure if this is possible but worth investigating, use user-defined getter/setters in the bound data object.
var store = {}
var data = {}

Object.defineProperty(data, 'computed', {
  get: function () { return store.computed }
  set: function (x) { store.computed = x + x }
})

var node = bind(data, bindings)

Would need to use Object.getOwnPropertyDescriptor.

After trying to implement this, I realized that it is not possible, due to the setter function needing its own closure.


Area with x datetimes doesn't work on latest dev

/mnt/c/Users/user/GOOGLE~1/Bash/holoviews/holoviews/plotting/bokeh/chart.py in _split_area(self, xs, lower, upper)
    492         each area separated by nans.
    493         """
--> 494         split = np.where(np.isnan(xs) | np.isnan(lower) | np.isnan(upper))[0]
    495         xvals = np.split(xs, split)
    496         lower = np.split(lower, split)

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

holoviews                1.11.0a3.post21+g76f61386
https://github.com/ioam/holoviews/commit/221c4df0f3d78395aad1c49ba4ac08bda255ec2a

Fixed in #3045


Consensus configuration of policy.go

Integrate and discuss Consensus configuration related issues here.

[x] General
[x] Staking
[x] Mint
[x] Distr
[x] Gov
[x] Crisis
[x] Slashing

In policy.go, we have genesis configuration value which need to meet hippo spec.

const (
        // general
	MinGasPrices    = "5000000000000ahippo"
	BlockTimeSec    = 6
	UnbondingPeriod = 60 * 60 * 24 * 7 * 3 * time.Second
	// staking
	MaxValidators     = 21
	MinCommissionRate = 10
	// mint
	Minter              = 25
	InflationRateChange = 25
	InflationMin        = 90
	InflationMax        = 25
	BlocksPerYear       = uint64(60*60*24*365) / uint64(BlockTimeSec)
	// distr
	CommunityTax = 0
	// gov
	MinDepositTokens = 50_000
	MaxDepositPeriod = 60 * 60 * 24 * 14 * time.Second
	VotingPeriod     = 60 * 60 * 24 * 14 * time.Second
	// crisis
	ConstantFee = 100_000
	// slashing
	SignedBlocksWindow      = 10_000
	MinSignedPerWindow      = 5
	SlashFractionDoubleSign = 5
	SlashFractionDowntime   = 0.01
)

Community tax changed to 92%
https://github.com/hippocrat-dao/hippo-protocol/pull/55

Validator set count changed to 22
https://github.com/hippocrat-dao/hippo-protocol/pull/57


Initial implementation of the Auto-Updater.

It will look at the latest releases (ignores preview/drafts)
I will look for the first .exe file (only works for windows)
Will check for updates every 15 mins.
Each update check is 1 API call, and github allows 60 per hour.

Looks good, thank you.


Fix error when writing trimmed test case

This PR attempts to fix an error due to unlink failing when updating a test case after trimming by falling back to truncating the file. AFL++ follows a similar approach using an additional -N flag added by AFLplusplus/AFLplusplus@f8bc9b54dabc759e9ad1eb82e5ee36af3bb4e1a6.

Thanks!


Add optional query method?

Description
First off: Thanks for this. I’ve tried building exactly this functionality a few days ago. And then found this repo 😅
The API I’ll be querying has a specific way of handling array params in queries (arrayValue[]=foo&arrayValue[]=bar to pass arrayValue: [‘foo, ‘bar’]). It also replaces every empty space with a +. Both of these I’ve extracted into a tiny function to ensure a well written query for this API in my stab at building this.
I’ve seen that you “just” stringify the query from new URLSearchParams.
That’s the reason why I haven’t directly used your library - I already know that the requests would fail due to the query params being passed in the wrong format for that API.
Proposal
I could imagine keeping the current functionality to generate the query. And add an optional parseQuery parameter which would be used if supplied. What do you think?
Checklist

[x] I’m willing to open a PR for this (see CONTRIBUTING.md)

Thanks for suggesting this. This was a question I had in the back of my mind but didn’t solve for yet.
I know there’s no “official” standard for arrayed parameters, but I am used to the exact syntax you proposed—suffixing with []. I think that’s common enough this library should just handle transforming array params in a way that will work for most people. The type assertion is already correct; the runtime transform just needs to be added. I can handle this part.
But also yes I think a parseParam() API would be essential as well. For all the other edge cases people would need (it’s rare, but I’ve also needed base64 parameter transformation of a long string before). If you’d want to propose an API for this, I’d be open!

We use https://www.npmjs.com/package/qs for serializing our query parameters.  I'm forking to add this functionality so I can use our function.

See #21

Thanks for the PR! Will check that out later.
And yes I’m sure we can add this without adding 34 kB to this library from qs.

Was not suggesting that, sorry for the confusion.  PR only allows passing any function to serialize with, but falls back to existing implementation.

This has landed! Doing a little more testing & a little bit of polish, but this will go out in the next release (refer to the README on the next release; may tweak what’s there a bit)

Awesome, thank you 👍🚀


docs: README.md

deno install is preferred now

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

awesome thanks, I was looking into moving out node containers to deno


Uncaught Error: Class 'Config' not found

Can't install  Uncaught Error: Class 'Config' not found error occurred.

Can't install Uncaught Error: Class 'Config' not found error occurred.
Add this file
https://raw.githubusercontent.com/sidneisimeao/opencart3/master/system/library/config.php
to PATH
master/system/library/

Can't install Uncaught Error: Class 'Config' not found error occurred.

Can't install Uncaught Error: Class 'Config' not found error occurred.
Add this file
https://raw.githubusercontent.com/sidneisimeao/opencart3/master/system/library/config.php
to PATH
master/system/library/


peerDependency causing install to fail with<EMAIL_ADDRESS>

Eslint just released version 1.0.0-rc-1 which doesn't work with this plugin.
Can we switch the peerDependency to *? Right now I'm in dependency hell. :(

Ok to switch to *

What about removing peer deps entirely. NPM 3 is coming out and does away with all that non-sense in favor or dedupe's and flat trees.

Actually I'd prefer to keep it until the final version of npm 3 is released.

After testing, * does not seems to accept pre-release versions since npm 2.
I switched to >=0.8.0 || ~1.0.0-rc-0, it should do the trick.

Thanks!
On Wed, Jul 15, 2015 at 4:01 PM Yannick Croissant<EMAIL_ADDRESS>wrote:

After testing, * does not seems to accept pre-release versions since npm
2.
I switched to >=0.8.0 || ~1.0.0-rc-0, it should do the trick.
—
Reply to this email directly or view it on GitHub
https://github.com/yannickcr/eslint-plugin-react/issues/154#issuecomment-121772172
.

I'm still seeing this issue when trying to install<EMAIL_ADDRESS>+<EMAIL_ADDRESS>Here are my dependencies for reference:
  "dependencies": {
    "eslint": "^1.0.0-rc-1",
    "eslint-plugin-react": "^2.7.1"
  },
  "peerDependencies": {
    "eslint-plugin-react": ">=2.x",
    "eslint": ">=0.23.0"
  }

And the error:
❯ npm install
npm ERR! Darwin 13.4.0
npm ERR! argv "node" "npm" "install"
npm ERR! node v0.12.2
npm ERR! npm  v2.13.0
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer<EMAIL_ADDRESS>wants<EMAIL_ADDRESS>|| ~1.0.0-rc-0

Please ignore, I immediately saw my problem :). Needed to update my eslint in peerDependencies.


integration_test invoking 'takeScreenshot' on iOS causes MissingPluginException (No implementation found for method captureScreenshot)

Steps to Reproduce

Create a new project with "flutter create"
Add dependencies to pubspec.yaml

  integration_test:
    sdk: flutter
  flutter_test:
    sdk: flutter

Add folder 'integration_test' with file 'app_test.dart' and the following code with just an additional call to binding.takeScreenshot
On Android this works great. On iOS, on the Simulator as well as an attached device - I get the following error.

import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:screenshot_test/main.dart' as app;

void main() {
  //IntegrationTestWidgetsFlutterBinding.ensureInitialized();
  IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding;

  group('end-to-end test', () {
    testWidgets('tap on the floating action button, verify counter',
            (WidgetTester tester) async {
          app.main();
          await tester.pumpAndSettle();

          // Verify the counter starts at 0.
          expect(find.text('0'), findsOneWidget);

          // Finds the floating action button to tap on.
          final Finder fab = find.byTooltip('Increment');

          // Emulate a tap on the floating action button.
          await tester.tap(fab);

          // Trigger a frame.
          await tester.pumpAndSettle();

          await binding.takeScreenshot('test');

          // Verify the counter increments by 1.
          expect(find.text('1'), findsOneWidget);
        });
  });
}

execute 'flutter test integration_test/app_test.dart'
chose an iOS device or simulator

Expected results:
Same result as without the added "takeScreenshot" and the same as running the same code on Android.
Actual results:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following MissingPluginException was thrown running a test:
MissingPluginException(No implementation found for method captureScreenshot on channel
plugins.flutter.io/integration_test)

When the exception was thrown, this was the stack:
#0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:165:7)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

The test description was:
  tap on the floating action button, verify counter
═════════════════════════════════════════════════════════════════════════════════════

Code sample

Logs

Analyzing screenshot_test...
info • Avoid print calls in production code • test_driver/integration_test.dart:17:5 • avoid_print
1 issue found. (ran in 1.9s)

[✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-x64, locale en-DE)
• Flutter version 2.8.1 at /Users/bjornwaide/Development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 77d935af4d (5 weeks ago), 2021-12-16 08:37:33 -0800
• Engine revision 890a5fca2e
• Dart version 2.15.1
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
• Android SDK at /Users/bjornwaide/Library/Android/sdk
• Platform android-32, build-tools 32.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2020.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 11.0.10+0-b96-7281165)
[✓] Connected device (4 available)
• SM A127F (mobile)  • RZ8RB08JF0Z                          • android-arm64  • Android 11 (API 30)
• iWaide (mobile)    • 00008030-001428201E29802E            • ios            • iOS 15.1 19B74
• iPhone 11 (mobile) • 278C4915-2D09-49D1-85E4-5B092551627A • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2
(simulator)
• Chrome (web)       • chrome                               • web-javascript • Google Chrome 97.0.4692.71
• No issues found!

@bwaide
There's similar open issue describing your case, https://github.com/flutter/flutter/issues/91668
Please follow-up in it for further updates.
Closing this as a duplicate.


the white screen in the program after "sudo node . patch"

On 04.11.2024, the program worked fine with the patch.
and already on 05.11.2024, a gray screen appears at startup.
Reinstalling the patch does nothing.
Changing the IP doesn't do anything either.
Undo the changes and the program works.
Master, please help me)

try updating your Node.js version to the latest version

On 04.11.2024, the program worked fine with the patch. and already on 05.11.2024, a gray screen appears at startup. Reinstalling the patch does nothing. Changing the IP doesn't do anything either.
Undo the changes and the program works.
Master, please help me)

Update Node.js v22.x and your problem is solved

Node.js v22

It works now!
Thanks a lot for the bug fixes!
P.S.: I need to find time for a deeper study of JS as soon as possible. This knowledge is becoming more and more necessary now.

Same issue, please guide me how to fix it. I updated nodejs to v 22.11.0

I think it's better to undo the changes or delete the program with all the components, update NodeJS, install the program and add the patch again.
personally, I did about that myself.

Та же проблема, пожалуйста, подскажите, как ее исправить. Я обновил nodejs до версии 22.11.0

Я думаю, что лучше отменить изменения или удалить программу со всеми компонентами, обновить NodeJS, установить программу и добавить патч заново.
Лично я так и сделал.

Даже после выполненных шагов, проблема остается.

Same problem here, tried to reinstall both the app and patcher, didn’t help.

On 04.11.2024, the program worked fine with the patch. and already on 05.11.2024, a gray screen appears at startup. Reinstalling the patch does nothing. Changing the IP doesn't do anything either.
Undo the changes and the program works.
Master, please help me)

Update Node.js v22.x and your problem is solved

My Node.js already v22.x but the problem with blank white screen still appeared. #Windows 10

I am using 1.19.1 and tried both node 22 or latest 23 but also blank screen after patching.

check https://github.com/XielQs/httptoolkit-pro-patcher/issues/26#issuecomment-2465143167


[New game]:

🎮 Game Request
Breakaway is a platform/puzzle game.
Bubu while doing the poo unfortunately finds himself on a strange planet,
and now he need your help to escape from here!
Point down the features
TIPS:
Jump on enemy to kill him, collect keys to open the door.
CONTROLS:
ARROWS: move Bubu
H: show/hide menu
R: restart current level (if you stuck)
P: enter a level password
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @S-ishita !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @S-ishita!
We are already having a similar game request in #1145 👀
Make sure you come up with a cool unique idea 😀
Waiting for your new game idea 💗.

Hey @S-ishita ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


fix(chat): add \r to message splitting (Issue #916)

Description:
Add \r to message splitting
Issues:

https://github.com/epam/ai-dial-chat/issues/916

PRs:

https://github.com/epam/ai-dial-chat/pull/937

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review


Restrict ViewComparison to non-strided Views

arborx/ArborX@a4e33e3 (#683) exposed that we can't use subviews in BOOST_TEST macros since they are strided and, thus, its elements are potentially not contiguous in memory.

RandomAccessIterator is in namespace Kokkos::Experimental::Impl, though. I'm not quite sure if w are happy relying on functionality in an Impl namespace.


Add Knative Camel 0.13.2 to community operators

Signed-off-by: Nicola Ferraro<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.

Flat operator directory structure is obsolete from 23-rd of October 2019, only nested directory structure will be accepted.

Updates to existing Operators

[x] Is your new CSV pointing to the previous version with the replaces property?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[x] Is your submission signed?

Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Submit operators to both upstream-community-operators and community-operators at once
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description about the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

Can I do anything to unlock the CI?

@J0zi  this was merged 11 days ago, but it is still not in the operatorhub, The "Assign to Community Operator Submissions"  job failed, so I suppose this was lost?
https://github.com/operator-framework/community-operators/runs/555104722


Question: Is there any way to add property to edge for Gremlin storage?

I'd like to add property to edge like blow.
gremlin> g.V(1).addE('friend').property('date', 2021)

or
gremlin> g.addE('friend').from(g.V(1)).to(g.V(2)).property('date', 2021)

Hey @seiichi1101 and thanks for opening this issue. Currently, there's no way to attach additional fields/properties to edges in all storage engines. However, I'm going to start working on it soon.
Closing as it's a duplicate of https://github.com/ent/ent/issues/1061. Thanks


USER STORY: Product Detail Page

As a student, I will want to be taken to a page with product details when I click a specific item so that I will be able to view all information in regards to the product I am interested in. (e.g. the size, type etc.)
Hierarchy as follows: product category(home page)>all products from category(products page) >product details page.
This will need to be a new screen but we can use some of what we have already built for this.
Ability to edit product details when logged in as admin (edit icon appears).
View 1 product’s details at a time.

related issues: #62

You can create stand-in themes with Material 3 theming that will be edited later (so don't spend too much time on this). No colors, styles, or design beyond this mock-up have been confirmed by the client.


workflow.CreateSession create more sessions than MaxConcurrentSessionExecutionSize

Expected Behavior
Worker does not create more sessions than defined in MaxConcurrentSessionExecutionSize. Workflow tasks are queued until worker is ready to accept new one.
Actual Behavior
More sessions than defined in MaxConcurrentSessionExecutionSize are created
Steps to Reproduce the Problem
I've got quite unusual use case when i need a worker to handle only one session. Workflow itself is quite basic - when session is started, workflow waits for external signal for a while (some sort of approval), than executes single activity. The activity uses serial port, so running two activities / sessions in parallel is prohibited. Normally, there are 2-3 workers are running in parallel.
From time to time i see some workers starting 2 sessions in parallel which seems to be a bug since MaxConcurrentSessionExecutionSize=1 is set to all workers.
Specifications
Temporal CLI server

Version: 1.22.2 server, 1.25.1 go SDK
Platform: Linux

Can you share some more details around this scenario? Ideally some minimal example that reproduces this issue

Unfortunately, i won't be able to share the complete example, but here are some pieces. Hope it makes sense:
So, the workflow is basically executor of 3D-printer. That's why i can't have two workflows/sessions running in parallel for the same worker instance.
There is root workflow that handles pre-processing and other stuff. When the image is ready for print, root workflow creates child workflow that runs on the worker physically connected to the printer.
This is how printer worker is created:
                        w := worker.New(c, "printers-queue", worker.Options{
				Identity:                           fmt.Sprintf("printer-queue-%s", cfg.PrinterName),
				MaxConcurrentSessionExecutionSize:  1,
				EnableSessionWorker:                true,
			})
			pq := printerqueue.NewPrinterWorkflow(cfg.PrinterName)
			w.RegisterWorkflow(pq.PrinterQueue)
                         w.RegisterActivityWithOptions(printActivity.Run, activity.RegisterOptions{
				Name: "PrinterActivity",
			})

I've got at least two workers, running as docker containers.
This is how workflow looks like:
func (wfl *PrinterWorkflow) PrinterQueue(ctx workflow.Context, input string) error {
	sessionOptions := &workflow.SessionOptions{
		CreationTimeout:  1 * time.Hour,
		ExecutionTimeout: 1 * time.Hour,
	}
	// Create a Session with the Worker so that all Activities execute with the same Worker.
	sessionCtx, err := workflow.CreateSession(ctx, sessionOptions)
	if err != nil {
		return err
	}
	defer workflow.CompleteSession(sessionCtx)

        // let parent workflow that printer is assigned and ready to print
	parent := workflow.GetInfo(ctx).ParentWorkflowExecution
	if err := workflow.SignalExternalWorkflow(ctx,
		parent.ID,
		parent.RunID, SignalNameAssigned, wfl.printer).Get(ctx, nil); err != nil {
		return err
	}

	approved, err := wfl.waitForApproval(ctx)
	if err != nil {
		return err
	}
	if !approved {
		return errors.New("printing isn't approved")
	}
        // once approved, start printing
	ctx = workflow.WithActivityOptions(ctx, workflow.ActivityOptions{
		StartToCloseTimeout: 1 * time.Hour,
		TaskQueue:           workflow.GetInfo(ctx).TaskQueueName,
	})
	err = workflow.ExecuteActivity(ctx, "PrinterActivity", activities.PrintActivityInput{
		Filename: input,
	}).Get(ctx, nil)
	if err != nil {
		return err
	}

	return nil
}

That makes perfect sense and explains the problem i have.
Thanks a lot for prompt replies @Quinn-With-Two-Ns
Closing this one since it's not a bug


[BUG] JSQLParser 4.6 : sqlserver : cannot deal keywords

select 1 from [system_user] where a=b

JSqlParser cannot deal sqlserver sql with keywords

found answer in https://github.com/JSQLParser/JSqlParser/issues/1781