[chore] Update to Turborepo 2.0

Leverage the new watch mode

Done with https://github.com/gsoft-inc/wl-squide/pull/225


Fix removed list item filtering

Overview
There are now two types of removed items: ones that are removed after processing (which are indicated by having no active matches), and ones that are removed prior to processing (which are indicated by the 'ITEM_REMOVED' status). Adjust the filtering for the list details page to include both types when filtering by 'REMOVED'.
Connects #2258
Demo

Testing Instructions

Run ./scripts/server and upload a list, but do NOT fully process it.
Run ./scripts/manage batch_process -l {list_id} -a parse
Choose a parsed item and use the 'remove' button to remove it
Run ./tools/batch_process {list_id}
Remove another item from the list with the 'remove' button
Apply the 'REMOVE' filter, and you should see both removed items.

Checklist

[ ] fixup! commits have been squashed
[ ] CI passes after rebase
[ ] CHANGELOG.md updated with summary of features or fixes, following Keep a Changelog guidelines
[ ] This PR is targeted at the correct branch (develop vs. ogr/develop)
[ ] If this PR applies to both OAR and OGR a companion PR has been created

Thank you for reviewing!


update tests

Issue #, if available:
Description of changes:
Testing done:
Merge Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your pull request.
General

[ ] I have read the CONTRIBUTING doc
[ ] I used the commit message format described in CONTRIBUTING
[ ] I have updated any necessary documentation, including READMEs and API docs (if appropriate)

Tests

[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[ ] I have checked that my tests are not configured for a specific region or account (if appropriate)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

PYTHON_JULIACALL_OPTIMIZE brought down local runtime from ~2:40 to ~2:00

What level? 3?

What level? 3?

 It seemed 0 resulted in the best. I couldn't find docs on the highest vs lowest so I benchmarked across the levels.

https://docs.julialang.org/en/v1/manual/command-line-interface/#command-line-interface they're the same levels as here

Generally higher is supposed to be more performant


Install fails with lts-7.0

 LTS Haskell 7.0 (gcc-8.0.1) just came out and unfortunately this now seems to mean that haskell-vim-now does not install properly anymore. (I was able to trace the problem to the codex package, see issue 63).
Here's where I think haskell-vim-now has a bug: Even if I carefully setup the global stack project (.stack/global-project/) to use LTS-6.12 via
stack --resolver lts-6.12 setup

so that I can successfully install the codex package via
stack --resolver lts-6.12 install codex

I still have a failure of
bash /tmp/haskell-vim-now.sh

as follows:
...
...
--- Setting up GHC if needed...
Downloaded ghc-8.0.1.
Installed GHC.
	Stack bin path: /Users/mmayer/.local/bin
	Stack global path: /Users/mmayer/.stack
	Stack global config location: /Users/mmayer/.stack/global-project/stack.yaml
	Stack resolver: lts-7.0
	/Users/mmayer/.config/haskell-vim-now/.stack-bin -> /Users/mmayer/.local/bin
--- Installing helper binaries...
Plan construction failed.
*** Binary installation failed with error 1.
*** Aborting...

Somehow the scripts pick up LTS-7.0 (ghc-8.0.1) along the way, and the installation fails.
I'm using a clean Ubuntu VM, and I have the same issue on Mac OS X.

This is fixed as far as codex is concerned, I believe: https://github.com/aloiscochard/codex/issues/63#issuecomment-248936267

I had the "Binary installation failed with error 1." error during installation:
Running this:
$ stack --resolver lts-6.12 setup

and then editing a line in ~/.stack/global-project/stack.yml to lts-6.12:
resolver: lts-6.12

the installation then worked.

I think we once again need extra-deps section: extra-depx: [codex-<IP_ADDRESS>].


Add install-update hook to update dependencies

Summary
This pull request introduces an install-update hook. When executed, this hook runs a check for updates, updates the dependency file(s) (import_map.json, slack.json) with the latest release versions, and then runs the build hook as the means to see the dependency updates cached.
https://user-images.githubusercontent.com/7788242/179641508-4fa72443-f280-47df-a91a-919e3fcc0aa6.mov
Implementation Notes
Familiar Structures
Relying on the prior art of the check-update hook, the code here should look very familiar, right down to the data structures:
interface InstallUpdateResponse {
  name: string;
  updates: Update[];
  error?: {
    message: string;
  } | null;
}

export interface Update {
  name: string;
  current: string;
  latest: string;
  error?: {
    message: string;
  } | null;
}

At first glance, some of these properties might seem superfluous, but they're crucial in providing a solid experience on the CLI end of things.
Rather than returning a mere status: "ok" with an error, when applicable, bundling the updates with individual information about the outcome of the installation attempt allows for the CLI to reliably display which installations were successful vs. not, and, if so, which version the user should find in their updated project, as demonstrated in the error state video below:
https://user-images.githubusercontent.com/7788242/179640616-d0a6060f-61b1-4e0c-88ef-c0fc98260546.mov
Testing Steps
The full experience requires the CLI to work in concert with this update. However, to test out the JSON that's returned, in a new project:

Check out this branch locally

In a project, bump the versions in your import_map.json and/or slack.json to something less than what is currently there.

Run the following command (which is what will normally be in the install-update hook):

deno run -q --config=deno.jsonc --allow-run --allow-read --allow-write --allow-net file:///Users/<YOUR_PATH_HERE>/deno-slack-hooks/src/install-update.ts

Verify that the JSON output contains the appropriate updates, per the changes you manually made before running the command.

Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.

Had a chat with @filmaj regarding raising errors around getJSON and am in complete agreement. Initially, we thought the lowest hanging fruit approach would be to raise the error and have the CLI surface it (rather than log in Debug mode), but the output muddled the relationship between the error raised and the source of the error. Not only that, but it would short-circuit dependency updates, favoring those that came before the error occurred and abandoning those that came after.
After assessing things, I think the ideal update would be to:

Throw the error on file read
Append the error to the top-level update response returned to the CLI
Update the CLI to handle and relay this information (which it currently doesn't)
Update the tests

Given the proximity to code freeze, I'm going to create a ticket for this as a fast-follow.


Upgrade requirements

Codecov Report

Merging #57 (84772e3) into main (4c8d9e4) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #57   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           50        49    -1
  Branches         6         6
=========================================
- Hits            50        49    -1

Impacted Files
Coverage Δ

src/django_read_only/__init__.py
100.00% <0.00%> (ø)

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 4c8d9e4...84772e3. Read the comment docs.


Check for elements in e.touches

My map wouldn't drag.  After inspecting, I found that the touches element existed on the object, but had no elements.  Doing a check for the number of elements avoided an array out of bounds issue.

@dangowans interesting! What device / OS / browser was this on?

It's a Bootstrap 4 website I'm working on.  Firefox 67.0.1 64bit on Windows 10.  I've used Leaflet in the past without this issue.  First time with Bootstrap 4, but not sure if that has anything to do with it.

Can you publish a fiddle/codepen/plunkr that displays this behaviour?

Try as I may on CodePen, I can't seem to recreate the problem.  I guess that's a good thing.

Oddly enough, the code in my application appears to be working now as well.  Perhaps it needed a weekend break.  If it happens again, I'll try to document how it happened.
Although, it still may not hurt checking for an element in the array first.


podman: always remove container on start

In case of failure, the systemd ExecStop isn't executed so the container
isn't removed. After a reboot of a failed node, the container doesn't
start because the old container is still present in created state.
We should always try to remove the container in ExecStartPre for this
situation.
A normal reboot doesn't trigger this issue and this also doesn't affect
nodes running containers via docker.
This behaviour was introduced by d43769d.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1858865
Signed-off-by: Dimitri Savineau<EMAIL_ADDRESS>

jenkins test centos-non_container-update

jenkins test centos-container-all_daemons

jenkins test centos-container-all_daemons

@guits I guess you have to apply to same fix to the ceph-crash PR

jenkins test centos-container-all_daemons


[Feature] use consist way for get device

Describe the feature
currently we use several ways to get device

internlm_accelerator.device()
internlm_accelerator.current_device()
from internlm.utils.common import get_current_device

we should the consist way to perform the get_device operation.
In addition, the interface " internlm_accelerator.device()" is necessary?
Will you implement it?

[ ] I would like to implement this feature and create a PR!

https://github.com/InternLM/InternEvo/pull/139/files#diff-91f43b004e941576625da0be2eab4bdb1fe7981fc6d2ef9c8389e103e6c47790


Exception when using threads to add choice points

Great port! Noticed a slight incompatibility when experimenting with threads.
For background, here is the ink documentation on implementing threads for choice points:  https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md#example-organisation-of-wide-choice-points
Expected result. The below script should add an additional choice point to the 'start' knot, offering the user the additional choice of 'No'. If 'No' is selected, 'start' should be re-run.
What happens. When run with blade-ink, an exception is thrown (see below). When run with inklecate in interactive mode (inklecate -p simple.ink), the script runs correctly. I attempted different permutations of the script and the addition of gathers/etc, but the exception still occurs.
Simple script causing the exception.
-> start

=== start ===
Here is some gold. Do you want it?
<- choices(-> start)
+ Yes
    You win!
    -> END

=== choices(-> goback) ===
+ No
    Try again!
    -> goback

Exception raised by blade-ink:
java.lang.Exception: RUNTIME ERROR: Variable 'goback' could not be found in context '-1'. This shouldn't be possible so is a bug in the ink engine. Please try to construct a minimal story that reproduces the problem and report to inkle, thank you!     at com.bladecoder.ink.runtime.VariablesState.getRawVariableWithName(VariablesState.java:149)     at com.bladecoder.ink.runtime.VariablesState.getVariableWithName(VariablesState.java:160)     at com.bladecoder.ink.runtime.VariablesState.getVariableWithName(VariablesState.java:156)     at com.bladecoder.ink.runtime.Story.performLogicAndFlowControl(Story.java:1086)     at com.bladecoder.ink.runtime.Story.step(Story.java:1708)     at com.bladecoder.ink.runtime.Story.continueInternal(Story.java:463)     at com.bladecoder.ink.runtime.Story.Continue(Story.java:425)
Thanks!

I try the test below in the latest version of blade-ink and it works well...
Can you tell me the inklecate version that are you using to compile and the blade-ink version?
Cheers!

Thank you for the fast reply! I appreciate you taking the time to make a new test case. I verified that your test case works as intended.
It seems that I regrettably misattributed the error to the threading itself. Digging deeper, the exception is generated when converting threaded choice points to/from JSON. So, I will open a more specific issue which reuses the test script.
Because blade-ink works well with the issue above, I am closing this issue as resolved. Thanks again!


Allow small image size on project page?

Hi there,
Thank you for creating this theme. It's elegant and I'm using it for my portfolio page (yet my blog is in pelican :zipper_mouth_face:  ).
I'm wondering would you be willing to allow smaller cover images for each project (on the project page, of course)?
Currently, if I put a small image there, it will be resized to match the width (I suppose?). But I'm thinking of using different-sized images to represent different emphases of projects.
I see the reason of resizing: making them more uniformed, especially for larger pictures. And I'm aware there is a potential problem if the images are kept of their original sizes for responsive design.
But maybe allowing manual overridden of ratio may solve the problem? Say, by default 100%, but the user could manually override to, say, 40% and (the width of) that project card is resized.

Thanks @renyuneyun, Will surely do this soon!

If you mean the card cover image, I am afraid that I cannot fix this.
But the good new is that you can still resize your image using any photo editor software like Adobe Photoshop for example.

I was thinking about resizing too, but test shows me that this doesn't work. The image will be stretched to the full width (tested it again today)...


running python code via ssh

Running many small commands via ssh on one host is slow, because of ssh-connection-buildup overheads per command. Also, i want to use python functions instead of bash e.g. to work on the filesystem.
Instead i want to send python code to the remote host and execute it there. Stdout should be handled just like DeployHost.run("echo foo") output.
I understand that this may be out of scope for this project.

I would rather first on making the ssh connection build up faster first. I think uploading code also often adds latency.


reboot on opening lid.

Hi,
I can read some are experiencing the same problem as I do but there's no issue only for the problem in spite of the severity.
My pixel sometimes reboots on opening the lid and it only happens when I was running enter-chroot or startxfce4 before I close the lid. It's too risky for loosing all sessions and data that I have been working on and also tricky to reproduce though I had try to avoid several things I suspected not to experience it again but it continues to happen once or twice a week.
Here's what I have tried to avoid with no specific ground but I felt like the issue have been repeated under those circumstances,

closing the lid while I'm working on linux desktop environment (xfce)
not leaving a tab running enter-chroot (just for shell environment) or startxfce4 focused before closing the lid.
opening the lid when the battery is almost running out.
closing the lid with leaving Files app opened and Downloads focused

So I always tried to

move focus to one of other tabs of chrome native browser except the crosh tab before closing the lid
connect a charger before opening the lid
close Files app before closing the lid

I'm not sure about xscreensaver does matter as some have been mentioning even though I move focus to chrome native browser before closing the lid. Anyway I have no screen saver installed and I'm still meeting the problem.
I think we need to gather some experiments to find out under what circumstance it happens.
crouton: version 1-20150127081428~master:e1bcac2b
release: trusty
architecture: amd64
targets: x11,keyboard,audio,cli-extra,xiwi,extension,touch,xfce
host: version 6457.83.0 (Official Build) stable-channel link
Any other information needed, just ask.

I wonder if this is similar to #1429.  Likewise, (and sorry for the blatant copy-paste), could you please repro the issue, then on reboot, run generate_logs in the crosh shell and file a (separate) bug on crbug.com, and link it here? It's probably a kernel panic that we need to make the Chromium OS team aware of.

Good to know I'm one of a few. Fortunately(?) I just met the problem again the log is ready to be filed.

Never happened the issue again for two weeks. I guess it was not related to crouton itself but to others like chrome os or some extensions of it.


[ENH] Allow to (temporarly) disable blocks

Is your feature request related to a problem? Please describe.
Some GSE macros can be long (or complex). Sometimes, blocks can contain several lines or even contain many blocks inside them (in the case of "Loops").
During the edition of macros, it could be interesting for the GSE user to be able to temporarly disable a block without completely deleting it.
Use case:
Let's say a macro is composed of many blocks (and some of them contain many actions), the GSE user might prefer not to cast some of these spells (or some blocks) right now. He/she might have plans to reuse them but for later, or to move these actions into another block.
It would also be particularly useful for long "Loop" blocks. Currently, if the player doesn't want to launch all these spells, he currently has delete the whole Loop block. But with this new "Eye button", the player would be able (before really deleting a long block) to temporarly disable it, test the macro, then delete the block if he/she really wants to.
With such a "Disable Block" feature, the player could somehow make a whole block a "comment", like in coding, where the developer can add a # at the beginning of a line of code or at the beginning of several lines to skip them temporarly.
Describe the solution you'd like
Could you consider adding a new icon to disable a block (next to the "delete block" icon)?
Just an idea about a possible button (its icon would change, depending on its state):

When a block is "disabled" (Eye closed), then the macro would just skip it and hop to the next block.
Once disabled, no edition would be possible to that block.
Clicking one more time on the "eye" icon would make the block active again.
Also, to clearly see if a block is disabled, its background color could turn dark-red (for example).
Mock-up

Actually, that's a really nice Idea. Compile issues would be handled by the #. Given the new format and not wanting to play with raw all the time it would make life a lot easier. In the earlier version I just used a clipboard utility to handle that(add and removal of lines for test). The new version does not handle that well.

You can already do this by prefixing the lines in a block with — (2 -‘s) If the entire block is comments then it will be essentially ignored and disabled.

I see, but the extra visual and auto comment out/in would help a lot. Keeping tract of and making sure you have done it right is a bit of a chore especially if you block is complex. Visiting the forums shows that many don't really understand prior versions. This one is a order of magnitude harder for the none coder/player.  It is impossible to eliminate user errors. This best would be giving them enough simple tools were the errors are restricted and manageable.

I’m not disagreeing with you. Just more showing that the capability already exists.  There are other things at the moment like localisation (#795) that have a higher priority and this is a significant change in regards to the amount of time to implement.  It’s also dependant on completing #871
TimothyLuke

On 4 Jul 2021, at 7:21 am, woodgray @.***> wrote:

I see, but the extra visual and auto comment out/in would help a lot. Keeping tract of and making sure you have done it right is a bit of a chore especially if you block is complex. Visiting the forums shows that many don't really understand prior versions. This one is a order of magnitude harder for the none coder/player. It is impossible to eliminate user errors. This best would be giving them enough simple tools were the errors are restricted and manageable.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

For some reason, backgrounds of some blocks now feature the same dark-red colour.
GSE 3.0.16


Make the current release timestamp available as environment variable

Q
A

Bug fix?
no

New feature?
yes

BC breaks?
no

Deprecations?
no

Fixed tickets
-

In a custom deploy strategy I want to be able to re-use the release timestamp, so it's the same on all places.

Cool! Thanks!
:heart: this:

Every one should you it.

Thx! I'll do a PR with a "copy-paste" example in the contributing docs.


MAINT: Update notebook versions and metadata.

Update some old kernels from py2 to py3
Rm metadata from old notebook versions.

This is essentially equivalent to opening each of these files in a local jupyter client (jupyter-notebook v. 6.1.4)

Still a few more updates required... marking as draft

N.B. this also clears all the outputs.


docs: add response filter for doc

Codecov Report

Merging #93 (e70d4f3) into master (ee55902) will decrease coverage by 1.44%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #93      +/-   ##
==========================================
- Coverage   82.38%   80.93%   -1.45%
==========================================
  Files          14       14
  Lines         897      897
==========================================
- Hits          739      726      -13
- Misses        113      125      +12
- Partials       45       46       +1

Impacted Files
Coverage Δ

internal/server/server.go
55.55% <0.00%> (-10.32%)
: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 ee55902...e70d4f3. Read the comment docs.


Fix volume/stripe calcs when using forced volumes

Fixed problems with initialization of cache volumes when at least
one volume is being forced to a specific "exclusive" span.
Problem description
Disks are cleared in the following configuration where volume sizes are
specified using percentages and also one of the volumes is forced to a
specific span (disk):
storage.config:
  /dev/disk1
  /dev/disk2 volume=3 # <- exclusive span forced to a specific volume

volume.config:
  volume=1 scheme=http size=50%
  volume=2 scheme=http size=50%
  volume=3 scheme=http size=512 # <- volume forced to an exclusive span

During the first start ATS identifies the cleared disks and does the following:
(1) creates and spreads new volume 1 and 2 blocks across disk1 and disk2
(2) deletes all volume 1 and 2 blocks from disk2 to make space for volume 3
(3) creates new volume 3 that takes over the whole disk2.
In step (1) volumes are caclulated larger and spread to disk2 only to be
deleted in step (2) to make space for the forced volume 3.
During the initial start the global volume list cp_list would end up
containing "zombie" CacheVol instances which correspond to the volume 1
and 2 blocks deleted from disk2 to make space for the volume 3 and the
mapping of domains to volumes (hosting.config) could end up mapping
to any of the deleted volume blocks.
This problem disappears after restart since cp_list is initialized
from the disks and cp_list will contain only valid CacheVol instances.
The fix
This fix prevents this from happening by making sure all volumes meant
to have "exclusive" disks are created first to make sure span free
spaces are updated correctly and by excluding the size of
the "exclusive" disks from the total cache size used for volume size
calculations when sizes are specified in percentages (volume.config).

@scw00 @SolidWallOfCode did you guys get a chance to look at this PR?

Is this a feature that adding exclusively disk without clearing all disk ?

Cherry-picked to v9.0.x branch.

@scw00 and @SolidWallOfCode thanks for the review!
The C-style casts were remnants of old code, C-style casts are all over the place in Cache.cc. Since this PR got merged before I pushed the fix, in the interest of time I may address your "stylistic request" in a following PR.

@zwoop here is the 8.1.x back port PR #7001


downport, outline APPEND input_lower+index(1) TO input_letters.

APPEND input_lower+index(1) TO input_letters.

actually "APPEND |sdfsd| TO table."


Refactor authorization / Roles text

TODOs

[x] Relabel to “Access levels / access”
[x] Anonymous = visitor
[x] add in more understandable description

implemented


Subqueries issues

Bug report
Ubuntu 16.04, v1.2
1: A query returns just ERR if the subquery GROUPs BY both a time interval and a tag
Steps to reproduce:

Write some data

> insert giraffes,name=chrono leaves_consumed=12<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=8<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=2<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=15<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=4<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=5<PHONE_NUMBER>000000000

> select * from giraffes
name: giraffes
time                 leaves_consumed name
----                 --------------- ----
2017-01-24T22:54:00Z 12              chrono
2017-01-24T22:54:00Z 8               graf
2017-01-24T22:54:05Z 13              chrono
2017-01-24T22:54:05Z 2               graf
2017-01-24T22:54:10Z 15              chrono
2017-01-24T22:54:10Z 4               graf
2017-01-24T22:54:15Z 13              chrono
2017-01-24T22:54:15Z 5               graf

Run a query where the subquery's GROUP BY clause includes a time interval and tag

> SELECT * FROM (SELECT MEAN("leaves_consumed") FROM "giraffes" WHERE time >= '2017-01-24T22:54:00Z' AND time <= '2017-01-24T22:54:15Z' GROUP BY time(10m),"name")

ERR:

Expected behavior:
I'd expect to get either this:
name: giraffes
tags: name=chrono
time                 mean
----                 ----
2017-01-24T22:50:00Z 13.25

name: giraffes
tags: name=graf
time                 mean
----                 ----
2017-01-24T22:50:00Z 4.75

Or this:
name: giraffes
time                 mean   name
----                 ----   ----
2017-01-24T22:50:00Z 13.25  chrono
2017-01-24T22:50:00Z 4.75   graf

Actual behavior:
I get ERR:.
2: The main query ignores LIMIT if the subquery includes the GROUP BY clause
Steps to reproduce:

Write some data

> insert giraffes,name=chrono leaves_consumed=12<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=8<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=2<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=15<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=4<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=5<PHONE_NUMBER>000000000

> select * from giraffes
name: giraffes
time                 leaves_consumed name
----                 --------------- ----
2017-01-24T22:54:00Z 12              chrono
2017-01-24T22:54:00Z 8               graf
2017-01-24T22:54:05Z 13              chrono
2017-01-24T22:54:05Z 2               graf
2017-01-24T22:54:10Z 15              chrono
2017-01-24T22:54:10Z 4               graf
2017-01-24T22:54:15Z 13              chrono
2017-01-24T22:54:15Z 5               graf

Run a query where the subquery includes GROUP BY * and the main query includes LIMIT 1

> SELECT "leaves_consumed" FROM (SELECT "leaves_consumed" FROM "giraffes" GROUP BY *) LIMIT 1

name: giraffes
time                 leaves_consumed
----                 ---------------
2017-01-24T22:54:00Z 12
2017-01-24T22:54:00Z 8

Expected behavior:
Return just one point:
name: giraffes
time                 leaves_consumed
----                 ---------------
2017-01-24T22:54:00Z 12

Actual behavior:
I got two points. (This also happens if I GROUP BY a specific tag.
3: A query with a subquery returns a duplicate column and returns points in an unexpected order
Steps to reproduce:

Write some data

> insert giraffes,name=chrono leaves_consumed=12<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=8<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=2<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=15<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=4<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=5<PHONE_NUMBER>000000000

> select * from giraffes
name: giraffes
time                 leaves_consumed name
----                 --------------- ----
2017-01-24T22:54:00Z 12              chrono
2017-01-24T22:54:00Z 8               graf
2017-01-24T22:54:05Z 13              chrono
2017-01-24T22:54:05Z 2               graf
2017-01-24T22:54:10Z 15              chrono
2017-01-24T22:54:10Z 4               graf
2017-01-24T22:54:15Z 13              chrono
2017-01-24T22:54:15Z 5               graf

Run a super simple query with a subquery

> SELECT * FROM (SELECT * FROM "giraffes")
name: giraffes
time                 leaves_consumed name   name_1
----                 --------------- ----   ------
2017-01-24T22:54:00Z 12              chrono chrono
2017-01-24T22:54:05Z 13              chrono chrono
2017-01-24T22:54:10Z 15              chrono chrono
2017-01-24T22:54:15Z 13              chrono chrono
2017-01-24T22:54:00Z 8               graf   graf
2017-01-24T22:54:05Z 2               graf   graf
2017-01-24T22:54:10Z 4               graf   graf
2017-01-24T22:54:15Z 5               graf   graf

Expected behavior:
Just:
name: giraffes
time                 leaves_consumed name
----                 --------------- ----
2017-01-24T22:54:00Z 12              chrono
2017-01-24T22:54:00Z 8               graf
2017-01-24T22:54:05Z 13              chrono
2017-01-24T22:54:05Z 2               graf
2017-01-24T22:54:10Z 15              chrono
2017-01-24T22:54:10Z 4               graf
2017-01-24T22:54:15Z 13              chrono
2017-01-24T22:54:15Z 5               graf

Actual behavior:
I get a duplicate column of the name tag (name_1) and it seems like the points are ordered first by series and then by timestamp.
I can get that order issue by selecting specific field keys as well:
> SELECT "leaves_consumed" FROM (SELECT "leaves_consumed" FROM "giraffes")
name: giraffes
time                 leaves_consumed
----                 ---------------
2017-01-24T22:54:00Z 12
2017-01-24T22:54:05Z 13
2017-01-24T22:54:10Z 15
2017-01-24T22:54:15Z 13
2017-01-24T22:54:00Z 8
2017-01-24T22:54:05Z 2
2017-01-24T22:54:10Z 4
2017-01-24T22:54:15Z 5

4. How GROUP BY time() vs GROUP BY tag works in the main query
(This is more of a comment on subquery behavior that, if anyone's interested, I'd like to discuss/learn more about)
Steps to reproduce:

Write some data

> insert giraffes,name=chrono leaves_consumed=12<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=8<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=2<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=15<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=4<PHONE_NUMBER>000000000
> insert giraffes,name=chrono leaves_consumed=13<PHONE_NUMBER>000000000
> insert giraffes,name=graf leaves_consumed=5<PHONE_NUMBER>000000000

> select * from giraffes
name: giraffes
time                 leaves_consumed name
----                 --------------- ----
2017-01-24T22:54:00Z 12              chrono
2017-01-24T22:54:00Z 8               graf
2017-01-24T22:54:05Z 13              chrono
2017-01-24T22:54:05Z 2               graf
2017-01-24T22:54:10Z 15              chrono
2017-01-24T22:54:10Z 4               graf
2017-01-24T22:54:15Z 13              chrono
2017-01-24T22:54:15Z 5               graf

Run a query with a GROUP BY tag clause in the main query

> SELECT * FROM (SELECT MAX("leaves_consumed") FROM "giraffes" WHERE time >= '2017-01-24T22:54:00Z' AND time <= '2017-01-24T22:54:15Z') GROUP BY "name"
name: giraffes
tags: name=graf
time                 max
----                 ---
2017-01-24T22:54:00Z 8

name: giraffes
tags: name=chrono
time                 max
----                 ---
2017-01-24T22:54:10Z 15

Run the same query but replace the GROUP BY tag clause with a GROUP BY time() clause

> SELECT * FROM (SELECT MAX("leaves_consumed") FROM "giraffes" WHERE time >= '2017-01-24T22:54:00Z' AND time <= '2017-01-24T22:54:15Z') GROUP BY time(10s)
ERR: error parsing query: GROUP BY requires at least one aggregate function

Actual behavior and Expected behavior
I know this is how subqueries work now. So a GROUP BY tag clause in the main query is automatically applied to the subquery, and a GROUP BY time() clause in the main query is not automatically applied to the subquery - but, that difference in behavior for the same InfluxQL clause seems strange to me.
I'd expect that the subquery is basically independent from the main query - so the system runs the subquery and then runs the main query on the data that are returned from the subquery - and no clauses are transported between the two queries. That might be naiive but that's how I thought they'd work.

@desa - here's the output from our talk today!

@rkuchan can you split this into three separate tickets and assign them all to me? I think I can respond to them, but it's a bit of an information overload with them all in the same thread. Thanks.

I figured out the third one. I'll have a PR up for it soon.

For the fourth one, the reasoning there does make sense. When attempting to validate a query, it validates whether or not that specific query makes sense in its own context. So in this query:
SELECT * FROM (SELECT MAX("leaves_consumed") FROM "giraffes" WHERE time >= '2017-01-24T22:54:00Z' AND time <= '2017-01-24T22:54:15Z') GROUP BY time(10s)

The GROUP BY time(10s) doesn't make sense for a raw query. While it makes sense for the inner query and would be propagated inwards, it doesn't make sense for the query it is attached to and is rejected as a malformed query. Tags don't have that restriction though since grouping by a tag makes sense in both contexts.
But, to make things easier, certain queries will ignore the propagated interval to avoid validation failing in ways that doesn't make sense. So if you have this query:
SELECT mean(value) FROM (SELECT 1 / value FROM cpu) WHERE time > now() - 10m GROUP BY host, time(10s)

The inner query is a raw query so it doesn't accept grouping by time, but technically the time gets propagated internal within the query engine (and is ignored). So if you have another nested query inside of that with an aggregate, the interval will be propagated through the middle query. But, if you try this:
SELECT mean(value) FROM (SELECT 1 / value FROM cpu GROUP BY time(10s)) WHERE time > now() - 10m GROUP BY host, time(10s)

This will fail because the query doesn't make sense.
Basically, it fails when the grouping is declared explicitly and it's not compatible with the current query level. It ignores that failure if the grouping is implicit from a level above it.

@rkuchan I've created separate issues for each of your points, so I'm going to go ahead and close out this one.
@jsternberg I've assigned you to all four issues. Please feel free to close any that have already been resolved. Please also open issues for any outstanding subquery issues that do not have GH issues created yet and CC me on them.

Thanks, @rossmcdonald!


Sporadic error: VmdbDatabaseConnection is blocked

VmdbDatabaseConnection is blocked
Failure/Error: raise "Lock is not blocking"
RuntimeError:
Lock is not blocking
./spec/models/vmdb_database_connection_spec.rb:77:in `block (2 levels) in <top (required)>'

@tenderlove I assigned to you, but not sure you are the right person or not...

thanks @tenderlove


[Feature] Linux Port?

Is a linux port possible?

close

Wait omg so sorry. wrote this in the wrong repository.


Add rule elements to Festrog's On All Fours

Did speed modifiers start working on NPCs?

Hm. It sort of works, in that the character sheet shows the correct value, but seems to be double applying.
breakdown: "Base Land Speed 40, On All Fours +10"
Closing for now.

The bonus has an incorrect selector, but it works fine.


AsyncHttpClientBackend ignores onlyProxyHosts

With this setup (full Scastie):
      sttp <- AsyncHttpClientZioBackend(
        SttpBackendOptions.Default.copy(proxy =
          Some(SttpBackendOptions.Proxy("localhost", 1234, ProxyType.Http, onlyProxyHosts = List("foo.bar")))
        )
      )
      response <- sttp.send(quickRequest.get(uri"http://example.com"))

we get an exception:
sttp.client3.SttpClientException$ConnectException: Exception when sending request: GET http://example.com
...
	Suppressed: java.net.ConnectException: Connection refused: localhost/[0:0:0:0:0:0:0:1]:1234
...

even though the proxy should not be enabled for example.com.

Closing, as the backend is now removed


Rewrite & to & (Which break legal xml format)

When running the format all instance of  & is rewritten to &
This break the xml file!

@alfnielsen could you please provide the XML string to investigate?

This xml file will change & to & and < to <
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<CATALOG><IDENT><SENDER_ID>xxx</SENDER_ID></IDENT><ITEMS><ITEM ACTION="UPDATE"><ITEM_NO>yyy</ITEM_NO><ITEM_NAME>Test & < Test</ITEM_NAME></ITEM></ITEMS></CATALOG>

@alfnielsen It should be fixed in version 0.0.8


Hash generator

Hi
Sorry this might be a very dumb question, but i've never played around with Md5 or hashes whatever its called.
What can i use to generator that txt file with the files names and hashes so that it looks like your example?
like:
filename1
hash
filename2
hash
and also files that are in directories
like:
/folder/filename1
hash
thanks for the awesome updater and any help will be much appreciated!

Ah I made a little powershell script which works great. :)

Ah I made a little powershell script which works great. :)

Hi !
I have the same "issue" than you. Could you share your powershell script ? I do not really know it.

Hey!
You can use the Hash/Md5Hasher.cs class and use the MD5 interface and choose an appropriate method to get the MD5 hash from a file in the disk.
Use it in everyfile you want, to retrieve the hashes


A problem occurred configuring root project 'android'

I have a problem with this , please help me
Launching lib\main.dart on SM A600G in debug mode...

Error running Gradle:
ProcessException: Process "D:\ProjFlutter\hello_world\android\gradlew.bat" exited abnormally:

FAILURE: Build failed with an exception.

What went wrong:

A problem occurred configuring root project 'android'.

Could not resolve all artifacts for configuration ':classpath'.

Could not download guava.jar (com.google.guava:guava:23.0)

  > Could not get resource 'https://jcenter.bintray.com/com/google/guava/guava/23.0/guava-23.0.jar'.

     > Could not GET 'https://jcenter.bintray.com/com/google/guava/guava/23.0/guava-23.0.jar'. Received status code 502 from server: Bad Gateway

Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 7s
Command: D:\ProjFlutter\hello_world\android\gradlew.bat app:properties
Please review your Gradle project setup in the android/ folder.
Exited (sigterm)

i got the same problem... if seems that the jcenter.bintray.com website has gone away?

Bintray is down, you could try replacing jcenter() with mavenCentral() twice in android/build.gradle.

Hi, could you please confirm if this problem still exists with the latest versions on stable or master?
Also does this happen on Android and iOS?
Thanks a lot

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Proposal:Type Pattern matching

example:
type NotNull=*|null;
type useNotNull=NotNull(number|null);//number;

type ListItem=List<*>;
type useListItem=ListItem(List<string>);//string;

type Constructor={new():*};
type useConstructor=Constructor({new():Date});//Date;

type FuncReturn=()=>*;
type useFuncReturn=FuncReturn(typeof Date.now);//number;

Can you explain how this differs to #19800, #16067 and #12424?

@rbuckton had a proposal for matched types that I can't seem to find.

sorry
Maybe duplicate #12424


Request: Newline support

Currently,  \n shows up as a box rather than draw on a new line.

d75591e512c68c25c7b0146399d96f42c550dac9 appears to have added this.


fix: App crash on selecting Add location

Fixes #1236
Checklist:

[ ] I have checked for PMD and check-style issues
[x] I have read the Contribution & Best practices Guide and my PR follows them.
[x] My branch is up-to-date with the Upstream development branch.

Why does this fix it?

@iamareebjamal In the logcat of the issue, it says that the flag needs to be enabled for calling a new activity from outside the activity context.

@Masquerade0097 @iamareebjamal Please review


When changing role names, also update association positions

Originally reported on Google Code with ID 60

class A
{

-- * B;
}
class B {}

Second step, move the association in the graphical editor
Third step: Add a role name:
class A
{

-- * B theB;
}

class B {}
Result, the positioning of the association is lost.
The UmpleSync process should update the association name from AB to AB:theB

Reported by @umple on 2011-06-23 21:10:18

This is a longstanding issue related to layout in the editable class diagrams. See also #583


Set up glossary for translations with Weblate

We currently use Weblate to translate the user interface. Translators get a list of untranslated strings (or strings needing review) in their language, write translations, and this gets committed to the repository via regular pull requests.
Weblate makes it possible to set up a glossary, which determines how the terminology that is specific to OpenRefine should be translated in each language. For instance, terms like "facet", "clustering" or "reconciliation" have a pretty specific meaning in our context - so we want to make sure these terms are translated uniformly in all strings.
We should look into setting up such a glossary and identifying the terms that should go there.

You could add that as context to the strings in question.

@wetneb @antoine2711 I would like to work on this

I got the following words from weblate. Ill go ahead and try to define them in OpenRefine context
Apply
best candidate
blank
Blanks
Cancel
Change
claim
clipboard
Cluster
Clusters
Collapse
Collapse
Column
complete
Computer
Contributors
Creator
Custom
Custom Tabular Exporter
database
data set
Delete
description
Description
Download
Downloading
edit
English
Enter
entity
entity identifier
Error
extension
Facet
facets
Facets
Help
HTML table
Identical
Internal error
judgment
key column
Language
license
Locate
match
metadata
Name
note column
Open
Options
Parse
pasted
preview
Preview
project
qualifier
QuickStatements
reconcile
reconciliation
reconciling
regular expression
Remove
Schema:
Search
Show
Sort
specify
statement
Subject
tag
Tag
Tags
Title
try
Unknown error
Updating
Upload
Uploading
value column
worksheet

I got the following words from weblate. I will go ahead and try to define them in OpenRefine context

@WaltonG: a short description is good, as there is a text field for explanations. The next step would be to import that in Weblate. Currently, there is TWO word defined in the glossary: QuickStatements and Facet.
Here's a snapshoot of the editing pane in the wep page of Weblate:

Here's the french link to OpenRefine’s Weblate glossary:
https://hosted.weblate.org/translate/openrefine/glossary/fr/
Have you’ve been there?
Regards, Antoine

@antoine2711 Yes, that's where I got the words to be included in the glossary I am working on. Thank you for the pointers

@antoine2711 Since it will be imported to weblate I guess I will have to present it in json format ?

@antoine2711 Since it will be imported to weblate I guess I will have to present it in json format ?

@WaltonG: from what I understand, we currently have 4 Weblate « composant » that get transfered in our GH repo in 4 different locations. And yes, they are in JSON. (Here, one composant in one language, french.)
https://github.com/OpenRefine/OpenRefine/blob/3d6960912f418e4bbee089771b7c9aae3d2177df/extensions/wikidata/module/langs/translation-fr.json#L1-L5

I guess the glossary, a 5th composant, could also be transfered in our repo? But where? Yours to find out and propose! ;-)
Regards, Antoine

@antoine2711 Since it will be imported to weblate I guess I will have to present it in json format ?

@WaltonG: from what I understand, we currently have 4 Weblate « composant » that get transfered in our GH repo in 4 different locations. And yes, they are in JSON. (Here, one composant in one language, french.)
https://github.com/OpenRefine/OpenRefine/blob/3d6960912f418e4bbee089771b7c9aae3d2177df/extensions/wikidata/module/langs/translation-fr.json#L1-L5

I guess the glossary, a 5th composant, could also be transfered in our repo? But where? Yours to find out and propose! ;-)
Regards, Antoine

@antoine2711 My proposal is to add a glossary folder in docs

Why do we need to have the glossary in the repo anyway? Can we not keep it in Weblate?

After looking into it a bit more deeply on Weblate itself: I agree that the glossary needs to be maintained in Weblate through its own end-user interface.
Work on that glossary may need social/community support, rather than a technical solution (IMO it would for instance be good to have a forum / online space where translators discuss terms and workflows among each other). I suggest that we keep this issue open, for visibility, as getting a functioning glossary for translators remains a valid request.

Why do we need to have the glossary in the repo anyway? Can we not keep it in Weblate?

@wetneb: In order to see it's evolution? Keep a history? I don't believe Weblate gives that to us.
Regards,
Antoine

As you both see fit!


why the logs are getting to stderr

Hi,
I run my etcd server through supervisor ( http://supervisord.org/ ) , here is the config:
[program:etcd]
command=/home/vagrant/etcd-v2.2.2-linux-amd64/etcd --listen-client-urls='http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001' --advertise-client-urls='http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001' --debug=true --cors='*'
directory=/home/vagrant/etcd-v2.2.2-linux-amd64/
autostart=true
autorestart=true
stopsignal=KILL
killasgroup=true
stopasgroup=true
stdout_logfile=/var/log/supervisor/%(program_name)s-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)s-stderr.log
user=vagrant
environment=

Everything is pretty usual, except the thing, that all the etcd output goes to the etcd-browser-stderr.log file.
I don't think that it is supervisor issue, because all of the other applications are passing the output to the "correct" output stream.
Any thoughts if it is correct behaviour?
Regards,

What is your expected behaviour? What is the "correct" output stream?
On Wed, Dec 23, 2015 at 10:25 AM, Pavel<EMAIL_ADDRESS>wrote:

Hi,
I run my etcd server through supervisor ( http://supervisord.org/ ) ,
here is the config:
[program:etcd]
command=/home/vagrant/etcd-v2.2.2-linux-amd64/etcd --listen-client-urls='http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001' --advertise-client-urls='http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001' --debug=true --cors='*'
directory=/home/vagrant/etcd-v2.2.2-linux-amd64/
autostart=true
autorestart=true
stopsignal=KILL
killasgroup=true
stopasgroup=true
stdout_logfile=/var/log/supervisor/%(program_name)s-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)s-stderr.log
user=vagrant
environment=
Everything is pretty usual, except the thing, that all the etcd output
goes to the etcd-browser-stderr.log file.
I don't think that it is supervisor issue, because all of the other
applications are passing the output to the "correct" output stream.
Any thoughts if it is correct behaviour?
Regards,
—
Reply to this email directly or view it on GitHub
https://github.com/coreos/etcd/issues/4052.

I think debug messages should get to regular stdout, because those are not errors.

stderr is not just for errors, it's for any diagnostic information. With all CoreOS projects we try to follow the Unix tool approach of results going to stdout and everything else going to stderr. In the case of etcd it so happens that there's no "results" to report to stdout in most cases, but for example etcdctl will write user-/machine-parseable information to stdout and any other diagnostics (including logs) to stderr. AIUI all logging should be written to a single stream, and the logging framework should provide the necessary information for users to subsequently partition that information as they wish (or alternatively, the tool should expose configuration to filter at runtime, e.g. log levels). I can't really speak to why elasticsearch/logstash act that way, but IMO they're doing it wrong :-)
References/prior art:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/stdin.html ("diagnostic output")
https://github.com/golang/glog/blob/master/glog.go#L42
http://monkey.org/~marius/unix-tools-hints.html
http://stackoverflow.com/questions/4919093/should-i-log-messages-to-stderr-or-stdout
I would suggest either redirecting stderr to stdout, or filing a feature request if you'd like to have more configurability in the logging options.

@jonboulle
Thanks for the detailed explanation, I agree with your arguments.  I think redirect output option is quite ok.
Regards,


Rename license field to be the standard apache-v2, and also update maintainers

Showing @modrake how to start off a contribution to the cookbook :) Thanks folks!


lxtask: 0.1.9 -> 0.1.10

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/lxtask/versions.
meta.description for lxtask is: "Lightweight and desktop independent task manager"
meta.homepage for lxtask is: "https://wiki.lxde.org/en/LXTask"
meta.changelog for lxtask is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.1.10 with grep in /nix/store/21zkz6pkmnnw1y2fcgm91j35pspx8ak8-lxtask-0.1.10

directory tree listing: https://gist.github.com/3c051c28fb295eb11bf096546d9c5e13

du listing: https://gist.github.com/8447561a0160e6e7f3452690d00b371b

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
lxtask

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/21zkz6pkmnnw1y2fcgm91j35pspx8ak8-lxtask-0.1.10 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A lxtask https://github.com/r-ryantm/nixpkgs/archive/809c4f6588feb120c500e161a7b079290f84cee7.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/21zkz6pkmnnw1y2fcgm91j35pspx8ak8-lxtask-0.1.10
ls -la /nix/store/21zkz6pkmnnw1y2fcgm91j35pspx8ak8-lxtask-0.1.10/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review 1

1 package built:

lxtask

Maintainer pings
cc @romildo for testing.

Result of nixpkgs-review pr 102585 run on x86_64-darwin 1

1 package built:

lxtask


Feat/update redux store package to afj 0.4.x

Replaces this PR as Jim has left and I don't have write access to repo.

Also closes #204

Codecov Report

Merging #207 (343e0e7) into main (3712cb2) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #207   +/-   ##
=======================================
  Coverage   86.78%   86.78%
=======================================
  Files          24       24
  Lines        1241     1241
  Branches      287      277   -10
=======================================
  Hits         1077     1077
  Misses        150      150
  Partials       14       14

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@blu3beri unsure why this is fialing as it is https://github.com/hyperledger/aries-framework-javascript-ext/actions/runs/4628714463/jobs/8188133138

The createAsyncAgentThunk doesn't correctly represent the types of the modules. Is that me or do we need to update that in this pr?


feat: Angular support

Hi, I would be happy to contribute to swipers Angular support.
Especially as the most popular Angular swiper library has End of life notice.
This PR far away from to be ready. But many functionalities implemented, I'm trying to have the same API as React, Vue, and Svelte.
There are a lot of types that were missing, I've added them, but without description (as I don't know what to write there).
Also right now I'm importing everything from the build directory, as a temporary solution.
Currently working on virtual slides implementation.
I would like to know if it's welcomed and if yes I would really appreciate your help and review. I understand if you will not want to include it, I'll make from it a standalone wrapper then.

Thanks, I am for it with all hands, it was requested a lot of times. But again, I have close to 0 experience with Angular, and if you will help with issues with it in future then let's make it.
As I understood Angular uses template rendering which in my understanding is not so flexible as in React/Vue where they use render functions, and allow such powerful features as cloning and duplication children slides (for example for Virtual Slides and Loop mode). If it is true, then you probably should use Svelte's version for this as a starting point, it is much more simpler with less features.

Yes, of course, I'll help to maintain the Angular version. Meantime I'm trying to help in issues too, in order to understand swiper's internal code & potential issues better.
I'll make a separate PR for types, so you will be able to check if there are mistakes there / fulfill descriptions and etc.
I'm looking at Svelte and a bit at Vue as an example. Yes, Angular templating less flexible than Vue & React. But currently, I'm trying to implement virtual slides as it is in Vue (have some good progress with it).
Will be glad if you will play with the demo of Angular, and say what's missing or should be implemented another way in order to make some kind of roadmap.

Hi, I've made some progress with virtual slides. Looks like it works.
Can you play with the demo and share your thoughts?
npm run build:dev (currently angular uses build folder for types and etc)
npm run angular:dev

Hi, @vltansky
is it useable now? or soon?
I am doing a project and trying to use swiperjs but it's really hard to work with for now.
and really thank you for doing it for angular.
respect!

@wilson-young no, it's under development. You shouldn't use it right now.
For now better use this: https://github.com/zefoy/ngx-swiper-wrapper

@wilson-young no, it's under development. You shouldn't use it right now.
For now better use this: https://github.com/zefoy/ngx-swiper-wrapper

Ok sir,
thanks for hard work
can't wait to see official angular supported Swiper

@nolimits4web I've made some progress with virtual slides. Looks like it works.
Can you play with the demo and share your thoughts?

@vltansky thanks, I will have time to look deeper on a weekend

Hey @vltansky, the demo looks good 👍 The only thing I noticed in Virtual demo is that Slides are missing -prev/-active/-next classes. I guess you need to listen for _slideClass event to update it correctly like it is done in React/Vue/Svelte

Okay, will work on this in nearest days.
I'm importing everything from build folder right now. I need or to import somehow from src, or to move angular to build folder. So the imports will be relative. Do you have any idea for the best solution?

I need or to import somehow from src, or to move angular to build folder. So the imports will be relative. Do you have any idea for the best solution?

Good question 😄 Doesn't it work with relative imports inside of src? I mean if you will import Swiper core from same src folder?

Hey @vltansky, the demo looks good 👍 The only thing I noticed in Virtual demo is that Slides are missing -prev/-active/-next classes. I guess you need to listen for _slideClass event to update it correctly like it is done in React/Vue/Svelte

Done. Will work now on loop mode. Is loop the last thing to finish or am I missing something?
I will leave imports for the end.

@vltansky Yes, loop is left. Also check it works/re-renders/updated on breakpoint change. And slideData like https://swiperjs.com/react/#swiperslide-render-function or https://swiperjs.com/vue/#swiperslide-slot-props or https://swiperjs.com/svelte/#swiperslide-slot-data (if something similar is achievable with Angular)

slideData done.
Not sure about something. Take a look on example.
Do you prefer providing all variables as slideData / every variable separately / both (now both) ?

    <swiper-slide>
      <ng-template swiper-slide-content let-active="isActive">
        test 1 {{ active ? 'active' : 'nope' }}
     </ng-template>
    </swiper-slide>
    <swiper-slide>
      <ng-template swiper-slide-content let-somename="isActive" let-next="isNext">
        test 2 {{ somename ? 'active' : 'nope' }} {{ next }}
     </ng-template>
    </swiper-slide>
    <swiper-slide>
      <ng-template swiper-slide-content let-active="isActive" let-data="slideData">
        test 3 {{ active ? 'active' : 'nope' }} {{ data.isNext }}
     </ng-template>
    </swiper-slide>

Let's keep it in align with other frameworks and just use single data object, like this I guess:
<ng-template swiper-slide-content let-data="slideData">
        test 3 {{ data.isActive ? 'active' : 'nope' }} {{ data.isNext }}
</ng-template>

Got stuck with the loop.
Looks like you cant clone <ng-content> in Angular
https://stackoverflow.com/questions/51104405/angular-cloning-ng-content-elements-and-its-functionality
Although works fine with <ng-template>, but that's forces to use this markup:
<swiper>
 <swiper-slide>
     <ng-template swiper-slide-content let-data>1 {{data.isNext}}</ng-template>
   </swiper-slide>
 <swiper-slide>
     <ng-template swiper-slide-content let-data>2 {{data.isNext}}</ng-template>
  </swiper-slide>
</swiper>

Does somebody have any ideas?

but you can see in the example that buttons on duplicated slides are not working.

Yes, this is because Swiper core duplicated slides and it has no idea (or angular) about those buttons. Svelte also doesn't allow to duplicate elements so I left duplication to core.
I think if it is possible in Angular with a bit of extra markup then let's better go with it as it should work better

But do we want to force using ng-template? Or just to warn that loop is working only with ng-template?

@nolimits4web how loop should work with virtual slides?
https://stackblitz.com/edit/swiper-demo-40-virtual-slides-dn7613?file=index.html

But do we want to force using ng-template? Or just to warn that loop is working only with ng-template?

I think we should use ng-template only when loop enabled and cover it in docs, that with loop mode we need to use ng-template

Maybe better to force the use of ng-template to prevent issues with loop (I guess this is a popular option)?
This kind of markup is possible:
<swiper>
    <ng-container *ngFor="let slide of virtualSlides">
      <ng-template swiperSlide let-anyName>Slide {{ slide }} {{anyName.isActive}}</ng-template>
    </ng-container>
    <ng-template swiperSlide let-data>Slide {{data.isActive}}</ng-template>
    <ng-template swiperSlide let-slideData>Slide {{slideData.isActive}}</ng-template>
</swiper>

The only downside that you cant use *ngFor on ng-template, so you will need to wrap it in ng-container.

To be honest not sure, but having <swiper-slide> just looks more clean for me (for the case we don't use loop)

It is cleaner, but I think ng-template is better here:

Will prevent issues with loop mode
slideData are available (no need for extra ng-template)
As a result of above 2, as a user you don't need to remember markups for all use cases

I just pushed a version with following markup:
<swiper
    #swiperRef
    [navigation]="navigation"
    (swiper)="log('swiper')"
    (slideChange)="log('slideChange')"
    [slidesPerView]="3"
    [spaceBetween]="50"
    [scrollbar]="scrollbar"
    [loop]="true"
    [pagination]="{ type: 'fraction' }"
  >
    <ng-template swiperSlide>Best slide ever 1</ng-template>
    <ng-template swiperSlide>Best slide ever 2</ng-template>
    <ng-template swiperSlide>Best slide ever 3</ng-template>
    <ng-container *ngFor="let slide of slides>
      <ng-template swiperSlide let-data>
        {{ slide }} / active: {{ data.isActive }} / next: {{ data.isNext }}</ng-template
      >
    </ng-container>
  </swiper>

@nolimits4web  I'm not sure about something.
When breakpoint param changes I was just updating param value on swiperRef as in vue/reacts/svelte.
But nothing happened, slider didnt change layout (i changed slidesPerView). swiperRef.update() didnt help.
In the end the solution I found is:
this.swiperRef.currentBreakpoint = null;
this.swiperRef.setBreakpoint();

How is it working in other frameworks (is it working?)?
If yes what am I missing?

As for me, it looks like we can plan some alpha/next tag release soon?
Would be happy if you could take a closer look and see if something important missing.
Also, we should decide about markup.

@nolimits4web I need help here with breakpoints.
When breakpoint param changes I was just updating param value on swiperRef as in vue/reacts/svelte.
But nothing happened, slider didnt change layout (i changed slidesPerView). swiperRef.update() didnt help.
In the end the solution I found is:

Ok, it can be a little bit tricky. So here is how Core version works.

on window resize it recalculates and update swiper parameters based on breakpoint (window size)
on same resize handler swiper internals check parameters and update layout/slides's sizes, grid, etc. based on parameters

This may not work correctly in React/Vue/Svelte, because they don't know (don't watch for internal parameters) and can override something that was set by Core based on swiper props (let's call it external parameters).
In Swiper React/Vue/Svelte i am using a hack forcing to update swiper component right breakpoints changes. I have a dummy internal state property breakpointChanged (like here) I just update this property within _beforeBreakpoint event (like here). This property does nothing and doesn't do anything but it is enough to trigger update of component in React/Vue/Svelte versions.

Also, we should decide about markup.

If it is a common practice in Angular land, then let's go with unified <ng-template> syntax for all the cases.

As for me, it looks like we can plan some alpha/next tag release soon?
Would be happy if you could take a closer look and see if something important missing.

I think most of things looks good. So we can just release it, let's say, as 6.4.0 update (without beta/next tag)

I think we are talking about different things in the breakpoints subject.
I don't have a problem updating the view. And it works fine when I'm changing the breakpoint that I'm not on currently.
See JSON in the page footer.
Example changing 768 breakpoints (we are initially at >1024):
https://skr.sh/v5VjUL3nbBZ?a
Here is an example of changing the current breakpoint (in the env of the video I'm uncommenting two lines that made this work for me)
https://skr.sh/v5VRHgiWzdl?a

If it is a common practice in Angular land, then let's go with unified  syntax for all the cases.

I think it's fine. Anyway, we always can add this functionality if it will be demanded.

I think most of things looks good. So we can just release it, let's say, as 6.4.0 update (without beta/next tag)

I still have problems with imports. I've tried to solve it with tsconfig path, but when using this as a node_module getting this warning from webpack:
Warning: Entry point 'angular' contains deep imports into 'D:/projects/tailwind-test/node_modules/swiper/types/components/a11y', 'D:/projects/tailwind-test/node_modules/swiper/types/components/autoplay', 'D:/projects/tailwind-test/node_modules/swiper/types/components/controller', 'D:/projects/tailwind-test/node_modules/swiper/types/components/effect-coverflow', 'D:/projects/tailwind-test/node_modules/swiper/types/components/effect-cube', 'D:/projects/tailwind-test/node_modules/swiper/types/components/effect-fade', 'D:/projects/tailwind-test/node_modules/swiper/types/components/effect-flip', 'D:/projects/tailwind-test/node_modules/swiper/types/components/hash-navigation', 'D:/projects/tailwind-test/node_modules/swiper/types/components/history', 'D:/projects/tailwind-test/node_modules/swiper/types/components/keyboard', 'D:/projects/tailwind-test/node_modules/swiper/types/components/lazy', 'D:/projects/tailwind-test/node_modules/swiper/types/components/mousewheel', 'D:/projects/tailwind-test/node_modules/swiper/types/components/navigation', 'D:/projects/tailwind-test/node_modules/swiper/types/components/pagination', 'D:/projects/tailwind-test/node_modules/swiper/types/components/scrollbar', 'D:/projects/tailwind-test/node_modules/swiper/types/components/thumbs', 'D:/projects/tailwind-test/node_modules/swiper/types/components/virtual', 'D:/projects/tailwind-test/node_modules/swiper/types/components/zoom', 'D:/projects/tailwind-test/node_modules/swiper/types/swiper-events'. This is probably not a problem, but may cause the compilation of entry points to be out of order.

Will look for another solution...

Ok, you mean to change breakpoints object. Actually React/Vue/Svelte doesn't support it at all :) And this:
this.swiperRef.currentBreakpoint = null;
this.swiperRef.setBreakpoint();

yes, looks good to me in this case. I guess we need to add it to the React/Vue/Svelte as well then.
As for imports, I guess this can be a solution:

build project to package/ with the imports config that works
add scripts/build-angular.js node script that will read angular package files and fix/change the imports

Can this work?

Ok, done as you proposed. Seems ready for me..?

Didn't work.. getting this error when trying to use swiper/angular:
Error: The target entry-point "angular" has missing dependencies:
 - ../core

I actually searched for the deep imports subject, and it looks like native script using deep imports just the same way:
Warning: Entry point '@nativescript/angular' contains deep imports into '/yourproject/node_modules/@nativescript/core .......

Maybe the deep imports solution is not so bad?
https://github.com/NativeScript/nativescript-angular/wiki/Updating-and-developing-for-@nativescript-angular-v9-with-Ivy-or-without#problem-2

Imports - done.
as for me, it's ready to be merged.
Take a look at the last commits, I needed to add few files (as types.d.ts, swiper-angular.ts, core/index.js), hope it's fine.
I believe that it's not perfect, but good enough for the first version.

Merged 🎉

Merged 🎉

so is it usable now? haha
btw thanks for hardwork!!!

It is published on npm as 6.4.0 version

Tried to use 6.4.0 version: getting warning about deep imports from webpack again...
Warning: Entry point 'angular' contains deep imports into 'D:/projects/tailwind-test/node_modules/swiper/types'. This is probably not
a problem, but may cause the compilation of entry points to be out of order.

Although now only one. Don't understand how I missed it yesterday. It's not critical, everything works. But I'll make a PR with a fix to this.

@nolimits4web

Do we want to include CSS files with component? or developers should import it manually like in skeleton-elements?

I think we should support some of the ngx-swiper-wrapper functionality, so it will be easier to migrate for current users and also it just looks useful?
I propose to add:

global config

import { SwiperModule } from 'swiper/angular';
import { SWIPER_CONFIG } from 'swiper/angular';
import { SwiperConfigInterface } from 'ngx-swiper-wrapper';

const DEFAULT_SWIPER_CONFIG: SwiperConfigInterface = {
  direction: 'horizontal',
  slidesPerView: 'auto'
};

@NgModule({
  ...
  imports: [
    ...
    SwiperModule
  ],
  providers: [
    {
      provide: SWIPER_CONFIG,
      useValue: DEFAULT_SWIPER_CONFIG
    }
  ]
})

setting params via config, input&output slideIndex variable [(index)], disabled state

<swiper [config]="config" [(index)]="index" [disabled]="false"></swiper>

functions:

swiper()                          // Returns reference to the Swiper instance.

init()                            // Starts Swiper (when init set to false).
update()                          // Updates Swiper elements / classes / etc.

getIndex(real?)                   // Returns the active or real slide index.
setIndex(index, speed?, silent?)  // Runs transition to slide with given index.

nextSlide(speed?, silent?)        // Runs transition to the next slide index.
prevSlide(speed?, silent?)        // Runs transition to the previous slide index.

stopAutoplay(reset?)              // Stops and optionally resets the autoplay.
startAutoplay(reset?)             // Starts and optionally resets the autoplay.

What do you think?

Do we want to include CSS files with component? or developers should import it manually like in skeleton-elements?

I think having it separated gives a bit more flexibility like in React/Svelte/Vue versions, especially when we can import only styles for selected modules (Navigation, Pagination) and not the whole bundle

I think we should support some of the ngx-swiper-wrapper functionality, so it will be easier to migrate for current users and also it just looks useful?

You mean to extend defaults for all Swipers? To be honest I am not sure it is a pretty common/popular usecase. And it can be done much easier with core:
import Swiper from 'swiper';

Swiper.extendDefaults({
  direction: 'vertical',
  // ...
}),

I think having it separated gives a bit more flexibility like in React/Svelte/Vue versions, especially when we can import only styles for selected modules (Navigation, Pagination) and not the whole bundle

Ok

You mean to extend defaults for all Swipers? To be honest I am not sure it is a pretty common/popular usecase. And it can be done much easier with core:

Make sense.
What about the rest of things?

setting params via config, input&output slideIndex variable [(index)], disabled state

<swiper [config]="config" [(index)]="index" [disabled]="false"></swiper>

functions:

swiper()                          // Returns reference to the Swiper instance.

init()                            // Starts Swiper (when init set to false).
update()                          // Updates Swiper elements / classes / etc.

getIndex(real?)                   // Returns the active or real slide index.
setIndex(index, speed?, silent?)  // Runs transition to slide with given index.

nextSlide(speed?, silent?)        // Runs transition to the next slide index.
prevSlide(speed?, silent?)        // Runs transition to the previous slide index.

stopAutoplay(reset?)              // Stops and optionally resets the autoplay.
startAutoplay(reset?)             // Starts and optionally resets the autoplay.

should we move the discussion to issue?


Epic: descope the Submariner operator

Epic Description
The Submariner operator currently has wide-ranging privileges. It doesn’t need to be able to access anything outside the namespaces it manages, so this should be reduced. See https://hackmd.io/wVfLKpxtSN-P0n07Kx4J8Q for background.
Depends on https://github.com/submariner-io/submariner-operator/issues/1105
RBAC generation will affect this, we should wait to have a better idea of that before starting work on designing this.
Acceptance Criteria
The operator is de-scoped, ideally with no ClusterRole, at minimum with justifications for every permission in its ClusterRole.
See also https://github.com/submariner-io/submariner-operator/issues/1105 which overlaps with this; auto-generation should be used if the SDK supports it for namespace-scoped Roles.
Definition of Done (Checklist)

[ ] Code complete
[ ] Relevant metrics added
[ ] The acceptance criteria met
[ ] Unit/e2e test added & pass
[ ] CI jobs pass
[ ] Deployed using cloud-prepare+subctl
[ ] Deployed using ACM/OCM addon
[ ] Deploy using Helm
[ ] Deployed on supported platforms (for e.g kind, OCP on AWS, OCP on GCP)
[ ] Run subctl verify, diagnose and gather
[ ] Uninstall
[ ] Troubleshooting (gather/diagnose) added
[ ] Documentation added
[ ] Release notes added

Work Items

This doesn’t have a corresponding EP yet; I don’t think it’s worth going into detail until https://github.com/submariner-io/enhancements/pull/105 is implemented, since that should address a number of the issues involved in descoping the operator (or help determine whether it is actually possible to do so).

Talking about this on the PR scrub, it seems it has two serial dependencies and would be tough to finish this release. Moving back to the backlog.

This doesn’t have a corresponding EP yet; I don’t think it’s worth going into detail until #105 is implemented, since that should address a number of the issues involved in descoping the operator (or help determine whether it is actually possible to do so).
I will revisit this once #105 is done, and go through the exception process if the epic remains relevant.

@skitt - Do you have plans to add a EP for this?

The key difference between this and the RBAC work is that once we make the RBAC changes, we also need to decide if we need to configure the operator to be able to watch same-namespace, other-namespace, or all-namespaces.

This enhancement has been covered by the recent work to reduce RBAC permissions for all the components.


chore: bump version to 0.5.2

Pull Request doc
Purpose
Bump version to 0.5.2
Time estimate
10sec

Do we want to update the version of powersimdata in requirements.txt and setup.cfg to be consistent with the Pipfile? Doing that in setup.cfg specifically would require the most recent powersimdata for users doing pip install postreise

Do we want to update the version of powersimdata in requirements.txt and setup.cfg to be consistent with the Pipfile? Doing that in setup.cfg specifically would require the most recent powersimdata for users doing pip install postreise

Thanks for pointing that. I went too fast.

Do we want to update the version of powersimdata in requirements.txt and setup.cfg to be consistent with the Pipfile? Doing that in setup.cfg specifically would require the most recent powersimdata for users doing pip install postreise

Thanks for pointing that. I went too fast.

Done


Add template projet to verify automation changes

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] MIT license headers are included in each file.

My PR also includes a template but for mgmt plane packages. I suppose we should keep the templates together and away from the real SDKs to reduce the confusions.
DotNet SDK keeps the template for data plane in the sdk directory, but template for mgmt plane in eng directory. But I suppose it is because the template for mgmt plane is not ready. It will make more sense if both of the templates can be found in the same directory.
Also I added a suffix for all the files in the template so that the template itself will not be indexed by pkg.go.dev. Do you think this is a concern?


Systemd fails to start when cgroups v2 is enabled

#logs:
Processing fstab with mount -a failed.
Unpacking root file system...
184MiB 0:00:06 [26.5MiB/s] [========================================================================>] 100%
Activating nix configuration...
Copying /usr/share/applications
Copying /usr/share/icons
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
setting up /etc...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Cleaning up installer files...
finding garbage collector roots...
removing stale link from '/nix/var/nix/gcroots/auto/zxi8v969la5n36bg7gs016wgcif4qjhp' to '/build/nix/var/nix/profiles/system-1-link'
removing stale link from '/nix/var/nix/gcroots/auto/6yfbrv8wfkyl40wq6827lamr9m29z7wg' to '/build/nix/var/nix/profiles/per-user/root/channels-1-link'
deleting garbage...
deleting '/nix/store/m0qmllywgy9wl4ia7vvpz7p53kzxv681-busybox-1.34.1'
deleting '/nix/store/3y5hdyv6n1dbkfg7x3nn59hzhpwj51bl-installer.sh'
deleting '/nix/store/svw89j47vr3h792f75nfgh5x9s48rn0w-pv-1.6.20'
deleting '/nix/store/4z8x8wq942jxghp1261lc5hajj7q3fx3-tarball'
deleting '/nix/store/pjsz3xk31a6w0z22n0yiir0cjz6w1lx1-wsl-prepare'
deleting '/nix/store/grqvhmymidyp0si0gga824jkwi4lfpjn-source'
deleting '/nix/store/trash'
deleting unused links...
note: currently hard linking saves -0.00 MiB
6 store paths deleted, 185.42 MiB freed
Optimizing store...
5.05 MiB freed by hard-linking 3499 files
Starting systemd...

Can you send me the sha256sum of your installer tarball, please?

stray@LAPTOP-QHKG7T54:/mnt/c/Users/stray/Downloads$ sha256sum nixos-wsl-installer-fixed.tar
d9e206817a77093341d4563605625b9dd7a783ad91f69f53f3ca3b3f3ac48df8  nixos-wsl-installer-fixed.tar

Sorry, I just closed it by accident.

I hadn't tried a gunzipped tarball before, but i'm not able to reproduce the issue right now (with identical hashes). Does the problem persist when you restart the WSL VM (wsl --shutdown)?

stuck on set up /etc.
logs:

stray in ~\Downloads λ wsl --import NixOS D:\NixOS .\nixos-wsl-installer-fixed.tar
正在导入，这可能需要几分钟时间。
操作成功完成。
stray in ~\Downloads λ wsl -d NixOS
Processing fstab with mount -a failed.
...(same as above)
5.05 MiB freed by hard-linking 3499 files
Starting systemd...
^C
stray in ~\Downloads λ wsl --shutdown
stray in ~\Downloads λ wsl -d NixOS
Copying /usr/share/applications
Copying /usr/share/icons
setting up /etc...

Interesting, that is actually the same step as before (starting systemd; syschdemd does not have log output for that (yet))

I can go into the shell with wsl -d nixos -e sh but basic utils like ls, cat, vi is missing so I can't get any useful information from it

Try running /nix/var/nix/profiles/system/activate and source /etc/set-environment. That should make the nix environment available

Awesome! So how to start systemd manually then?

Systemd needs to run as PID 1, so the only way to properly start it is to run syschdemd.sh (the path is in /etc/passwd if you need it, but that does the same as opening a regular shell). Now that you are inside the nix environment, you should be able to get systemds logs using journalctl

systemd.pid exists but no corresponding process named systemd exists.

No journal files.

I tried on my (working) installation and did not get any journal entries outside of the namespace either...

Also, no systemd exists in my PATH.

That's not a problem. Systemd isn't in the path of most distros that use it, because it is executed as init

[root@nixos:/run/current-system/systemd/lib/systemd]# bash -x /nix/store/qml7bm85gcvfgn1gpryycbj6hrbnrapa-syschdemd/bin/
syschdemd

set -e
sw=/nix/var/nix/profiles/system/sw/bin
++ /nix/var/nix/profiles/system/sw/bin/readlink -f /nix/var/nix/profiles/system
systemPath=/nix/store/5sdc62vp6xn0zhxfxsljxw9fgn3f9amg-nixos-system-nixos-21.11.20220325.d89f18a
[[ 0 -ne 0 ]]
'[' '!' -e /run/current-system ']'
'[' '!' -e /run/systemd.pid ']'
start_systemd
/run/wrappers/bin/umount /proc/sys/fs/binfmt_misc
PATH=/run/current-system/systemd/lib/systemd:/nix/store/qif4jkzgrv09w9xyjvj4mn3sbz6829hw-e2fsprogs-1.46.5-bin/bin:/nix/store/irvl5f8z710fcxdkmrbasgy0qjv6iyrc-dosfstools-4.1/bin
LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
/nix/store/d1v0v340rlvc36x3z4yvh7s04m8hlrj6-daemonize-1.7.8/bin/daemonize /run/current-system/sw/bin/unshare -fp --mount-proc /nix/store/5p3n24in6is3yzpvp7d29vzpbrh88fgb-systemd-wrapper.sh
/run/current-system/sw/bin/pgrep -xf systemd
status=1
[[ 1 -gt 0 ]]
/nix/var/nix/profiles/system/sw/bin/sleep 1
status=0
/nix/var/nix/profiles/system/sw/bin/nsenter -t 196 -p -m -- /nix/var/nix/profiles/system/sw/bin/systemctl is-system-running -q --wait
status=1
[[ 1 -gt 0 ]]
/nix/var/nix/profiles/system/sw/bin/sleep 1
status=0

Can you get into the namespace with /nix/var/nix/profiles/system/sw/bin/nsenter -t 196 -p -m nix/var/nix/profiles/system/sw/bin/bash?

Here I run the commands in my shell manually.
[root@nixos:~]# PATH=/run/current-system/systemd/lib/systemd:/nix/store/qif4jkzgrv09w9xyjvj4mn3sbz6829hw-e2fsprogs-1.46.5-bin/bin:/nix/store/irvl5f8z710fcxdkmrbasgy0qjv6iyrc-dosfstools-4.1/bin
[root@nixos:~]# LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
[root@nixos:~]# /run/current-system/sw/bin/unshare -fp --mount-proc /nix/store/5p3n24in6is3yzpvp7d29vzpbrh88fgb-systemd-wrapper.sh
/nix/store/5p3n24in6is3yzpvp7d29vzpbrh88fgb-systemd-wrapper.sh: line 2: mount: command not found
[root@nixos:~]# mount
bash: mount: command not found

Can you get into the namespace with /nix/var/nix/profiles/system/sw/bin/nsenter -t 196 -p -m nix/var/nix/profiles/system/sw/bin/bash?

What does 196 mean? The PID of something?

That is the systemd PID from outside the namespace

It seems that mount is not in the path.

[root@nixos:~]# /run/current-system/sw/bin/unshare -fp --mount-proc /nix/store/5p3n24in6is3yzpvp7d29vzpbrh88fgb-systemd-wrapper.sh
/nix/store/5p3n24in6is3yzpvp7d29vzpbrh88fgb-systemd-wrapper.sh: line 2: mount: command not found

It is on my installation though (as before, it's a fresh install from the exact same tar. All the nix stores have the same hashes too) - but it's in /run/wrappers/bin. I'm currently trying to figure out, where that comes from

That is the systemd PID from outside the namespace

Ok, but systemd is not running. so the result is

nsenter: cannot open /proc/196/ns/pid: No such file or directory

Does /run/wrappers/bin/mount exist on your installation?

Yes

I try to run systemd manually but got this:

[root@nixos:~]# unshare --mount-proc /run/current-system/systemd/lib/systemd/systemd
Explicit --user argument required to run as user manager.

Maybe adding /run/wrappers/bin to PATH before the unshare command helps?
Also: Can you give me the output of uname -a as well as your Windows version/build number (from winver.exe)
Mine are:
Linux hurricane <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 GNU/Linux
Version 21H2 (Build 22000.593)

you are missing the -fp options on the unshare command (those make systemd run as PID 1)

But if I fork it, how can I get logs?

WSL Version: 2
Locale: zh_CN
Release Install Date: Thu Apr  7 17:57:53 CST 2022
Branch: ni_release
Build: 22593
Full Build: 22593.1.amd64fre.ni_release.220402-1100
Display Scaling: 1.5
Windows Theme: light
Windows Uptime: 0d 5h 49m
WSL Uptime: 0d 0h 52m
WSL Release: Ubuntu Jammy Jellyfish (development branch)
WSL Kernel: Linux <IP_ADDRESS>-microsoft-standard-WSL2
Packages Count: 1754

I'd be really grateful if you figured that out, because I have not figured out how to do that...
For most cases it's sufficient to get the logs through journalctl, but that wont' work if systemd does not start

Thanks, I'm installing a VM with your Windows build now, to see if that causes the problem

Maybe the locale? I'm changing my system to English.

It's worth a shot I guess

Which SKU are you using Home/Home China/Pro? (So that I can grab the right ISO)

Nothing different. I just reimported the distro and start it but with no luck. 😅

PRO edition

Well, I think I've found out the reason. I've added a kernel command line for enabling cgroup v2. After removing it, the issue was resolved. Sorry for your time.

[wsl2]
kernelCommandLine = bonding.max_bonds=0 dummy.numdummies=0 fb_tunnels=none systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=named

Oh well xD. Glad that you could fix it! Is cgroups v2 going to replace v1? If yes, syschdemd should probably be patched to support v2 as well

Podman requires cgroup v2. So I enabled it.

So it should be fixed

BTW, by adding a option to .wslconfig you can open a debug console for wsl.

debugConsole = true

For those who have this issue, try shutting down your other distros with wsl --shutdown
after that you can now run wsl -d NixOS
This seems to work for me.

@Jumail thanks, this worked!
@nzbr Just to point out that this occurs on version 22.05 only, I wasn't able to replicate this on 21.11. Maybe a small note on the README would help people out with this issue?

I am running into this. There are no other distros installed, so wsl --shutdown didn't help. It's just stuck trying to start systemd

@r351574nc3 I had the same issue. Downgraded to 21.11 with the fixed version, and systemd didn't get stuck.
On 22.05, it is a problem. You could try restarting the LxssManager service from the Task Manager.

I had the same issue (systemd hanging on first boot). It was my first wsl distro installation. wsl --shutdown did not help, but restarting my computer fixed it.

I had the same issue with the first boot hanging at Starting systemd.... Restarting WSL did not help, I didn't try restarting my computer. I installed the fixed 21.11 version and then upgraded following the instructions in the 22.05 release, and that seems to have worked.
Here's the output from wsl -v:
WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>
WSLg version: 1.0.45
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.755

@nzbr Curiously, if I clone the repo fresh and build it, then import it, then systemd starts normally. Seems like only pre-built releases are affected.

Is this still an issue on recent WSL versions? cgroupv2 should be default now.

I don't think so, closing


Submariner VXLAN cable mtu

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html
We use submariner to inter-connect kubernetes clusters running in different AWS regions. Internally, within the region, we do use Jumbo frames. However, on the inter-region vpc peering, the MTU is capped at 1500 due to AWS limitations (see link above).
By default, submariner defaults the vxlan-tunnel's mtu to the default host's interface, which is 9001-50=8951. However, we should really set it to 1500-50=1450.
I did some iperf tests and the performance is quite horrible with the default mtu of 8951.  Or would you suggest changing the default's interface MTU to 1500 and let path mtu discovery do the rest internally?
Thank you.

Thanks for validating and reporting the observations @m4ce.

By default, submariner defaults the vxlan-tunnel's mtu to the default host's interface, which is 9001-50=8951.

That's correct. Currently, Submariner relies on the default host interface to calculate the tunnel interface MTU

Is there any way for us to override the MTU on the vxlan cable driver?

Currently, this is not supported but on the long-term roadmap, we have plans within Submariner to auto-discovery the MTU and configure it on the interfaces.

Or would you suggest changing the default's interface MTU to 1500 and let path mtu discovery do the rest internally?

For now, please take this approach as we do not have other options.

we have plans within Submariner to auto-discovery the MTU and configure it on the interfaces

Do we have an issue to track this? If not, should we open one and close this?

Do we have an issue to track this? If not, should we open one and close this?

@dfarrell07 I opened a new issue to track this - https://github.com/submariner-io/submariner/issues/1641
So, we can close this one.


[Feature] Allow loading of injected/preamble code from files

Idea
Allow loading of injection code from files.  Currently code for some languages (ex: Rust) can be prefixed by adding it to a text box in the settings.  This makes editing that code error-prone and difficult.  Further, the code is not a normal file, and cannot be easily backed up or version controlled.  Changing this to an optional path would fix that.

Are you able to make a separate file then import it inside the settings text box? Also, if you have a plugin like obsidian git, it should backup and version all your settings.

All of that is possible, and it covers the utility I need.  I still weakly claim that it would be a bit easier to just point it to a file path.

Do you have an example of where this might be easier?

@dpowers You can use the normal import mechanism of each language to include any arbitrary bit of code in your code blocks. How would a new feature be better than the default mechanisms of each language?

Some languages, Rust in particular for me, don't have a canonical "include this file" style of import and rely on their broader build system to do the work.  Technically, Rust has https://doc.rust-lang.org/stable/std/macro.include.html, and I'll use that here, but it's generally discouraged.  That said, the automated prelude of the plugin isn't canonical either :)


[Dont Merge] Do Not Panic

Hacky Hacksen hacky Hack

Closing this, then noone might see this ever again...


Keeps getting "No video formats found" error

Hi
Im trying to download from Pluralsight, but keep getting errors. When batch download 6 courses, its only two courses that been downloaded.
Im using the latest version.
I have replaced the pluralsight url
Im using this command
--sleep-interval 360 -v --no-check-certificate -o '~/MyVideos/%(playlist)s/%(title)s.%(ext)s'
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--newline', u'-u', u'PRIVATE', u'-p', u'PRIVATE', u'-i', u'-o', u'C:\Users\jakobjensen\videoerPlu\%(title)s.%(ext)s', u'--sleep-interval', u'360', u'-v', u'--no-check-certificate', u'-o', u"'~/MyVideos/%(playlist)s/%(title)s.%(ext)s'", u'PLURALSIGHT-URL']
[debug] Encodings: locale cp1252, fs mbcs, out None, pref cp1252
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.7.10 - Windows-2012Server-6.2.9200
[debug] exe versions: ffmpeg N-71883-geb9fb50, ffprobe N-71883-geb9fb50
[debug] Proxy map: {}
WARNING: Unable to download webpage: HTTP Error 429:
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "youtube_dl\YoutubeDL.pyo", line 676, in extract_info
File "youtube_dl\extractor\common.pyo", line 341, in extract
File "youtube_dl\extractor\pluralsight.pyo", line 226, in _real_extract
File "youtube_dl\extractor\common.pyo", line 862, in _sort_formats
ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
ERROR: 'NoneType' object has no attribute 'copy'
Traceback (most recent call last):
File "youtube_dl\YoutubeDL.pyo", line 687, in extract_info
File "youtube_dl\YoutubeDL.pyo", line 848, in process_ie_result
File "youtube_dl\YoutubeDL.pyo", line 752, in process_ie_result
And the courses thats been downloaded fine shows this
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--newline', u'-u', u'PRIVATE', u'-p', u'PRIVATE', u'-i', u'-o', u'C:\Users\jakobjensen\videoerPlu\%(title)s.%(ext)s', u'--sleep-interval', u'360', u'-v', u'--no-check-certificate', u'-o', u"'~/MyVideos/%(playlist)s/%(title)s.%(ext)s'", u'PLURALSIGHT-URL']
[debug] Encodings: locale cp1252, fs mbcs, out None, pref cp1252
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.7.10 - Windows-2012Server-6.2.9200
[debug] exe versions: ffmpeg N-71883-geb9fb50, ffprobe N-71883-geb9fb50
[debug] Proxy map: {}

429 is an indication of overuse. Wait some time and try later.

How can i avoid this error?
Im waiting 360 Sec between each download?

Do i download one at a time?

There are no concrete recipes.

Is it overuse from my computer or overuse from Pluralsight website?

Overuse of pluralsight website by your IP decided by pluralsight.


Incomplete rendering of opening_hours

Some opening hours are not correctly displayed.
For instance: Mo-Fr 11:30-15:00, We-Mo 18:00-23:00 is rendered as
Monday 	06:00 PM - 11:00 PM
Tuesday 	11:30 AM - 03:00 PM
Wednesday 06:00 PM - 11:00 PM
Thursday 06:00 PM - 11:00 PM
Friday 06:00 PM - 11:00 PM
Saturday 06:00 PM - 11:00 PM
Sunday 06:00 PM - 11:00 PM
Except for tuesday, the hours 11:30-15:00 are missing.
See the example there<EMAIL_ADDRESS>

Thanks for this valuable bug report.
We use the wonderful Humanized Opening Hours python module to handle this in Qwant Maps, here is the according issue: https://github.com/rezemika/humanized_opening_hours/issues/28
Feel free to add more use cases in this repo, they are looking for feedback ;)


Typo in website

Should be too*.

Should be "it's" with an apostrophe.

Thank you both! I have updated this in a working branch for the site - will hopefully update production over the weekend :)
Will leave open until the live site has been updated.

These should now be fixed 😄 Thanks everyone!


Request headers does not contain authorization token in get request

As I checked the code I find a mistake in axios.get request written inside models/index.js at line number 18.
Instead of this:
axios.get(endpoint, headers)
it should be like this:
axios.get(endpoint, { headers })

Thank you very much!
I completely missed this.
It's fixed now.


Are the used camera intrinsics values correct?

I noticed the camera intrinsics f, cx, and cy used in the surface-normals tool and in trainLoader.py differ from the ones provided with KITTI for many but not all values. If I'm not mistaken, the correct camera matrix values for depth images are in theP_rect_02 and P_rect_03 projection matrices in the calib_cam_to_cam.txt files.
The values currently used in code:
INTRINSICS = {
    "2011_09_26": (721.5377, 596.5593, 149.8540),
    "2011_09_28": (707.0493, 604.0814, 162.5066),
    "2011_09_29": (718.3351, 600.3891, 159.5122),
    "2011_09_30": (707.0912, 601.8873, 165.1104),
    "2011_10_03": (718.8560, 607.1928, 161.2157),
}

Values from KITTI calibration files:
INTRINSICS = {
    "2011_09_26": (721.5377, 609.5593, 172.8540),
    "2011_09_28": (707.0493, 604.0814, 180.5066),
    "2011_09_29": (718.3351, 600.3891, 181.5122),
    "2011_09_30": (707.0912, 601.8873, 183.1104),
    "2011_10_03": (718.8560, 607.1928, 185.2157),
}

In particular, all cy values differ by a varying integer amount. Did you crop the images vertically, perhaps?

I also found this problem. And I think you are right. Including KITTI object detection calib intrinsics is mostly (721.5377, 609.5593, 172.8540).