"attempt of out-of-bound read" when using -t option

I've been running into errors trying to convert .mcool to .hic format using hictk. I've been trying to pin down the source of the error. As far as I can tell, it's using the -t option, as opposed to accepting the default.
Using this:
hictk convert -t 2 [prefix].mcool [prefix].hic
Results in the error:
[2024-09-30 09:33:54.606] [info]: ingesting pixels at 3150599 pixels/s...
[2024-09-30 09:33:57.458] [info]: writing header at offset 0
[2024-09-30 09:33:57.458] [info]: begin writing interaction blocks to file "test.hic"...
[2024-09-30 09:33:57.458] [info]: [1000 bp] writing pixels for chr1:chr1 matrix at offset 4992...
FAILURE! hictk convert encountered the following error: an error occurred while writing file "test.hic": an error occurred while writing the chr1:chr1 matrix at 1000 resolution to file "test.hic": an error occurred while writing pixels for chr1:chr1 to file "test.hic": an error occurred while writing interaction blocks using a single thread: caught an attempt of out-of-bound read

(I've also seen it associated with other errors that unfortunately I seem to have deleted and that are hard to reproduce. The one above is the most common.)
This:
hictk convert [prefix].mcool [prefix].hic
Leads to successful file conversion on my local PC. However, on SLURM using a workflow parallelized by Nextflow, the option with or without the -t argument leads to the above failure.

Awesome, thank you very much for your quick response. FYI, I get the same error when hictk convert is run on four files in parallel, on SLURM, using singularity with hictk installed, for mcool -> hic conversion, using all default arguments (hictk convert [prefix].mcool [prefix].hic), or when -t is specified with 2, 4, 10, 15, or 20 threads. This is in the context of a Nextflow workflow.
The error is eliminated if I enforce that Nextflow only launch one conversion at a time. But if I permit it to launch two file conversions simultaneously (i.e. two independent instances of hictk convert using two different .mcool files as input), then the first one to finish ingesting pixels and start writing interaction blocks crashes with this error, leading to the entire workflow to crash.
Oddly, however, if I run more than one instance of hictk with no -t option specified on my local machine but using & after the command in order to have the command be non-blocking, then I am able to successfully launch multiple conversion processes simultaneously.
I'm really hoping to bundle hictk with my workflow, so I'm hoping this can be resolved! Thanks for your work, this is a needed tool.

I am glad to hear you've found hictk to be useful!
The error you are describing when running multiple instances of hictk convert in parallel on the same system could be a different issue.
Can you try to run hictk convert with --tmpdir=./tmp (so that each instance of hictk generates temporary files in its own Nextflow working dir)?
This is just to rule out the possibility that the issue is due to path collisions when generating random paths for the temporary files. This used to be an issue before hictk v1.0.0. However, https://github.com/paulsengroup/hictk/pull/152 should  be enough to make collisions of temporary file paths extremely rare (basically impossible without malicious intent).

Yeah I'm giving it a try now on -t 20 using a local PC with a .sh script that launches both conversions simultaneously into different tmp directories. I tried this with four conversions recently using default threads and no explicit tmp directory. Two conversions were launched at the same time by ending the command with & to make the command non-blocking, and two were launched sequentially by leaving the & out. The sequentially launched ones ran successfully, the simultaneous ones failed. So that does seem to fit your hypothesis about path collisions. I'll let you know how this goes.

Can confirm that running with -t 8 and two simultaneous processes with different explicitly specified tmpdir values results in a successful conversion.

I just merged the fix (the updated container images should be ready in 1-2h).
Feel free to re-open this ticket if the issue still persists on your end :)

@bskubi, just wanted to let you know that the bugfix for the issue you reported (as well as many other improvements) are not part of hictk v2.0.0  (changleog).


Fixes #1948 Crash on Go To Definition

Fixes #1948 Crash on Go To Definition
Checks for nulls and quietly ignores them (with an assert in debug builds)
Fixes #1466 F12 doesn't take me to definition of function but rather proposes a choice
Stops creating Definitions for from...import names.

👍


Display all voting validations

Briefly describe the bug.
Right now we display only Anyone can vote validation and passport validation, but we should display all validations coming from https://score.snapshot.org/api/validations (example basic validation is missing) we should only hide passport-weighted
How can we reproduce the bug?

Go to any space (example: https://snapshot.org/#/thanku.eth/settings) open voting validations
You will see "Anyone can vote" and "Gitcoin passport gated"

This is hardcoded somewhere, It should actually show all the validations coming from https://score.snapshot.org/api/validations
For example Basic validation is missing
(Note: "Anyone can vote" is not the same as "Basic" validation, we should have both)
We will add more validations to this list, so all of them should be visible on UI, (except passport-weighted)

Also from what I understood from @bonustrack validations should be exactly the same for proposal creation and voting, so it needs a change in UI for both :pray:

@zzuziak @bonustrack For "same" do you mean the same list of validations or the same interface?

@ChaituVR Same list

@bonustrack @ChaituVR @zzuziak

Also from what I understood from @bonustrack validations should be exactly the same for proposal creation and voting, so it needs a change in UI for both 🙏

This doesn't seem to be the case, as we are maintaining two separate list:

https://github.com/snapshot-labs/snapshot-strategies/tree/master/src/validations
https://github.com/snapshot-labs/snapshot.js/tree/master/src/validations

I think the plan was to unify them into one and have the same list of validations both for voting and proposals. Correct me if I'm wrong @bonustrack.
Let's try to clarify all topics on that which should be addressed in the PR :pray:

That's correct. We should remove validations from Snapshot.js and use Score API to resolve validations using snapshot-strategies repositories. This will make Snapshot.js lighter

@ChaituVR can you work on this? As you recently worked on vote validations you'd probably be the most familiar with it.

Okay so I will just work on the showing all Validation from the endpoint and @ChaituVR will create another issue for the merge. ❤

Created an issue here for all other steps https://github.com/snapshot-labs/snapshot/issues/3466


Increment TileDB-Vector-Search version to 0.0.20

Increment version of TileDB-Vector-Search to 0.0.20.
This PR still needs to wait until TileDB-Vector-Search is actually updated to this new version.

Also re-render might be in place

I found the problem! The commit to build TileDB-Py 0.25.0 with tiledb 2.19 failed only for the win-64 py39 job!

https://github.com/conda-forge/tiledb-py-feedstock/commit/4ff96c1c149e6cea6b456dd10f6b188941e3437e

And for a post-mortem, the strange solver error about the outdated lz4-c is because the solver was choosing a super old version of tiledb-py to install. I don't know why it is choosing this one, but the actual problem was that none was suitable.
I discovered this by installing an env on Windows using the specs I posted above. Then in that env I tried to install tiledb=2.19. The lz4-c 1.8.1 was in an attempt to install tiledb-py 0.3.1. Also note that the results are slightly confusing since it says that tiledb-py 0.25.0 needs to be installed with tiledb 2.18, but that is just an artifact of https://github.com/conda-forge/tiledb-py-feedstock/pull/191#issuecomment-1885658469, which we are in the process of cleaning up.
mamba env create --file vector-search.yaml
conda activate vector-search
mamba install --dry-run tiledb=2.19
## │  ├─ tiledb-py 0.3.1 would require
## │  │  └─ tiledb 1.4.* , which requires
## │  │     └─ lz4-c >=<IP_ADDRESS>,<<IP_ADDRESS>a0 , which requires
## │  │        └─ vc 14 , which does not exist (perhaps a missing channel);
## └─ tiledb 2.19**  is not installable because it conflicts with any installable versions previously reported.
mamba install --dry-run tiledb=2.19 tiledb-py=0.25
## Could not solve for environment specs
## The following packages are incompatible
## ├─ tiledb-py 0.25**  is installable with the potential options
## │  ├─ tiledb-py 0.25.0 would require
## │  │  └─ tiledb >=2.18.3,<2.19.0a0 , which can be installed;
## │  ├─ tiledb-py 0.25.0 would require
## │  │  └─ python >=3.10,<3.11.0a0 , which can be installed;
## │  ├─ tiledb-py 0.25.0 would require
## │  │  └─ python >=3.11,<3.12.0a0 , which can be installed;
## │  └─ tiledb-py 0.25.0 would require
## │     └─ python >=3.8,<3.9.0a0 , which can be installed;
## └─ tiledb 2.19**  is not installable because it conflicts with any installable versions previously reported.


capybara's click_link and syntax error

Hey
I have regular capybara test:
scenario "adding online voucher", js: true do
  visit "/admin"
  save_screenshot("~/Desktop/poltergeist.png", full: false)
  click_link "Vouchers"
  # ...

on click_link I get following error. The same test passes in rack test.
{"name"=>"set_debug", "args"=>[true]}                          | ETA:  --:--:--
{"response"=>true}
{"name"=>"visit", "args"=>["http://<IP_ADDRESS>:52496/?quick_login_in_tests=17278"]}
poltergeist [1367870935829] state default -> loading
poltergeist [1367870935908] state loading -> default
{"response"=>{"status"=>"success"}}
{"name"=>"visit", "args"=>["http://<IP_ADDRESS>:52496/admin"]}
poltergeist [1367870935909] state default -> loading
poltergeist [1367870940143] state loading -> default
{"response"=>{"status"=>"success"}}
{"name"=>"render", "args"=>["~/Desktop/poltergeist.png", false]}
{"response"=>true}
{"name"=>"find", "args"=>[:xpath, ".//a[./@href][(((./@id = 'Vouchers' or normalize-space(string(.)) = 'Vouchers') or ./@title = 'Vouchers') or .//img[./@alt = 'Vouchers'])]"]}
{"error"=>{"name"=>"Poltergeist.InvalidSelector", "args"=>[".//a[./@href][(((./@id = 'Vouchers' or normalize-space(string(.)) = 'Vouchers') or ./@title = 'Vouchers') or .//img[./@alt = 'Vouchers'])]"]}}
{"name"=>"reset", "args"=>[]}
{"response"=>true}
  1) Admin vouchers
  In order to increase interest in purchases
  As an admin
  I want to manage vouchers
 adding online voucher
     Failure/Error: click_link "Vouchers"
     Capybara::Poltergeist::InvalidSelector:
       The browser raised a syntax error while trying to evaluate the selector ".//a[./@href][(((./@id = 'Vouchers' or normalize-space(string(.)) = 'Vouchers') or ./@title = 'Vouchers') or .//img[./@alt = 'Vouchers'])]"

Closing due to age, and assuming that older versions of phantomjs were missing some xpath support - there are tests in the poltergeist test suite that call click_link and pass, so I'm assuming newer version of phantomjs have fixed the missing xpath support.  If anyone is having issues with invalid xpath please open a new issue and provide all details of versions used and if possible a minimal test case


Improve parameter handling

Enable autoescape in jinja
Fix all parsing handling as a result of enabling HTML escaping
Report TURN error as a warning instead of a status message.

Closing this in favor of a new PR #250


Random sampling problem

Hello, I have some problems when using seqkit random sampling. It may be because my file is too large. Please refer to your command for details: seqkit sample --threads 8 --rand-seed 91685 --number 2000000 --out-file ${BASE}.2M.fq $i
Is there any tool or script that can replace seqkit random sampling?

Dear huilin-al,
finally, it depends on your input data. Do you know the number of reads? Are the reads paired end reads? Do your require exactly 2 million reads(read pairs). Normally, the random sampling should not time critical, especially, if you only need to subsample one library.
Best,
Frank

Hello, I am also a simulated paired-end sequencing, mine is 3 million reads (read pairs). It is possible that the depth of my simulated gene is too high, resulting in a large input data. It took me two days to find a solution. Thank you very much!

Thus, your problem is solved?

Yes thank you very much！Another sampling tool I use


password issue

I try to log-in with my username on futuregateway several time, but I was unable to and I always get a response say 'Sorry, try again.'

Hi @trinitysege can you give us some more information please - which gateway are you using ?

I'm using sgw-dev.sci-gaia. eu
Hope it helps you understand?
On 16 Jan 2017 02:20, "Bruce Becker"<EMAIL_ADDRESS>wrote:
Hi @trinitysege https://github.com/trinitysege can you give us some more
information please - which gateway are you using ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sci-gaia/LagosHackfest/issues/57#issuecomment-272823225,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ART1WJzQRuEWrlepw96AQpcKzhrsp4eLks5rS0RtgaJpZM4Lj7pF
.

This issue was moved to http://discourse.sci-gaia.eu/t/password-issue/2450

hi @trinitysege Thanks for  the feedback.
As far as I know, the site with the dev services has been decommissioned after the Lagos hackfest. @mtorrisi  can give you more detailed info, I think. I'm going to close this issue for now, and move it to Discourse. We can continue the discussion there.

Okay
On 16 Jan 2017 02:41, "Bruce Becker"<EMAIL_ADDRESS>wrote:

hi @trinitysege https://github.com/trinitysege Thanks for the feedback.
As far as I know, the site with the dev services has been decommissioned
after the Lagos hackfest. @mtorrisi https://github.com/mtorrisi can
give you more detailed info, I think. I'm going to close this issue for
now, and move it to Discourse. We can continue the discussion there.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sci-gaia/LagosHackfest/issues/57#issuecomment-272827762,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ART1WDAs6E8iCTiJWRxiGmZm5jat1rw3ks5rS0lPgaJpZM4Lj7pF
.


Make TLS 1.3 support optional

All CI jobs fails because of requirement for TLS 1.3 support.

QUIC should be supported (automatically) only if specified SSL library supports TLS 1.3.
https://github.com/apache/trafficserver/pull/2342#issuecomment-321297249

TODO

Remove AC_ERROR from check for TLS 1.3 support
Define TS_USE_QUIC if TLS 1.3 is supported (like TS_USE_TLS_ALPN)
Include QUIC and HQ related sources to foo_a_SOURCES variable if TS_USE_QUIC is defined
Surround QUIC and HQ related lines with #ifdef

Probably we don't need --enable-quic configure option because we need to specify a server port (like server_ports 4433:quic) to accept QUIC connection even if QUIC related module was built-in.

Done. df6c99e3c0a86f512ed39764b580ae5acb878e70


Update label: "Load all consumption values (without optimization)" to "Show full chart resolution (1 point per minute)"

Fixed in commit ac003115d79b5e0e693bbc7dd10c62c5ed20c6b6


Make CoreTest mode useful and controllable

Add arguments to the coretest exe to individually test each of the scenarios

CoreTest with mock data
Web service and core service test
Socket test
Realdata test
If started without arguments, the default test should be realdata test.

Merged with master.


[WIP] Fixes

Comes with https://github.com/CounterpartyXCP/addrindexrs/pull/17

Will this fail gracefully if addrindexrs hasn't been updated?

now yes! see https://github.com/CounterpartyXCP/counterparty-core/pull/1515/commits/7786792872a631bf25868dce9d69f96f0c4a3bca

Good fix! Let's just also update the Release Notes

see https://github.com/CounterpartyXCP/counterparty-core/pull/1508/commits/3f2ac80652a7bc96401ace2142a87f96f3b8b955


Displays jpg in Rocket.Chat Windows app and download the file in standard browser

Hey Guys,
i am using the windows client 1.0.0 (beta1).
If i wanna download a file uploaded by a user to a room, the downloaded jpg displays correct in my rocket.chat application but it starts a file download in my standard browser, too.
My standard browser is chrome.
Greetings
TheReal

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/30419613-displays-jpg-in-rocket-chat-windows-app-and-download-the-file-in-standard-browser?utm_campaign=plugin&utm_content=tracker%2F19476668&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F19476668&utm_medium=issues&utm_source=github).

How do you start the image download? We don't have an option to download, at least, I can't see any option in OS X


Add send_slack_message() - 16

[Auto generated]
Number: [#16]

pyhelper-utils(DdfWA)[PR 16]: Closing issue for PR: Add send_slack_message().
PR was closed.


Schematics API, Closes #1142, #1137

Implemented in spongepowered/SpongeCommon#882 Closes #1142, #1137
This adds an api for creating ArchetypeVolumes which are copies of regions of the world and may be serialized to disk in one of two schematic formats (The MCEdit format here called the legacy format, and an updated format for better mod compatability).
An example plugin using this can be found In the cookbook.
The sponge schematic format specification draft can be found here. Once this is merged that specification will become version 1.
The gist of the usage is
// copying
ArchetypeVolume volume = player.getWorld().createArchetypeVolume(min, max, player.getLocation().getPosition().toInt());

// pasting
volume.apply(player.getLocation(), BlockChangeFlag.ALL, Cause.of(NamedCause.of("plugin", this.plugin), NamedCause.source(player)));

// saving
Schematic schematic = Schematic.builder().volume(data.getClipboard()).metaValue(Schematic.METADATA_AUTHOR, player.getName()).metaValue(Schematic.METADATA_NAME, name).paletteType(PaletteTypes.LOCAL).build();
schematicData = DataTranslators.SCHEMATIC.translate(schematic);
DataFormats.NBT.writeTo(new GZIPOutputStream(new FileOutputStream(outputFile)), schematicData);

I'm guessing that EntityArchetypes were removed from Schematics as the implementation was a bit of a pain for the time being?

Will a standalone implementation be created for things like WorldEdit (for Forge) to depend upon?

@ZephireNZ Yeah and they've traditionally never been included and I wasn't happy with how I was allowing the plugin to specify if they were included in the archetype volumes or not. Needs some more thought basically and it can be added later pretty easily.
@kenzierocks I could write a one file library based on flow-nbt or jnbt that people could include but its pretty simple to implement. SpongeCommon's specific impl isn't very useful for people because it depends on our DataContainers.

Also, I added this to my PR, but really it should be here:
From EntityArchetype (can probably be added to BlockArchetype too)
    /**
     * Creates a new {@link EntityArchetype} with the specified {@link EntityType}.
     * @param type Type of the entity
     * @return An archetype of the given entity type
     */
    static EntityArchetype of(EntityType type) {
        return builder().type(type).build();
    }


fix: flat memory implementation stores byte in wrong locations

As far as I can know, slice_ptr should start from addr.

Thanks!


How can I get the SDK templates in VS?

In the beginning of the tutorial you have CRM SDK Templates in the projects, where can I install these from? I've found some vsix file but it's for VS 2015 and not the required VS 2017
/Rickard

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e62e76f4-65f7-052a-79cb-d6381c7424f2
Version Independent ID: 462fa6bc-8277-9b09-3516-52bdce21f8d3
Content: Use the XRM tooling common login control in your client applications (Common Data Service) - PowerApps
Content Source: powerapps-docs/developer/common-data-service/xrm-tooling/use-xrm-tooling-common-login-control-client-applications.md
Service: powerapps
GitHub Login: @MattB-msft
Microsoft Alias: nabuthuk

@RickardNo Here is the link to download the template https://marketplace.visualstudio.com/items?itemName=DynamicsCRMPG.MicrosoftDynamicsCRMSDKTemplates. It should work with VS 2017 version too. But there is no newer version released version after this.

@RickardNo Thanks for contacting us. As we haven’t heard back from you, I am closing this issue. If you need further help, please reopen the issue or open a new issue.


Optimize the Raspberry Pi boot times

Current boot time is 60s, the goal is 10s, however this can be reduced up to 2s.
This can be done in multiple stages:

Optimizing the Raspberry Pi OS Lite image
Creating a custom image via Buildroot or Yocto
Optimize the custom image + kernel
Optimizing the firmware

This line from the "optimize script" seems to break the ability to use the ALT key: https://github.com/beeper/beepberry/blob/6f5fbbbee8f2d785092dc2861c418d496b4a4025/raspberrypi/optimize_boot.sh#L25

meybe decrease memory speed and turn off one usb


Working with Github Pull Requests

... inspired by #702 here are two ideas and one non-idea for improving the workflow for Github Pull Requests: marking the intention of a PR, marking the person responsible for merging, and (non-idea) marking the next step needed for the PR.
PR intent
In theory a Pull Request has a clear intent: please pull the changes from my branch onto the target branch. In practice though we use (misuse?) PRs to the master branch as a general way to get attention on code e.g. for "Here is something that I am working on" or "Here is a really rough idea". Problems arise when the intent of a PR is misunderstood, particularly this can lead to branches being merged too early (oh, I thought that was finished) or too late (or, I thought that was still a work in progress).
The idea of solving this is to use textual tags at the start of the PR title:

[sketch] marks a throw-away branch for exploring an idea. This branch is never to be merged. If the idea pans out then it will be developed properly on a new branch with a separate PR. Code review will focus on the idea.
[wip] marks a work-in-progress branch. This branch is intended to be developed to completion without any rebasing, and you can merge it if you want to, but it is probably not working yet. Code review will focus on the design.
If there is no tag then it means the author wants the changes to be merged into other branches. Code review will focus on any barriers to merging.

The reason to choose textual tags in the title, rather than Labels, is to avoid the whole Github permissions thing i.e. use a field that the PR creator always controls.
If you think a PR is mislabeled then you can ask the creator to consider renaming it.
Responsible maintainer
For each PR it should be clear who (if anybody) is responsible for bringing this upstream. We can all merge PR branches into our own branches but it should always be clear what is the "next hop" towards the master branch. The choice of next hop depends on the subject matter of the PR i.e. who is the responsible maintainer for this kind of change.
The idea is that each PR will be assigned to a specific "topic" by a maintainer. For each topic there will be an entry in branches.md saying what is the next-hop branch and who maintains that.
The topics could be (looking slightly ahead of current practice):

next for collections of reviewed/accepted changes that should go into the next release.
intel for changes to device drivers for Intel cards.
doc for documentation changes.
ports for portability targeting new platforms.
general for changes that don't match a more specific topic.

Once the topic is assigned then contributors will know what to expect next. If a PR is marked general then branches.md will tell you the next step is for @eugeneia to merge it onto max-next. If a PR is marked ports then branches.md will tell you the next step is for somebody to volunteer to maintain a portability branch i.e. there is no upstream step available yet.
I am especially keen on the capability to flag changes as belonging to a topic that is not currently maintained. This would allow us to neatly collect changes for such topics until a maintainer steps forwards. For example POSIX-compliance changes like #723 (and many before) could be neatly collected until such time as somebody decides to maintain a branch for that topic.
The idea to use labels is that they are clearly visible and easy for maintainers to assign. I suppose that the "target branch" of the Pull Request would be more appropriate but I am not sure how easy that is to change or how likely people are to make the right choice when creating their PR.
next step
It would also seem nice if the next step for a PR were immediately apparent e.g. is the submitter waiting on the reviewer or vice-versa. I don't have a simple idea for solving this though. Perhaps a convention that people try to be clear in discussions on exactly what they expect from the other party e.g. saying things like "I have addressed all the review comments above and now I am waiting for merge."

Sorry to write this idea up with so many words!

Thanks for this!  More consideration of the intent of a PR sounds good.  Since a PR is the only good way in Github to talk about a potential change to code, I don't think using them for sketches or WIP work is mis-use in any way.  It does sound like explicitly tagging a PR with an intent can help the reviewer know what is being asked of them.  I suppose it's possible for a PR to change intents as it goes, so what is being asked of the reviewer can change too.
To change the target branch of a PR, you have to close it and create a new one.  To me I don't think it is unreasonable to ask the submitter to choose the target branch appropriately, nor is it unreasonable for a reviewer to see a change and say "this looks more appropriate for XXX branch, would you mind closing this one and creating a new PR for that branch, see foo.md".  That would avoid to have to have the concept of topics reified anywhere :)
One more concrete question: Is the intention for all commits to go through max-next?  I have been making my PRs against next.  I'm happy to change, though I wonder if we're not putting too much of a burden on @eugeneia to have to be the sole reviewer for all things Snabb.

One more concrete question: Is the intention for all commits to go through max-next? I have been making my PRs against next. I'm happy to change, though I wonder if we're not putting too much of a burden on @eugeneia to have to be the sole reviewer for all things Snabb.

We are bootstrapping a graph/tree structure for merges (like the Linux kernel has).

Target branch has one responsible person who reviews/tweaks/merges changes and then sends them in a new PR to the next hop upstream (e.g. next).
The graph scales up by adding more nodes i.e. branches that are being maintained by somebody. These could be leaf nodes (where new PRs are sent directly) or internal nodes (like next that exists to combine downstream nodes).

Here is a picture of how this could look in practice one day:

In that case new PRs are entering the flow on the right-hand side and flowing with the current towards the master branch.
However, we are not there yet and we need help from people who will volunteer to maintain such a branch!
Last year we had:
master <- next

i.e. just me deciding what to merge and when. This kind-of worked before my second child was born :) and then I became overloaded and releases did not flow so smoothly.
The struct as of this month is:
master <- next <- max-next

which is one step forwards. On the one hand the same bottleneck exists (but it's Max instead of me) but on the other hand there are two of us approving all of the changes now and that will hopefully decrease the work we each do (we'll see...)
However: we really do need more maintainers who are willing to have changes on a particular topic PR'd to them that they will review/merge and then push onwards to the next hop (e.g. next or max-next).
Help wanted :-)

... well another nice aspect of having both next and max-next is that allows the graph to grow in more ways i.e. somebody could agree with me to push changes to next or they could agree with Max to push changes to max-next. And once those agreements are made then it can continue to grow with people individually making these arrangements.
This is my understanding of how the kernel (and also e.g. QEMU) scales its development.

Regarding PR target branch: Currently I would recommend always targeting master because it reflects what the CI is doing (it will try to merge with master and test the result). Resolving merge conflicts when merging into a release candidate branch like  max-next is the responsibility of that respective branch's maintainer.

@eugeneia @wingo re "targetting" there are two independent issues:

Which branch do you base your work on. This should be master if possible i.e. a stable common ancestor of all other up-to-date branches.
Which branch you send your Pull Request to. This seems more social than technical i.e. signals who you are asking to review and merge your changes (which are based on master, not that person's own branch, except when exceptions are needed).

I don't understand the testing story with master and next; thank you for bearing with my ignorance :)  For example, in V8 there is no "next" branch.  Everything is done on master, and sometimes things branch off for release.  Before the release, master could be frozen, to allow for more extensive testing.  If I make a change, I make it against the latest code, and I test it before and after.  I validate it and the bots validate it and if it's reviewed it can go in.  If later it turns out to not be a good change it's reverted.  All browser engines that I've worked on work this way.
OK, so that's not our model: fine.  However I don't really get the testing story for us.  If changes accumulate in these big buffers like max-next, how can I ever hope either (a) to test the code on my own against the proper corresponding tip-of-tree if I base the PR on master, or (b) know that when merged that my code would have a particular effect or not?  I especially wouldn't want the person doing the merge to have to fix things up, because they might make a mistake.  I would prefer them to reject the merge in that case!

Basically I get that this branching structure reduces the burden on you, @lukego, and I really respect that :)  I also like that releases from master roll out every month in a really regular way, and I think @eugeneia is doing some great reviewing and release management there.  So as a user of the main snabb trees things are great.  When I try to contribute though I see more and more barriers.  I don't know how to test my changes to make sure they are correct, and now it seems we have serialized the review process through first {Max then you, topic branch then next}, instead of parallelizing.  Dunno.  I am happy to maintain a topic branch but I don't see how my work would avoid conflicting with Max's -- if Max has ownership on all core/ and lib/ changes and also core apps, well, there's nothing else besides specialized apps, right?

Great pointed questions, @wingo!

@wingo some responses. and note that I am learning as we go along i.e. we are incrementally adopting practices from the Linux kernel workflow as we need them to scale up.
Thoughts:
The "where the next release is being debugged" branch is next. Changes should land here quickly for testing and integration with each other. That has not been the case recently and this is the acute problem we need to fix now.
For many people I think it makes life easier to be able to base their changes on the master branch (a stable base) and have somebody else worry about merging it with other changes happening in parallel. That's why I recommend it as the default behaviour for people adding features.
I believe Linus also asks people not to pull the tip of his tree into their development branches and to prefer building on a stable release tag. The master branch serves this role for Snabb i.e. you can assume that whatever you pull from master is the latest release that is recommended as the basis for new work.

now it seems we have serialized the review process through first {Max then you, topic branch then next}, instead of parallelizing

I see this as N-way parallelism where N=2 and one node is reserved for coordination :-). I would like to solve this by increasing N i.e. having more maintainers.
I also hope that we have pipelined the merge process already. Max is reviewing/merging changes more quickly than I did, which is fantastic, and I still get an editorial voice on "Snabbyness", which I think is important at this stage of the project's evolution. So I hope that the max-next -> next -> master workflow will mean changes moving forward more smoothly than last year. However, there is a learning curve now to adjust to the new workflow of dealing with changes in batches.
I do think that this works well once the working habits are established. In the Linux kernel community it seems like most of the time when somebody says "Please pull these 20 new features from my new-networking-features branch" the reply is "Applied, thanks." The other cases where discussion is needed are the ones where people are getting into sync on their communication styles / expectations / etc.

I am happy to maintain a topic branch

This would be awesome!
So now we are three volunteer maintainers: @lukego, @eugeneia, @wingo (and maybe somebody else will raise their hand).

but I don't see how my work would avoid conflicting with Max's

The basic solution I see is sharding i.e. quickly assigning each incoming PR to one maintainer who will be the immediate "upstream". (Then we also need a default upstream for PRs that don't match somebody specific: that used to be me but now it's Max.)
The kernel resolves this by having the MAINTAINERS file that divides up the source tree into subsystems with their own maintainers. Changes to a subsystem are sent to the subsystem maintainer, who is the best qualified person to evaluate and merge it, and they then send it upstream to their next hop. (The kernel seems to have around a thousand such subsystems defined.)
This could work for us too? i.e. to define an unambiguous dispatching procedure to decide who of us will be upstream for an incoming PR and then have that person review/merge it and send it onwards?
I would be happy for my next branch to be the upstream for both max-next and wingo-branch-that-is-yet-to-be-named. I think that will keep me more than occupied and I would prefer not to be direct upstream for incoming PRs. (I will still check them out and comment on them, like everybody else in the community is welcome to, but I'd prefer for changes to pass through a subsystem maintainer hop before I merge them.)

Here is the list of all pull requests. I wonder what would be a useful way to start slicing them into separate topics?
One idea: new features, extensions to existing features, bug fixes.
I'd really like to have a "safe bug fixes only" branch being maintained. This would have extra advantages:

Could be merged directly onto master (bypassing next) to ship bugfix releases like 2016.01.1.
Could be browsed and cherry-picked by people maintaining long running branches that don't sync so closely with master e.g. LTS release of a Snabb based application.

@wingo one more point in this diatribe :-)

I don't know how to test my changes to make sure they are correct

This is the job of CI. PRs can include unit tests, functional tests, and performance tests. These are all automatically checked for regressions on every hop from branch to branch.

Yeah I've been trying to type something into this box for a while :)  Instead, some thoughts.  (1) Good that we recognize the current high patch buffering as a problem.  What, for you @lukego, is the right rate at which things land in next?  If I maintained a topic branch I would want to merge to next as often as possible -- if I see something as good for my branch, for me it would be fine for next too.  If I didn't think it was good enough for next I wouldn't land it in mine, and particularly I would want to ask @eugeneia or you for feedback on things I'm not clear on.  If I took on this role for some part of Snabb there would be a lot of this in the beginning, as I cultivate my inner snabbiness :)
Put a different way: I would always want to be opening merge requests for my topic branch to -next.  I guess I'd make new branches every time I want to do this?  I suppose that would be OK.  If I added some additional commits to wingo-next I'd just make a new branch and PR and close the old one?

One thing I like about V8 and related projects is that you explicitly list reviewers.  There they have the concept of owners and you need a LGTM from an owner to land a change, but there are a number of owners for a given piece of code, and you can also ask non-owners for additional review.  I would like it if in Snabb we cultivated a culture of reaching out to particular people for review; it helps grow the set of people who are able to do review.  I'm not sure how to fit that in with a culture of single owners, though.
I'm open to going ahead with this branch plan but I would like to note some skepticism for there being just one path of people that any particular patch can take to get into mainline.

I think a "safe bug fixes" branch is probably orthogonal to topic branches -- though how would a safe bug fix flow?  First to master, never to next?  First to master, next merges in master sometimes?  First to next, then to safe bug fixes via a separate merge?  Unclear to me.  But OK, we can figure out something :)
I am also not sure that such a conceptual distinction as "new features" vs "extensions" is a good way to partition PRs.  If anything, I would want the domain expert of an area to review both a feature and any change to it.
Right now @eugeneia owns the whole tree, and that's great :)  He's a great reviewer and experienced snabb hacker.  I don't want to suggest taking away any of that from him!  But yet, that seems to be what you are proposing @lukego, and so I don't really know how to proceed.  Please excuse again my ignorance; I am much more used to models of shared ownership :)

I wouldn't talk about code ownership when referring to our current workflow. E.g. Luke and I currently both feel responsible for reviewing all PRs (and a lot of people help us independently), and who takes the “lead” on the feedback of a PR is generally decided on a “first come first serve” basis. E.g. if I see a PR where Luke is already involved deeply I trust his judgement and only check for maintenance related issues (documentation, ...).
Generally speaking, I like that everyone involved in Snabb Switch seems to actively do code review. There are few if any PRs where I am the sole reviewer. I would probably be helplessly overloaded if this were not the case.
From my observation we have a rather democratic structure with a flat hierarchy. I don't “own” any code, instead I usually just moderate. When I am having doubts about a patch I voice it and usually ask for other alternative opinions, so in a way we have lots of tiny polls here and there in which the people who care about a given patch find consensus.

Hmm!  I guess I don't know what to say.  To me if I don't have either they ability to tell someone "LGTM, go ahead and merge it" or "LGTM, I will merge it", I don't have ownership -- I can have input or whatever but it's not the same and I don't get involved in the same way, and actually I step away because I don't want to give conflicting input, unless I feel strongly about the thing.  The PR about the "match" app was such a case -- I realized I didn't own the thing and that by making any feedback I was just muddying the issue, even before the PR had any other comments :)
More concretely... if we were to be dividing up PRs in some way that reflects the content of the PR and not who decides to take it first / feels they would be fine reviewing it, to me that's dividing up ownership, isn't it?  Dunno.  I certainly wouldn't want to get into a conflict about whether my branch is or isn't an appropriate way for a patch to enter the mainline :-P

The idea is to build a robust distributed workflow, like the internet. Each of us will be like a router that takes a packet (feature branch), checks it according to our own local rules/ACLs/etc (review), and forwards it to the appropriate next-hop (pull request).
If a router is overloaded or misconfigured or misbehaving then we work out a solution and workaround. Some sites may not be connected due to lack of peering agreements (e.g. master and partial-port-to-platform-foo) but this will improve over time.
The result should be a large system that behaves well in the presence of errors of all kinds.

@wingo Could be that we can avoid the feeling of artificial ownership in some ways...
I believe that Rust have a system of randomly assigning PRs to upstream reviewers. There's also the @mentionsbots that automatically links in other reviews.
However could just be that the term "owner" is a misnomer here. Really we are talking a person who "does the review process" including reaching out to people whose feedback is important, making sure there is enough (but not too much) time for comments from the community, etc. The usual open source maintenance work.
"Ownership" could also be reduced by dispatching on something other than filename e.g. fix vs. enhancement vs new feature.

@wingo @eugeneia one last thought for the day:
We could also steal an idea from the Rust community and have SnabbBot randomly assign a reviewer from a pool when a PR is submitted to the master branch. This would avoid the ownership issues and make it easy to become a reviewer. This could increase reviewer diversity, both in having more people doing reviews and also having each person reviewing more of the code base. I definitely agree with @wingo that we want to be as inclusive as possible and draw more people into the maintenance process.
If reviewers are newbies then their next hop could be to a more experience maintainer who can help them out.
This also fits the internet/router analogy :-). It's like ECMP (Equal Cost Multi-Path) where a router has multiple equally good next-hops and it spreads the load across them.

I like this last idea.  Say, a reviewer will be randomly assigned for new tickets if no one is @-tagged in the PR description.  They can be assigned by @-mention or by the assignee field; either way.  Of course an assignee can pass the buck to someone they feel is more appropriate.  I would be happy to maintain such a branch.
I really do lament taking up your time on these procedural things.  Hopefully it will pay off :)

I really do lament taking up your time on these procedural things.

@wingo Not at all! Thank you for engaging in this discussion. We need to bootstrap a network of maintainers who work well together and know what to expect of each other.
Last month there was one upstream (@lukego), now there are two (@lukego and @eugeneia), and likely there will need to be 5-10 before it is obvious to everybody how the whole system works.

I like this last idea. Say, a reviewer will be randomly assigned for new tickets if no one is @-tagged in the PR description. They can be assigned by @-mention or by the assignee field; either way. Of course an assignee can pass the buck to someone they feel is more appropriate. I would be happy to maintain such a branch.

I like this idea too. If you want to create a branch and maintain it in this way then I think that would be cool (and would volunteer to be a reviewer :)). This should be no problem given our decentralized workflow with independent branches maintained in their own ways. The only question would be how to route changes in and out of that branch. We could start small and then grow.
The more I think about it the more I see that we are building a network like the internet.
Adding a branch is like adding a router. Making a branch feed into another branch is like running a cable between two routers. Deciding how changes should flow between branches is routing. Deciding exactly how to perform review is like deciding how to engineer one of the routers (which is a black box to most people).

know that when merged that my code would have a particular effect or not? I especially wouldn't want the person doing the merge to have to fix things up, because they might make a mistake. I would prefer them to reject the merge in that case!

Let me paint a picture of how I see this working in the Linux world...
Suppose that I am shipping a networking product based on my own branch of the Linux kernel. I decide to optimize the Intel device driver by changing the descriptor prefetch options (like #628). I test this change with my product and ship it. I also send the change to be reviewed and merged upstream:

I send a PR to the intel-driver branch. This is reviewed by one or more people who are familiar with this specific hardware. They may find a very specific bug e.g. relevant errata that I had overlooked. With luck they accept the change into their branch and take responsibility for pushing it upstream. Now my job is done: other people (kernel subsystem maintainers) will take it from here.
The intel-driver branch is PR'd to the broader ethernet-drivers branch. The maintainer here may spot something relevant: should other branches consider making this change too e.g. for Mellanox and Broadcom NICs?
The ethernet-drivers branch is PR'd to the networking branch. The maintainer here may spot something too: maybe I am making an unsafe assumption about how much memory I can allocate for my descriptors and more checking is needed.
The networking branch is PR'd to the master (Linus) branch. Linus may spot something e.g. that the change is likely only to be beneficial on a subset of the CPU architectures that this card is available for and that more testing may be needed before globally changing the default behavior.
Linus merges the code onto his branch and then it will propagate to the rest of the world: Redhat, Debian, Ubuntu, etc.

This workflow seems reasonable to me. I see value in having a chain of people who specialize in one kind of review. I see each maintainer in the chaing adding value. If I had the option to bypass this chain and push my patch directly into Linus's tree I would not choose to do that instead.
One important aspect here is that I already shipped my product long before the change landed on the master branch. I also only really cared about the feedback from the first hop i.e. the NIC expert who tells me whether I have overlooked some crucial detail. Ideally I want that interaction to be fast. Beyond that I am interesting with upstream for the purpose of "eventual consistency" i.e. to minimize the changes that I have to maintain on my long-running product branch.
If I were actually dependent on the feature to be merged by Linus before my customers could use it then I would be pretty frustrated -- but that is not the model. (Other people do have this problem though e.g. NIC hardware vendors who have to push drivers upstream into Linux before the hardware is debugged so that users will have a driver installed when they purchase the cards. I don't envy them.)
Hey, reflection, we could talk about this much more concretely in terms of the branch that you Igalians are already maintaining i.e. lwaftr. This branch has a well-defined purpose (developing the snabb-lwaftr program) and a smooth workflow where PRs are being created, reviewed, merged. This branch does effectively have ownership of that application i.e. this is the branch you would send a PR to extend snabb-lwaftr and this is the only branch that people would want to pull snabb-lwaftr from. The only thing missing is connectivity: there is no uplink to send changes from this branch out into the world and towards master.
How about "connecting this up to the network" and sending Pull Requests to some suitable place like next or max-next?

A clarification!  You note in https://github.com/lukego/blog/issues/14 that V8 does not do merge commits: it always rebases.  Same for Firefox and Safari, FWIW.  When you go to land a patch, the bot that handles it will rebase onto the tip-of-tree.  In https://github.com/SnabbCo/snabbswitch/issues/725#issuecomment-174184755 I expressed some concern about testing and you rightly said that CI is important here.  However there are some problems which you can only detect after the fact: increased flakiness after commit X, a performance decrease after commit Y that needed manual inspection or which only occurs on platform Z, etc.
Adopting a merge-based development pattern doesn't necessarily tank this metrics-based post-commit QA approach, but it can be really negative if the branches buffer lots of commits.  If I see that before merge X, things were 10% better in some way, but merge X pulled in some important patches, what do we do?  Following metrics across multiple branch heads is hard on the brain, so I assume we'd only have good metrics on master.  We wouldn't know before the merge that the merge had bad perf news....  Dunno.  We can make it work :)  But it sure would be nice if in Snabb we would be able to say "Commit XYZ slowed us down / introduced flakiness / etc.  Please back it out."

@wingo Yes, we will need to deal with all of these things. I think that we should pay close attention to how the Linux kernel handles them because that is the model for the Snabb git workflow. This will be a continuous process as the Snabb universe expands and our maintenance processes need to keep up with expanding activity across more products/branches.
Please also remember that it is always frustrating to switch between tools and to find that the way you are used to solving a problem doesn't work anymore. The first impression of everybody adopting a new workflow is going to be "well, this sucks" and this in itself doesn't tell us much about how well it will work over the long term :).
(Same way I am now cursing Nix/NixOS every time I struggle to do something that I usually do with apt-get or ./configure && make install but now requires a different approach.)

Yes, I didn't mean to be too negative :)  However I think we probably need to look beyond the kernel when it comes to post-commit monitoring of the performance or stability impacts of changes.  My impression is that the kernel has pretty good patch review but terrible QA.

@wingo commenting on the specific example you mention: git revert is useful here. This backs out a change by applying an inverse patch. The merge commits can actually help here: when reverting you can decide on the granularity of the revert (just one commit? or the whole feature-branch merge that introduced it into the code? or one of the parent merges that propagated the change?)
This is messy to be sure but it is doable.
For example here is a case where I temporarily reverted a premature upgrade of pflua that revealed a bug in LuaJIT: https://github.com/lukego/snabbswitch/commit/9f5f1ad5cd9d45c9676ea7405f8c2eeaecb0ba36. Once LuaJIT fixed the bug and we pulled that into our repo I restored the pflua upgrade by reverting the revert: e7c8d6d1baccc1be7f6966e98d0b1a3f16e683c9.

@wingo QA and release engineering is a really interesting open topic btw.
I have a couple of different models in my head for how it could work:
Central: Snabb Switch is distributed as one snabb binary that includes all applications: packetblaster, lwaftr, nfv, alx, etc. These are all released at the same time e.g. monthly. The developers of these applications work very closely together to ensure that a new release never ships with changes that break one of the applications.
Distributed: Snabb Switch is distributed as separate binaries (snabb-nfv, snabb-lwaftr, snabb-alx, etc) that are each built from their own branch and according to their own QA processes and release schedules. The master branch exists to help application developers cooperate i.e. to synchronize their source trees and run standardized tests.
The second option seems appealing to me i.e. that each application developer is responsible for the QA and release schedule of their software, and has veto of every change that they will ship, but that we all benefit from keeping development focused on the master branch because 90% of our interests are in common. In the simplest case there would be no changes on the application branch compared with master but the owner would still decide when to make a release, what to call the release, and what QA to do beyond the upstream CI.
This workflow could also give application developers flexibility e.g. if Alex wanted to ship an ARM port of his VPLS application before other people were comfortable with merging that architecture support onto their own branches.
I am not sure how this plays out in the kernel world. I have the feeling that people don't generally consider Linus's releases to be ready for installation. I assume that people shipping products downstream (e.g. Google with Android) are doing additional QA and engaging with upstream on any problems that they find. (I am out of touch... I remember that in the old days Redhat maintained their own kernel tree and often rejected changes that Linus had accepted but maybe nowadays they are so involved in upstream that they just ship that. I'll have to have lunch with a kernel hacker some time soon to ask about how this all works nowadays.)

@wingo Tangentially...
I have found it fascinating to participate in the OpenStack upstream community for a couple of years. They use a very high-tech centralized workflow, based on Gerrit and so on, and this has become a train-wreck at scale.
The main problem I have seen in the OpenStack world is that there are many different special interest groups inside the community who are all standing on each others' toes. There is also a lot of politics (literally elections for each subsystem) and the outcome of this politicking decides who is able to ship a product to their customers.
For example in the time I was working upstream I had open hostility from the gatekeepers because I was associated with an unpopular interest group (telco) who were being pushed out by the people in charge (enterprise). If I have any problem the answer is always "my god, you telco people, you just don't understand open source, I already wasted the whole of last week talking with big telco vendors".
The general situation was that telco-motivated changes could not be merged anywhere because they were not welcome on the master branch and... no other branches exist because it is a centralized workflow. You can't even git merge the feature branches because Gerrit requires them to be constantly rebased against master while they sit in review-limbo. So there was no meaningful cooperation between any of the people with a mutual interest in working on telco because the workflow does not allow them to collectively drift out of sync for a year or two to develop their ideas and then rejoin the mainline.
I believe there was a similar situation in the Linux world with Android.  The Android people put a lot of resources into development but they were very firmly focused on getting a product to market to compete with iOS.  However, it all worked out: they drifted out of sync, shipped a competitive product, and then once they were successful they put in the work to reconcile their changes with upstream and make everybody happy.
There is a related situation in the Snabb world now on a small scale. People are sending portability patches and I am declining to upstream them onto the master branch. However, I see the workflow supporting this in the same style as with Android: people who want portability can develop that on a branch, doing whatever makes sense for their immediate objectives, and then after the port is working well we can figure out how to sync it with master and other branches. This way nobody is blocking anybody else and we are all operating asynchronously.


IPNS Pinning - IPNS watching/listening/following

Create endpoint that accepts a IPNS Path ("/ipns/k51...") and resolves it. This function should return the data that was resolved as confirmation. (think gateway.ipfs.io/ipfs/Qm....)
Expectations:
This will take a while to resolve, for example: if you publish anything to IPNS, then try to go to gateway.ipfs.io/ipns/<k51...>. It will not resolve it, and may not ever resolve it. One way to mitigate this would be to enable IPNSPubSub. As I understand it, that would enable quick discovery, but will auto download everything published to IPNS by anyone as well. This would obviously not be the best solution because then storage would fill up extremely quick and be costly (thinking about web2 cloud storage costs).
For the purposes of putting a name of this functionality I will call it IPNS Following (giving credit to Jorropo where I first saw it being mentioned here discuss.ipfs.io.
Theoretically, the functionality should be as follows:

User notifies us of a record they want tracked for updates (pinning)
User updates their record and keeps it alive on their own accord. We just watch for updates and download content. No need for them to send us their key
We keep updating our own record until user says otherwise (opportunity for financial model)

Spit balling solutions:

Custom DHT? Holds only IPNS records?
Web3.Storage IPNS solution for storage (charge user fee + storage cost in FIL)  :eyes::eyes:
Create API Skynet style, any user can be a host and get paid in token for it? Enable via layer 2 smart contracts?
enable pubsub (NOT IPNS PubSub) and if I see an IPNS path on a topic, I will resolve content, this will make sure I don't download EVERYTHING that gets published to IPNS (need more information on IPNS PubSub experimental feature)
Traditional DB on backend (user IPNS key -> content) {also eeww}

The easiest way to resolve and follow IPNS records is if they were to be originally published by the API, then user can take their key and publish later on on their own OR optionally choose for us to keep alive for them. (IPNS Republishing)

Okay first implemented here: #18

One idea for keeping track of only specific IPNS records to be tracked is. Whenever someone hits the "Follow(<IPNS_Path>)" endpoint that IPNS name will be added to a queue. The record at HEAD, once resolved, will move to the end of the list. And this will happen indefinitely until user says otherwise or 't' amount of time has passed or content has come back unresolved x times. This will can be a go-script running at all times.

I need to add delete support for the queue. but basic IPNS following has been implemented here https://github.com/mrodriguez3313/IPNSGoServer/pull/20

Basic delete support added here https://github.com/mrodriguez3313/IPNSGoServer/pull/22


support mutil domain

test passed. please merge.

support mutil domain

Merged.

Thanks for your contribution.


[Request] Converting all pop-ups into notifications in the sidebar

Hello,
is it possible to convert all pop-ups, including the civic/tech and boost pop-ups,, to a simple notification in the sidebar? Like when you found a village: The typical sound accurs (in this case the sound of civic/tech completion etc.), notifies you and an icon apears on the right sidebar. That's it. No pop-up, no voice, no quotes etc.. Simply: "Your civic/tech xy get a boost/is completed", when I click/hover the icon in the sidebar. It could even be possible that the icon in the sidebar appeas and only when you click on it the pop-up appears.
Reason is that I find all pop-ups really annoying. Unfortunatly the mod leaves the boost (Eureka/Inspiration) pop-ups. But you cannot simply remove it because than you lack accuring information. But in similar games they use the sidebar for the notifications and not an annoying pop-up-spam.
Secondly, is there a possibility to remove the wonder-completion and wonder-found screen? As example: When I find a wonder, I also only want the icon in the sidebar and this glowing effect/sound but not this screen appearing, centering the camera and interrupting the game flow. Same with the wonder-completion movie: The wonder should be completed like a district: It is there when it is complete. Nothing more.  No movie, no quote.
Thank you and regards.

IIRC the notification system is actually comparatively a lot tougher to monkey with compared to the gossip/status system, which is why we've mostly been using that. Ideally this doesn't remain a mystery forever and we can offer an option like this, but for now I can't promise much!

Thank you. Understandable. I would see it as final improvement. But it would be cool if you could implement a function to block the boost-pop-ups as well and ban the gossips to the diplomatic screen, so that at least all annoying pop-ups are gone so far.

@chaorace Hellblazer created notification log mod in his HB UI. You can look into that if you want.

Probably a long-term goal for the implementation of #514


Bump version to 0.12

The Frigate 0.12 release is out for a while now, would be great to bump this repo as well!

See https://github.com/weltenwort/frigate-synology-dsm7/discussions/95.

Thanks!


fix "Cannot find module './obj2B3dm'" error on Linux operating system

fix "Cannot find module './obj2B3dm'" error on Linux operating system

Thank you!


Fix tests to run against Django master branch

Semantics of TransactionTestCase changed after Django commit:
https://github.com/django/django/commit/b3b1d3d45fc066367f4fcacf0b06f72fcd00a9c6
Use TestCase instead which also runs tests inside a transaction.

Codecov Report

Merging #555 into master will decrease coverage by 0.19%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master     #555     +/-   ##
=========================================
- Coverage   87.81%   87.62%   -0.2%
=========================================
  Files           5        5
  Lines         509      509
  Branches       85       85
=========================================
- Hits          447      446      -1
- Misses         49       50      +1
  Partials       13       13

Impacted Files
Coverage Δ

taggit/managers.py
89.41% <0%> (-0.27%)
:arrow_down:

Continue to review full report at Codecov.

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


Take a look at fleshing out the calls for write API and testing

Feature Request
Desired behaviour
Ensure all endpoints are hooked up and behaving properly, the API should continue to pass validation https://github.com/ga4gh/tool-registry-validator , and make the service more robust.
This last task will require adding the DropWizard @UnitOfWork annotation, seeing how it integrates with JDBI, and being more defensive when communicating with GitHub and Quay.io's APIs.
Take inspiration from http://docs.aws.amazon.com/general/latest/gr/api-retries.html

Don't think we're going down this route in the near future


Add a Photo to the VP VC credential

As a Holder, I want to see my photo associated with my BC Digital ID, so that I have a more personal connection to the credential
The Photo is a non-shareable attribute
The photo ID is not meant to be used as a valid photo ID

Are you thinking it'd be the photo from the person's BC Services Card (if their card has a photo) or just a photo that someone takes?

It should be a photo (if available) from their BC Services Card.

Closed because this is a duplicate ticket to this ticket #574


Update Readme

Use Git with HTTPS for cloning repo instead of Git SSH. As with SSH it might return repo not found if git SSH is not configured.

Reference:
https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository-from-github/error-repository-not-found

Thank you!


Accessibility is beeing sometimes lost when opening a new windows terminal window

Windows Terminal version
1.17.11461.0
Windows build number
Version 22H2 (OS Build 19045.3086)
Other Software
tested with screenreader nvda 2023.1 release and latest snapshot versions
Steps to reproduce
Open windows terminal window;
try to enter some characters and navigate through them with arrow keys or NVDA's move by lines numpat7 and numpad9
Expected Behavior
NVDA should read contents as expected
Actual Behavior
sometimes nvda is not able to read contents of a windows terminal and it is needed to close and open window multiple times to restore accessibility functionality. When accessibility is lost, nvda says only word pane

@codeofdusk have you seen any other feedback like this since you're more in touch with the NVDA community?


Image component cannot be placed in Text component

Please provide all the information requested. Issues that do not follow this format are likely to stall.
Description
Image component cannot be placed in Text component，The Image component has a white background
React Native version:
System:
OS: macOS 10.14.5
CPU: (4) x64 Intel(R) Core(TM) m3-7Y32 CPU @ 1.10GHz
Memory: 36.14 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.13.0 - /usr/local/bin/node
Yarn: 1.16.0 - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 23, 26, 27, 28
Build Tools: 27.0.3, 28.0.3
System Images: android-26 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6<IP_ADDRESS>22156
Xcode: 11.2.1/11B500 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.9 => 0.59.9
npmGlobalPackages:
react-native-cli: 2.0.1
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.
<Text style={[styles.commonFont, styles.nameInfo, {color: '#5E5F64'}]}
ellipsizeMode={'tail'} numberOfLines={2}>
KarenQiao：
                               <Image style={styles.violationsImg} source={require('../../images/news/icon_violations.png')}/>
                                <Text style={[styles.commonFont, styles.violationsText]}>{reactFilter.complainStatus(item.status)}</Text>

Are you sure image does not have white background? it looks like image might have background.

yes,this image does not have background.

import * as React from 'react';
import { Image, Text, View, StyleSheet } from 'react-native';

export default class App extends React.Component {
  render() {
    return (
      <>
      <Text>
        My text.
        My Image <Image style={{height: 100}} source={{ uri: "https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" }} />
      </Text>
      <Image style={{height: 100}} source={{ uri: "https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" }} />

      </>

    );
  }
}

const styles = StyleSheet.create({
});

commenting this line shows the image
https://github.com/facebook/react-native/blob/68714163280695c3148544b95b05a2c1464dbbba/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java#L152

I should be close to writing a pr

Unluckily I wasted time working on this. Can not reproduce. Author did not include reproducible example

if you give certain style to the image, that background will be applied.. to be closed.

if you give certain style to the image, that background will be applied.. to be closed.

what's  certain style ?.I just give width,height to the image

How can I fix your problem?
If I don't have your source-code and I can not reproduce your issue ?
:disappointed:

My team ran into a similar issue after upgrading to Xcode 11/ iOS SDK 13. Images inside a Text node also render a placeholder page-with-bent-corner icon. We're on RN 0.60.6. I can't provide all our source code but a simple repro is
<Text>
  Some text with an
  <Image style={{height: 20, width: 20}} source={{uri: 'some/image.png'}} />
  in the middle
</Text>

It turns out this is a manifestation of https://github.com/facebook/react-native/issues/26577; upgrading to 0.61.3 or higher should fix it.


[BUG] Memory leak when editing a project that uses a dynamic library

Description
Noticed high CPU and memory usage when editing a project that uses a dynamic library. Trying out older versions of the extension, i noticed:
❌ version 0.51.1 and newer heve the issue.
✅ version 0.50.0 and older work as expected.
Steps to reproduce

Open code.
Open a project that makes use of a dynamic library.
Change python interpreter if needed. In my case 3.11.5.
Run htop or similar application, filter processes by 'robotcode'.
Notice how process CPU usage stays at 100% and memory usage increases indefinitely.
Another thing is that processes stay alive when code is closed.

Code snippet
I'm not allowed to share the code, but this is more or less how the import statement of the dynamic library looks like:
*** Settings ***

Library           MyDynamicLibrary
...                   header=header.xml
...                   payload=payload.xml
...                   config=config.xml
...                   option=option.xml
...                   show=name
...               WITH NAME    MDL
Library           String

Screenshots

Expected behavior
As in version 0.50.0 , i expect the processes to consume at most 200MB of memory .
Logs

Python Extension is active
Invalid python version for workspace folder 'myworkspace'. Only python version >= 3.8 supported. Please update to a newer python version or select a valid python environment.
create Language client: RobotCode Language Server mode-pipe for folder "myworkspace"
trying to start Language client: RobotCode Language Server mode=pipe for folder "myworkspace"
client for file:///home/user/dev/proy/gitdir/myworkspace starting.
client for file:///home/user/dev/proy/gitdir/myworkspace running.
client for file:///home/user/dev/proy/gitdir/myworkspace started.
executeRobotCode: /home/user/dev/proy/gitdir/tcs-build-release/test/.temp/tcs-client/bin/python -u -X utf8
/home/user/.vscode/extensions/d-biehl.robotcode-0.61.7/bundled/tool/robotcode --format json --no-color --no-pager --default-path.
discover --read-from-stdin all
executeRobotCode: exit code 0

Desktop

VS Code Version 1.83.1
RobotCode Version 0.61.7
OS: Linux Ubuntu 20.04.5 LTS
Python Version 3.11.5
RobotFramework Version 4.1.3

unfortunately, i can't recreate it on my machine and would need a little more information.
What exactly does your dynamic library do in the constructor. Does it start any threads or processes? Or does it initialize anything that does that?
As I understand it, it is a library you created, right?
Can you create the library documentation on the console using the libdoc  tool from RobotFramework?
I see you have an old RobotFramework version, now current is version 6.1, have you tried a newer RobotFramework version?
RobotCode starts internally several subprocesses, so for example every time a library has to be parsed, because Python is not so good at threading and on the other hand because a library has to be instantiated and you don't know what else the library instantiates. For the library documentation it is not necessary that everything is initialized in the constructor, but only what is needed to query the keywords.
from typing import Dict, Optional
from robot.running.context import EXECUTION_CONTEXTS

class DummyLibrary:
    def __init__(self, device_config: Optional[Dict[str, str]] = None) -> None:
        do_a_little_bit()
        if EXECUTION_CONTEXTS.current is not None:  # check if robot is running
            do_what_ever_is_needed_to_execute_keywords()

    def get_keywords(self):
        ...

    ....

The above code is an example of initializing a library correctly only when RobotFramework is running. So not when LibDoc is running, which RobotCode does in the background when it encounters a library import in the background. Maybe you can try this?
There is at least one second entry in the output view that starts with RobotCode Language Server, can you take a look at it or copy the output here?
If there is nothing, you can also increase the loglevel, just open the .vscode/settings.json (if it does not exist yet, please execute the command "Preferences: Open Workspace Settings (JSON)") and insert the following code:
    "robotcode.languageServer.extraArgs": [
        "--log",
        "--log-level",
        "DEBUG",  // DEBUG, INFO, WARN, ERROR, CRITICAL
    ]

And then look again in the Output View.

any news about this?

@picope  do you have some more informations about this issue? If I don't hear from you again, I will unfortunately have to close this issue.

Hi! Sorry for the delay @d-biehl ,  i was kinda busy last days.
Answering your questions, the constructor of this library does not create any threads or processes. I can run libdoc on the library and makes the doc just fine. By now we are forced to use RF4 due to project requirements, and we are not upgrading any soon.
As you suggest ill try increasing log level, and reply this issue as soon as possible.

@picope do you have any news about this issue?

@picope ping

closed due to inactivity


Devise Does Not Support RSpec Routing Specs

Devise has test helpers to support various RSpec test types: :controller, :request, :feature, etc. However, it does not appear to support tests of type :routing, which fail.
Environment

Ruby 3.1.2
Rails 7.0.4
Devise 4.8.1

Current behavior
Configuring Devise with various combinations of the following always yileds the same error when running routing specs:
RSpec.configure do |config|
  config.include Devise::Test::IntegrationHelpers, type: :routing
  config.include Devise::Test::ControllerHelpers, type: :routing
end

An example test (using FactoryBot to create a user that authenticates successfully in other types of tests):
describe MyController do

  before { sign_in create(:user) }

The failure:
     Failure/Error: @request.env['action_controller.instance'] = @controller

     NoMethodError:
       undefined method `env' for nil:NilClass

               @request.env['action_controller.instance'] = @controller
                       ^^^^

Expected behavior
Devise should support signing in a user in a routing spec, similar to how signing in users in other spec types is allowed, or alternately provide another mechanism for making routing specs work.

I did try a workaround from a 2016 comment in this Devise ticket - which works, but it seems to me something like this should come "out of the box". Thanks.


Can't create mainnet account with Lightning Terminal UI

Expected behavior
A new mainet pool account gets created using the Lightning Terminal UI.
Actual behavior
Account creation fails with error UNABLE TO CREATE THE ACCOUNT no_route.

To reproduce
The parameters I used when attempting to create the new account:
Amount: 3,000,000
Expires In: 12,960
Confirmation Target: 6
The no_route error would seem to indicate the lighting invoice for the Pool account creation can't be paid? My lnd node has a channel open to a LOOP node 021c97a90a411ff2b10dc2a8e32de2f29d2fa49d41bfbb52bd416e460db0747d0d with a local capacity of 7,999,817.
System information
Are you using Lightning Pool as a standalone application or as part of Lightning Terminal? Lightning Terminal.
If you are using Lightning Pool as part of Lightning Terminal, did you install that using Umbrel? No.
How are you interacting with Pool? Through the command line interface or the Lightning Terminal UI? Lightning Terminal UI
What version of Lightning Pool are you using, where did you get it (website, self-compiled, etc)
Lighting Terminal release v0.4.1-alpha
~/lightning-terminal-linux-amd64-v0.4.1-alpha$ ./pool --version
pool version 0.4.4-alpha commit=v0.4.4-alpha

What type of machine are you observing the error on (OS/CPU and disk type)?
Azure Virtual Machine.
What is your operating system and its version?
azureuser@btcazure:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:        18.04
Codename:       bionic
azureuser@btcazure:~$ uname -a
Linux btcazure 5.4.0-104

Additional Info
Possibly related to #225 but the errors described there are different. I was able to create a new Pool account using the same installed components on testnet.
This is normally the contents of a pool.log file. Raw text or a link to a pastebin type site are preferred.
Relevant section of the litd terminal output:
2021-04-28 14:11:32.423 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/ListAccounts
2021-04-28 14:11:32.601 [INF] LITD: Handling gRPC web request: /lnrpc.Lightning/GetInfo
2021-04-28 14:11:32.638 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/ListOrders
2021-04-28 14:11:32.830 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/Leases
2021-04-28 14:11:37.068 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/QuoteAccount
2021-04-28 14:11:38.705 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/InitAccount
2021-04-28 14:11:38.878 [INF] ACCT: Estimated total chain fee of 0.00000224 BTC for new account with value=0.03 BTC, conf_target=6
2021-04-28 14:11:39.050 [ERR] AUCT: [/poolrpc.ChannelAuctioneer/ReserveAccount]: rpc error: code = Internal desc = payment required
2021-04-28 14:11:39.050 [INF] LSAT: Payment of LSAT token is required, paying invoice
2021-04-28 14:11:39.086 [WRN] LNDC: Payment 6b0f01a84a704b0e7bd3a1099b2d4a8a40e8de7ad27a295aeeb334a84614e5b7 failed: no_route
2021-04-28 14:12:32.041 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/BatchSnapshots
2021-04-28 14:12:32.239 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/NextBatchInfo
2021-04-28 14:12:32.417 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/ListAccounts
2021-04-28 14:12:32.645 [INF] LITD: Handling gRPC web request: /lnrpc.Lightning/GetInfo
2021-04-28 14:12:32.703 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/ListOrders
2021-04-28 14:12:32.892 [INF] LITD: Handling gRPC web request: /poolrpc.Trader/Leases

According to the log the 1k LSAT payment failed. Though I don't see any apparent reason. The target node is not the LOOP node, but another one. It has enough inbound liquidity though. Can you remove the lsat.token.pending file and try again please?

Just deleted the token and retired another couple of times but same error (I had deleted and retried probably a dozen times previously).

Can the LOOP node route payments to the node for the Pool invoice payment? Is there anyway I can check whether I can reach the Pool node?

Hmm, there is a channel between the Loop node and the Pool node though it was depleted. I did some shuffling around, can you try again please?

Still same error.
Don't know if this is relevant at all but just in case:
azureuser@btcazure:~/lightning-terminal-linux-amd64-v0.4.1-alpha$ ./pool --rpcserver swap.lightning.today:11010 --tlscertpath
swap.cert accounts new 3000000
[pool] unable to estimate on-chain fees: rpc error: code = Unimplemented desc = Not Found: HTTP status code 404; transport: received the unexpected content-type "text/plain; charset=utf-8"
azureuser@btcazure:~/lightning-terminal-linux-amd64-v0.4.1-alpha$ ./pool --rpcserver pool.lightning.finance:12010 --tlscertpath pool.cert accounts new 3000000
[pool] unable to estimate on-chain fees: rpc error: code = Internal desc = payment required

No, don't connect to the Loop backend! That will give you the wrong LSAT but you still pay for it.

Ah, well, the --rpcserver flag in your case is what server the pool CLI talks with. So you'll never get a positive response from both of these servers as they have another gRPC interface than your poold.

Okay, something's still wrong with the inbound liquidity on our side. Going to look into opening more channels.

In the meantime you can contact me on Slack and I'll create an LSAT for you so you can continue with opening your account.

Chatted with @sipsorcery on Slack and were able to find the problem. Inbound liquidity to the pool server is sufficient but @sipsorcery's lnd node didn't have its graph fully synced yet.


Fix #22 Add check android and ios conf.

Signed-off-by: Bo-Yi Wu<EMAIL_ADDRESS>

Coverage increased (+0.2%) to 96.599% when pulling e675d2577720c21c99eb06b4f25514992eda12eb on check_config into 2e40ca3375b1e3ea6a7aa1f271a4fd6d60c9e9a7 on master.


feature: Add linter to PR build pipeline

Checklist:

[x] I've searched for similar issues and couldn't find anything matching
[x] I've discussed this feature in the #k8sgpt slack channel

Is this feature request related to a problem?

[x] Yes
[ ] No

There are a few subtle bugs introduced to the main branch, which could have been prevented
by letting a linter run before merging PRs.
Describe the solution you'd like

A own workflow for running a linter such as golangci-lint should be introduced,
which runs for PRs. This should catch a large amount of easy to avoid issues.
Benefits for the project and its users

Less easy to avoid bugs, as already caught in an automated way in the PR.
Potential drawbacks

There could be some false-positive findings by the linter, which would end up in some noise on the PR.
Additional context

Please assign the issue to me :slightly_smiling_face:


MySQL 8 expressions as default values cause syntax parsing error

Version
1.10.0
What happened?
Hey all, thanks for this awesome library! Ran into some issues using expressions as default values in MySQL 8.
https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html
I assume this may just be a feature missing from the upstream https://github.com/pingcap/parser library.
Figured I would raise this here to see if anyone is aware of a workaround.
Thanks again for all the hard work.
Relevant log output
# package auth
schema.sql:3:29: syntax error near "(UUID()) NOT NULL PRIMARY KEY"

Database schema
CREATE TABLE IF NOT EXISTS organizations
(
    id VARCHAR(36) DEFAULT (UUID()) NOT NULL PRIMARY KEY
);

SQL queries
-- name: GetOrganization :one
SELECT * FROM organizations
WHERE id = ? LIMIT 1;

Configuration
{
  "version": "1",
  "packages": [
    {
      "path": "db",
      "engine": "mysql",
      "schema": "query.sql",
      "queries": "query.sql"
    }
  ]
}

Playground URL
https://play.sqlc.dev/p/8b99ca6623d728b89b335001bed9e38464a88572dbe2620456d1c3e37dcf5c67
What operating system are you using?
macOS
What database engines are you using?
MySQL
What type of code are you generating?
Go

This indeed appears to be an issue with the pingcap MySQL parser. I've opened an issue (https://github.com/pingcap/parser/issues/1347) for this problem.

We've upgraded to the latest version of the MySQL parser which should fix this issue.


Fully use storybook

Investigate storybook / chromatic concept

[ ]  #3850

[ ] integrate chromatic
[ ] have coverage for all components
[ ] mdx documentation
[ ] update main page
[ ] bundle doc into ANET

Mosly done now, except coverage for all components.


vercel-edge wasm support

Describe the feature
It needs esmImport but there is also other stuff I have no clue about.
  wasm: {
    esmImport: true,
  },
  experimental: {
    wasm: true,
  },

Additional information

[ ] Would you be willing to help implement this feature?

@ericfennis is an absolute genious and got this to work.
https://github.com/lucide-icons/lucide/pull/1510/files#diff-ee430db730c92b06e938a5d52f185030ccc1ac7b3403c58eb1d00d96e3dcd145R10-R28
Code is a bit of a bodge but it works :tada:


Overflow issue with long table data

Package
filament/filament
Package Version
v3.1.33
Laravel Version
v10.39.0
Livewire Version
v3.3.5
PHP Version
PHP 8.2.14
Problem description
Hi everyone, i've a problem with vertical scrollbar (overflow-x) in page that interacts with table, so basically the scrollbar is very long and after some test, i've found that this was caused because my table has long data (vertically) and each columns has sortable applied. this issue affect UI on mobile and i'm not come up with any solutions at the moment.
additional information:

this happens in google chrome browser
it works fine in firefox
i'm running Pop!_OS 22.04 LTS
Chrome: Version 120.0.6099.129 (Official Build) (64-bit)
Firefox: 120.0.1 (64-bit)

Screenshot (google chrome):

Screenshot (firefox | expected behavior):

Expected behavior

Hide the unnecessary vertical scroll bar at the bottom

Steps to reproduce

Create a new page or resource with a table with long columns or many columns
Add sortable on each column that hidden (let say you have 23 columns, table only display 11 columns, then add sortable to 12th until 23th columns)
See unnecessary vertical scroll bar at the bottom

Reproduction repository
https://github.com/aldesrahim/filament-table-issue-overflow-x-sortable
Relevant log output
No response

Fixed by #10636.


Issue-#2---Clean-up-solution

#2 Cleaning up solution, remove of Azure blob storage and other connection references which are no longer required. Also removed the environment variable.

Going to merge


Invalid Podfile file: undefined method `script_phase'

Steps to Reproduce

Flowing the guid https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps, install flutter module to my iOS APP, my iOS project path is "/Users/xxx/PPP/XXXXXX/"

Create my_flutter module

$ cd /Users/xxx/PPP/XXXXXX/
$ flutter create -t module my_flutter

Add code in my podfile

flutter_application_path = 'my_flutter/'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

Run shell

$ pod _1.6.0_ install

Logs

[!] Invalid `Podfile` file: undefined method `script_phase' for #<Pod::Podfile:0x007f97d2341400>.

 #  from /Users/xxx/PPP/XXXXXX/Podfile:18
 #  -------------------------------------------
 #  target 'XXXXXX' do
 >    install_all_flutter_pods(flutter_application_path)

$ flutter doctor -v
[✓] Flutter (Channel master, v1.9.7-pre.21, on Mac OS X 10.14.2 18C54, locale zh-Hans-CN)
    • Flutter version 1.9.7-pre.21 at /usr/local/flutter
    • Framework revision 9f4ab273f1 (5 hours ago), 2019-08-28 20:02:08 -0700
    • Engine revision f52c0b9270
    • Dart version 2.5.0

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.1)
    • Android SDK at /Users/mxl/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    ✗ Flutter requires Android SDK 28 and the Android BuildTools 28.0.3
      To update using sdkmanager, run:
        "/Users/mxl/Library/Android/sdk/tools/bin/sdkmanager" "platforms;android-28" "build-tools;28.0.3"
      or visit https://flutter.dev/setup/#android-setup for detailed instructions.
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[!] Xcode - develop for iOS and macOS (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    ! CocoaPods out of date (1.6.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade:
        sudo gem install cocoapods
        pod setup

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.5)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 26.0.2
    • Dart plugin version 181.4892.1

[✓] Connected device (1 available)
    • ip7 • c16d87b80cec2bc50991179f841ff2841xxxxxx • ios • iOS 11.1

! Doctor found issues in 3 categories.

I also have cocoapods 1.6.0
$ gem list --local | grep cocoapods
cocoapods (1.7.5, 1.7.4, 1.6.0, 1.4.0, 1.2.1)
cocoapods-core (1.7.5, 1.7.4, 1.6.0, 1.4.0, 1.2.1)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.2.2)
cocoapods-packager (1.5.0)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.1.0)
cocoapods-trunk (1.3.1)
cocoapods-try (1.1.0)

My Podfile is like this.
source 'https://github.com/CocoaPods/Specs.git'
source 'http://xxx/tfs/xxx/xxSpecs'
platform :ios, '9.0'
inhibit_all_warnings!
install! 'cocoapods',
:deterministic_uuids => false

flutter_application_path = 'my_flutter/'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

target 'XXXXXX' do
  install_all_flutter_pods(flutter_application_path)
end

Not sure if it may help, but can you please try to create my_flutter as sibling? I mean in cd /Users/xxx/PPP and to set absolute flutter_application_path in Podfile?

Not sure if it may help, but can you please try to create my_flutter as sibling? I mean in cd /Users/xxx/PPP and to set absolute flutter_application_path in Podfile?

Thank you, I tried, but don't work, the same error.

I try the same Podfile in my new Project, it work fine. I don't know what 'script_phase' means.
I find the  'script_phase' in podhelper.rb
script_phase :name => 'Run Flutter Build Script',
    :script => "set -e\nset -u\nsource \"#{flutter_export_environment_path}\"\n\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build",
    :input_files => [
      File.join('${SRCROOT}', flutter_application_path, '.metadata'),
      File.join('${SRCROOT}', relative, 'App.framework', 'App'),
      File.join('${SRCROOT}', relative, 'engine', 'Flutter.framework', 'Flutter'),
      flutter_export_environment_path
    ],
    :execution_position => :before_compile

Maybe it's because some of my Xcode configurations are causing this problem.

! CocoaPods out of date (1.6.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins

I know you have CocoaPods 1.6.0 installed somewhere, but I think it's grabbing something much older.  Can you make sure your pod --version is > 1.6.0?

! CocoaPods out of date (1.6.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins

I know you have CocoaPods 1.6.0 installed somewhere, but I think it's grabbing something much older. Can you make sure your pod --version is > 1.6.0?

I run install with version like:
$ pod _1.6.0_ install

And this is the version info:
$ pod _1.6.0_ --version
1.6.0

! CocoaPods out of date (1.6.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins

I know you have CocoaPods 1.6.0 installed somewhere, but I think it's grabbing something much older. Can you make sure your pod --version is > 1.6.0?

Thanks for your reply.
As I said before, it is fine for me to use it in new projects. So it may not be related to the pod version？
I am curious that 'script_phase' has something to do with the configuration in the xcode. Which part of the configuration should I focus on? I will check and try to fix them.

But what's the output of pod --version without the _1.6.0_?  It's not picking up 1.6.0 as the default, it's picking up something lower.  Until you stop getting ! CocoaPods out of date (1.6.0 is recommended). in your flutter doctor it's not going to pick up the script_phase (a requirement for modules but not new apps).

But what's the output of pod --version without the _1.6.0_? It's not picking up 1.6.0 as the default, it's picking up something lower. Until you stop getting ! CocoaPods out of date (1.6.0 is recommended). in your flutter doctor it's not going to pick up the script_phase (a requirement for modules but not new apps).

Thank you, I uninstalled all other versions and it works fine.


Medium post does not cover the usage of getPurchaseHistories() hook

How is getPurchaseHistories() used?
Its not covered in the medium post so the documentation seems to be incomplete

After reading the medium post again, I guessed that it would work in a similar way to getProducts where the result is saved to products.
Applying the same logic it appears to be called to purchaseHistories
e.g. when purchase history changes it prints out the result
    getPurchaseHistories()

  }, [getPurchaseHistories]);

  useEffect(() => {
   console.log(purchaseHistories)
  }, [purchaseHistories]);


Fix pre-commit git hook permissions to be executable

Task/Issue URL: https://app.asana.com/0/0/1203860224560904/f
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #2790   👈

This comment was auto-generated by Graphite.


[BEAM-4461] Resubmit PR to switch SQL over to schema transfomr

The previous PR failed because of a missing override for getAccumulatorCoder. Since the override was missing the default delegated to CoderRegistry, which failed due to type erasure..

Run Java PreCommit

Run Java PreCommit

It looks good to me. Please "squash and merge" it if all checks are green.


Deleting a bridge does not remove the associated routes

Removing a bridge does not reset all the other configuration - routes etc.

I tested this again, and it seemed to work as expected, so I will close this now.


Format invalid data

It would be nice if this script came bundled with a utility to filter out invalid data like https://github.com/GalAvineri/MelMedic/blob/master/data/format_data.py#L16
The other utilities are nice too but too specific to your particular project (e.g. I might prefer a different validation scheme) whereas surely everyone wants to filter out invalid data.

If you want I can make a PR that adds a filter_invalid.py script to do this.
I'll try to adhere to your coding style as much as possible and you can further improve it later.

I went ahead and did it. I suggest you merge it ASAP for anyone that needs it and, if you feel necessary, improve it later.


Create a tab from the provided URL

@azhawkes
Please note, this  update relates and requires https://github.com/loadster/loadster-dashboard/pull/44
All webRequest listeners are applied after creating a new tab (with the URL provided). They also have an additional filter tabId, so we only listen for changes on this particular tab and its children.
Please let me know your thoughts on these:

The new tab is the only place (in current recording session) from where we can get something. I feel that we need a more clear way to point user on that. Notifications/blinking? Maybe something similar to scenario?
We are currently unable to track the new tabs created from inside.
For example, target="_blank". When you said "that tab or its children" did you mean the new tabs as well?

@azhawkes
OK, now we have kind of hierarchy. Each port has its own collection of tabs, starting with the one provided and its “children”.
This relies on openerTabId property of the new tab. But... it's not very reliable, since openerTabId could be any active tab.
Practically, this means that it may be difficult to open a non-recordable tab during a session.

@konfrontend Everything's working great. I like how you made recording automatically stop when the recording tab is closed. And the child/grandchild tabs work nicely.
Just a few minor UI changes and then I think it's ready to ship:

Make it so hitting Enter in the URL input should start recording (same as clicking the button).
Let's change the recording dialog title to "Record Browser Events" instead of "Recording in Progress".
Change the flashing tab title to "- RECORDING -" instead of "RECORDING".
Is there an easy way to synchronize the flashing tab titles so they all say "- RECORDING -" at the same time? When there are several recording tabs it can get a bit noisy since they are all flashing at different rates.
Change the text "Now recording! Walk through your steps..." to "We've opened another browser tab for recording. Navigate your site in the new tab and we'll record browser events here."

Thanks!

@azhawkes All done.
I thought about this noise of notifications ... I managed to synchronize the blinking, although it was still annoying. As a result, I replaced -RECORDING- text with a set of icons. Thus, we have all the original text and record indicator together. Hope you do not mind

@konfrontend Oops, I was about to package this when I discovered an issue.
When you navigate to a different page in the opened tab, the extension still remembers the original page title and keeps displaying that. I think we need a way to get the current page title each time.
Additionally, can we avoid asking for the "tabs" permission? When we request this permission, Chrome gives the user an overly alarming message that we will "Read your browser history".  I tried taking that permission out of manifest and everything seemed to still work correctly. Is it safe to remove it?

@konfrontend By the way, using the blinking dot instead of the "-RECORDING-" text looks WAY better. 👍

@azhawkes, well it looks like we can remove the permission, oddly enough ...
From the specification:

The title of the tab. This property is only present if the extension's manifest includes the "tabs" permission.

May be outdated or something


docker-compose up failing for client_1

Hi,
Thanks for creating this docker-sensu container. I ran docker-compose up and I got the attached error for client_1.
sstarcher_client_1_err.txt
Adding the snippet at which the failure occurs.
client_1  | update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
client_1  | Setting up build-essential (12.1ubuntu2) ...
client_1  | Processing triggers for libc-bin (2.24-9ubuntu2) ...
client_1  | Processing triggers for sgml-base (1.29) ...
client_1  | Downloading          sstarcher/aws:master
client_1  | Downloading          sensu-plugins/mail:master
client_1  |
client_1  | gzip: stdin: not in gzip format
client_1  | tar: Child returned status 1
client_1  | tar: Error is not recoverable: exiting now
client_1  | /bin/install: line 47: cd: sensu-plugins-mail-master: No such file or directory
client_1  | Building     sensu-plugins/mail:master

Is there something I am missing here?

It looks like mail either never existed or was moved to mailer - https://github.com/sensu-plugins/sensu-plugins-mailer

I updated the docs, let me know if you have any additional issues.