Blueprint: add support for custom files and directories in /etc

Tl;DR; this PR adds the ability to create custom files and directories under /etc in the image by specifying them as a BP customization. The functionality is supported for all non-ostree images and for ostree commit and container images.

Feature description
Support in this PR
Comment

Directories customization
Create new
:white_check_mark:
possible to specify that parent directories should be created as neededpath policy applies

Modify existing
:x:
Modifying ownership and permissions of existing directories is not supported and will result in failure during image build.One can specify only plain custom directory (without explicit ownership and permissions) to ensure that the directory exist (e.g. due to bing a parent of a custom file). In such case, the directory will be created with default permissions and ownership if it does not exist in the image or it will be a noop if it exists.

Delete existing
:x:

Set user / group ownership
:white_check_mark:
possible to use using user / group name or UID / GIDpossible to set to user / group provided as BP customization

Set mode
:white_check_mark:
possible by providing mode in octal format (such as "0755")

Set additional attributes
:white_check_mark:
such as xattr, custom SELinux labels, etc.

Files customization
Create new
:white_check_mark:
path policy appliesparent directories must exist

Modify existing
:white_check_mark:
all supported file attributes can be set on existing files and their content overriddenpath policy applies

Delete existing
:x:

Set user / group ownership
:white_check_mark:
possible to use using user / group name or UID / GIDpossible to set to user / group provided as BP customization

Set mode
:white_check_mark:
possible by providing mode in octal format (such as "0755")

Set additional attributes
:x:
such as xattr, custom SELinux labels, etc.

Plain text content
:white_check_mark:

Binary (base64) content
:x:
would be very easy to add

Support in distros
all
:white_check_mark:

Support in image types
non-ostree image types
:white_check_mark:
such as qcow2, cloud images, etc.

edge-commitedge-container
:white_check_mark:
files and dir are baked into the commit

edge-installeredge-raw-imageedge-simplified-installer
:x:
not as a deploy-time customization

Common
SELinux labels
:grey_question:
Custom directories and files will have the default label applied as specified by the used SELinux policy

Weldr API support
:white_check_mark:

Cloud API support
:white_check_mark:

Limits
❔
No limit is applied on the number of custom directories and files that can be createdNo limit is applied on the size of custom filesNo assurance that the custom files can fit in the image or partition if it is too small

Most notable changes:

Add internal representation for filesystem nodes as fsnode package
Add support for org.osbuild.chown stage
Add helper functions for generating osbuild stages from fsnode types with the aim to create them in the image.
Extend Blueprint customizations with Directories and Files customizations and implement their validation.
Extend Cloud API to accept Directories and Files customizations and validate them.
Extend distro definitions and pipeline implementations to handle custom Directories and Files.
Extend image test manifests with the new customizations and regenerate them.
Extend the OSTree tests (OSTree and New OSTree) to use the custom Directories and FIles feature and test its effect on the resulting deployed image.

Details and some implementation choices are described in commit messages.
TODO:

[x] Determine desired custom directories policy (which directories to protect?)

Dirs can be created only under /etc and existing dirs can't be modified.

[x] Determine desired custom files policy (which files to protect?)

Keep it minimal (fstab, groups, passwd, shadow)

This pull request includes:

[x] adequate testing for the new functionality or fixed issue

[x] unit tests
[x] Weldr API tests (tested via ostree tests, which use it)
[x] Cloud API tests
[x] ostree functional tests (ostree / ostree-ng)

[x] adequate documentation informing people about the change such as

[x] https://github.com/osbuild/guides/pull/103

@yih-redhat Could you please take a look at this PR and add test here? Thanks.

@yih-redhat Could you please take a look at this PR and add test here? Thanks.

Tomas will add the test code, we can extend the test if necessary once it's ready.

Very nice one! I have a few comments/questions below.

Thanks for your review!

I'm wondering also, has the etc customization been ported to every test cases that supports it ? If so, should we also add some tests without etc customization for the completeness of the testing scenarios.

So just to clear any confusion, the PR does not add etc customization, but two new customizations for Files and Directories. That may be helpful when thinking about why these are not handled together unless completely necessary. There is only one case where this is needed, to check that someone didn't specify a custom file, which is a parent of a custom directory. We could just fail during build, because directories are created first, but I decided to do the validation in composer to fail fast.
As for the test cases:

I didn't want to substantially grow our functional test jobs, because I don't see any value in that (than paying more to AWS). I considered adding a separate test case, like the filesystem customization has. After a discussion with @ondrejbudai and @croissanne, I decided to just extend the API test case.
I extended test cases which already were testing some customizations (mostly API and ostree tests) to use it. Note that ostree tests do not use it on all distros, only on Fedora all, CentOS Stream 8/9 and rhel-9.2 and rhel-8.8.
One can consider the vanilla image test manifests without any customizations to cover that case when the customization is not used (IOW that nothing gets added to the manifest). I don't think that we can do any additional testing of "not using the new customizations" that would extend the coverage.

Note that the files customization would currently follow symlinks if the file path already exists in the image and it is a symlink to a file. I'll address this in a follow-up PR once https://github.com/osbuild/osbuild/pull/1241 is merged.

@thozza looks great! Thanks for tweaking the commit vs installer deployment. Two small questions:

if a user creates a unit file, will the ordering in osbuild allow the [customization.services] to enable/disable the new units?
We're pasting in plain text in between quotes. I haven't gotten my hands on this, nor am I a TOML person, so apologies if this is a dumb question. Will users have to escape quotes that are contained inside the pasted text or anything like that?

Only high level review, but looks great!

@thozza looks great! Thanks for tweaking the commit vs installer deployment. Two small questions:

if a user creates a unit file, will the ordering in osbuild allow the [customization.services] to enable/disable the new units?

Yes, this works and it is already used in the ostree test case which is part of this PR. In short the test does this:

Create /etc/custom_file.txt with known content.
Create /etc/systemd/system/custom.service with ExecStart=/usr/bin/false.

Check that the custom.service is enabled on the booted system, that it was overridden by the drop-in and that the content of /etc/custom_file.txt is logged in the journal since the last boot.

We're pasting in plain text in between quotes. I haven't gotten my hands on this, nor am I a TOML person, so apologies if this is a dumb question. Will users have to escape quotes that are contained inside the pasted text or anything like that?

No need to apologize, I think that there are very few "TOML people" if any 😅
TOML allows multiple ways to specify strings and some of them would require to escape quotes. All of these should be equivalent:
[[customizations.files]]
path = "/etc/file.txt"
data = "key=\"value\"\n"

[[customizations.files]]
path = "/etc/file.txt"
data = 'key="value"\n'

[[customizations.files]]
path = "/etc/file.txt"
data = """key="value"
"""

I made changes based on reviews. Rebased on top of main and also dropped 4 commits, which were related to deploy-time ostree image types and were leftovers from the times when the customization was aiming for them (it is not any more, it instead targets ostree commit image types).

CI Failures:

ostree / F37 - not caused by this PR, will be fixed by https://github.com/osbuild/osbuild-composer/pull/3292
vsphere - DNS issues 🤷

Rebased on main to get the F37 fix for ostree test.
Fixed path sorting to be based on dir separator count in ValidateDirFileCustomizations() in the blueprint package.
Added workaround for 💩 DNS making VSphere tests to fail.
Added dependency on the latest osbuild release (v80) and made use of the remove_destination option in the copy stage to not follow symlinks for files customization.
Pinned osbuild v80 in Schutzfile, since the release happened only yesterday and there was not enough time for it to get to our RPMRepo snapshots and also stable / nightly repos of respective distributions.

The VSphere workaround has no effect on the test failure and I'm out of ideas, since all three DNS resolvers in /etc/resolv.conf are unstable... 😕

I dropped the commit with "DNS workaround", since it had no effect. IT is working on fixing the DNS resolver in us-east-1.


Html.Lazy always recomputes inner functions

The virtual DOM will always recompute any function that's inside a let, even if it's wrapped inside Html.Lazy.lazy.
Here is the SSCCE:
https://github.com/showell/elm-start/commits/html-lazy-is-broken-for-let-functions
There are two commits to note here:

The last commit shows how it should work.  Run this without building index.html.  Instead, just use the index.html that is checked in.  (If you look at the commit, you can see my proposed changes to index.html to avoid the bug, and there's some more detail.)

The second to last commit is the repro.  Or, really, you can actually just rebuild the last commit.  Either way, if you don't use my modified index.html, you can type around in the textarea and see it recomputing lotsOfFreds over and over again.

The example in the repro is a full program, but you can get the gist here:
 66 view : Model -> Browser.Document Msg
 67 view model =
 68     let
 69         lotsOfFreds : String -> Html Msg
 70         lotsOfFreds s =
 71             let
 72                 -- We should only see this once, but it happens every time
 73                 -- you type in the textarea
 74                 _ =
 75                     Debug.log "actually calling lotsOfFreds" ""
 76             in
 77             Html.pre [] [ Html.text (String.join "\n" (List.repeat 100000 s)) ]
 78
 79         body =
 80             [ Html.textarea
 81                 [ onInput DontActuallyUpdateTheModel ]
 82                 [ Html.text "type in here to repro bug (and open debugger)" ]
 83             , Html.Lazy.lazy lotsOfFreds model.fred
 84             ]
 85     in
 86     { title = model.title
 87     , body = body
 88     }

The problem happens deep in the virtual DOM implementation.  The virtual DOM is comparing two different copies of lotsOfFreds.
3045     // Now we know that both nodes are the same $.
3046     switch (yType)
3047     {
3048         case 5:
3049             var xRefs = x.l;
3050             var yRefs = y.l;
3051             var i = xRefs.length;
3052             var same = i === yRefs.length;
3053             while (same && i--)
3054             {
3055                 same = xRefs[i] === yRefs[i];
3056             }
3057             if (same)
3058             {
3059                 y.k = x.k;
3060                 return;
3061             }
3062             y.k = y.m();
3063             var subPatches = [];
3064             _VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
3065             subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
3066             return;

I think this is technically a compiler bug, by the way.  The code in Html.Lazy (or, more precisely,_VirtualDom_diffHelp) is doing the right thing to make sure that the two functions in the thunk are, in fact, the same.  The only reason the two functions aren't the same here is due to how the JS is emitted (and due to the fact that JS creates new copies of the function each time for some reason).
I doubt this is browser-specific behavior, but I tested this only on FireFox.

Also, just to make things even more complex here, the Elm compiler does need to make inner JS functions if the inner view closes on Elm variables (besides the arguments).  In that case there's no way that I can think of to emit code that is friendly to Html.Lazy.lazy.  In other words Html.Lazy would always have to punt on optimizations due to seeing "different" functions (even though it's the same JS code).  I think in most of these scenarios the model data would be changing anyway, but sometimes it will just be programmer error.  So it's possible that the solution here is to just prevent folks from applying Html.Lazy.lazy to any function in the let.

I opened https://github.com/elm/compiler/issues/2020 in hopes that the compiler could be changed here to support Html.Lazy better.  I am somewhat resigned to the fact, after talking on Slack, that folks just consider this a known limitation.  If that's the case, then maybe there's a path to make the documentation even more clear here.  Another person suggested trying to solve this first with something like elm-analyse.

As you can see, equality here is by reference, not by value. Anything in the let (a function, a list, a record) will not be equal by reference to its value the last incarnation of the function.
The solution is to move functions and any non-primitive value to top-level function/value, or store it in the model and make sure it passes unscathed to lazy.

I'm willing to commission somebody to implement a version of lazy that works with records. This would be an invaluable addition for me. It would ignore the record and compare references of all the members of the record.
Many of the views in my apps take big responsibilities, and consequently, take big records as configurations. It makes things waaay more readable if the arguments are "named" this way.


Do not run build if the manual trigger is not set

Note: The "Trigger Job Now" button in the view has this request as the href. So if we return an error, it will just display it. The button needs to be fixed.

I remember there was some discussion around this, but could you remind me: does that mean a project that misses this given trigger, can never be triggered manually? What's the use-case for not being able to trigger a build manually? Sorry for probably repeating a question that's already been answered

a JobTrigger is a capability with associated metadata needed to perform that trigger. If you have a ManualJobTrigger on the project, that means the job can be triggered by hand. There might be times when we don't want that, and in that case, a ManualJobTrigger won't exist. This is so we have all our possible triggers in one place, so if the user choses to not allow manual triggering, it just doesn't exist as a JobTrigger
It also allows for an easier time coding up a UI. If you want to display all possible ways to trigger a job, you just have to iterate through a list of triggers. If we didn't have a ManualJobTrigger we'd have to iterate and then, check the Project for can_manually_trigger? and then add that to the UI.
Maybe ManualJobTrigger could be renamed to OneOffJobTrigger

Some people only want builds to be triggered when a commit has been made to a release/ branch
That way, nobody can accidentally trigger a release.


fix(utils): not match correctly when setting with a decimal

fix #268

Looks good. Thank you very much for contributing!!!


[web-sys] yew 0.13 fails to compile

Problem

I want to update my project from std_web to web_sys.
When trying to build an empty (or not) project with the new feature web_sys, yew 0.13 does not compile.
Steps To Reproduce
Steps to reproduce the behavior:

cargo new --lib project
Cargo.toml

[package]
name = "project"
version = "0.1.0"
edition = "2018"

[dependencies]
yew = { version = "0.13", features = ["web_sys"] }

[lib]
crate-type = ["cdylib", "rlib"]

src/lib.rs

fn main() {
    println!("Hello, world!");
}

Run cargo wasm build or wasm-pack build (it will be the same error with both)
See error

   Compiling yew v0.13.0
error[E0308]: mismatched types
   --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/yew-0.13.0/src/virtual_dom/vtext.rs:113:9
    |
60  |       ) -> Option<Node> {
    |            ------------ expected `std::option::Option<web_sys::features::gen_Node::Node>` because of return type
...
113 | /         self.reference.as_ref().map(|t| {
114 | |             let node = cfg_match! {
115 | |                 feature = "std_web" => t.as_node(),
116 | |                 feature = "web_sys" => t.deref(),
117 | |             };
118 | |             node.to_owned()
119 | |         })
    | |__________^ expected struct `web_sys::features::gen_Node::Node`, found struct `web_sys::features::gen_CharacterData::CharacterData`
    |
    = note: expected enum `std::option::Option<web_sys::features::gen_Node::Node>`
               found enum `std::option::Option<web_sys::features::gen_CharacterData::CharacterData>`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.
error: could not compile `yew`.

To learn more, run the command again with --verbose.
Failed to run cargo. Exit code was: 101

Expected behavior
I was expecting yew to build, but maybe am I doing something wrong ?
Environment:

Yew v0.13
Rust v1.41.1
Target wasm32-unknown-unknown
web-sys v0.3.36
OS: ubuntu

I have same error. Please see comment

I have the same problem as well. I tried to fix it but it looks like my naive fix won't pass tests.

Same here. For reference: compiling https://github.com/test_web/yew-wasm-pack-template yields the same error as above, but before it even gets to the current project (The error seems to be from cargo compiling yew itself).

Are all of you on web-sys v0.3.36? I think the latest release might have broken things. Can you try on v0.3.35?

Yeah v0.3.36 was the issue, I just pushed yew v0.13.1 with @Detegr's fix. Thanks for the reports everyone!


Remove dojo specific code

Design needs to be made generic
Logo should be configurable
Event Titles should be generic or customisable
EventSolution should be moved into its own module
Membership options should be moved into configuration
Payment details passed to Stripe should be configurable
Notification URLS should be configurable
Mail from address should be configurable
Social links should be configurable
Allow configuration of the word "event"/"dojo"/etc.
Index page should be customisable like other pages
Membership text should be configurable
Default email templates should be configurable

Sponsorship has been pulled out into a plugin and the plugin architecture has been created.
The next step for this is to pull out Event Solutions, Comments, Membership options, payment, and social links.

Made event titles customisable

Comments have been pulled out into a plugin

Event Solutions (Groups) have been pulled out into a plugin. The "github_url" still needs to be turned into a configuration variable though.

Mail from address should be configurable
and
Allow configuration of the word "event"/"dojo"/etc.
complete.

Payment settings are now configurable

Membership is now a separate module and dojo-specific things are gone.
However it still only supports dojo-style 1-year pay-what-you-want membership. This will be changed as part of #58

All dojo specific code has now been removed except for the social links and emails. For emails see #5 and for social links see #60


deb/rpm package generation

support deb/rpm generation
new options:

--name for application
--icon for menu

experimental support added


Crash on placing rock crusher in Overhaul

Whenever placing a rock crusher, the game crashes to desktop, tested with only NC-O installed
https://pastebin.com/w3vs4Xpz

Fixed for the next version :)


How to enable streams (for helloworld)

Fixes https://github.com/cloudflare/workerd/issues/419

I have read the CLA Document and I hereby sign the CLA

What we need to do is try to make sure everyone is always using the latest compat date when they get started

The configuration file format is insane. JSON will siffice without learning an entirely new language just to configure the application.
Using dates as a required field for latest capabilities is a bad idea.
You folks couldn't even do that yourself in your own repository. Too tedious. Just use something like "latest".
You shouldn't be withholding pertinent information if you insist on using a complicated configuration format.


QConvolution mutates weights running forward

As with #30, QConvolution also mutates its input weights when running forward, but only when in training mode. The weights should only be mutated by the actual weight update performed by the optimizer. Instead weight quantization should be performed in temporary storage.
Unlike QFullyConnected, QConvolution does not even perform weight quantization when not in training mode! This means that given the same input weights, it will produce different outputs depending on whether training mode is enabled. Perhaps this was intended as an optimization, but it really is a bad idea to change the semantics of an operator based on the training state unless you have a very good reason (as in BatchNorm). Since the number of weights will typically be a small fraction of the output volume of a mini-batch, it probably isn't worth dropping the quantization step when not training.
Really I think you should try to eliminate all calls to ctx.is_train in the implementation.

please check our new version BMXNet v2:
https://github.com/hpi-xnor/BMXNet-v2


Speaker should have a close method

Speaker should have a close method.
The close method should call self._pwm_buzzer.close() to close the pwm pin and stop any activity,

Resolved in dev

In v0.1.1


⚠ OpenTunnel.net Website has degraded performance

In 6c264ef, OpenTunnel.net Website (https://opentunnel.net/) experienced degraded performance:

HTTP code: 200
Response time: 5436 ms

Resolved: OpenTunnel.net Website performance has improved in fe3e935.


Add more informative error for report/fitted_param on untrained mach

Codecov Report

Merging #558 (4ffc5f7) into master (f04698b) will decrease coverage by 0.05%.
The diff coverage is 92.85%.

@@            Coverage Diff             @@
##           master     #558      +/-   ##
==========================================
- Coverage   84.92%   84.86%   -0.06%
==========================================
  Files          36       36
  Lines        3038     3040       +2
==========================================
  Hits         2580     2580
- Misses        458      460       +2

Impacted Files
Coverage Δ

src/machines.jl
84.52% <92.85%> (+0.77%)
:arrow_up:

src/measures/continuous.jl
97.70% <0.00%> (-2.30%)
:arrow_down:

src/measures/finite.jl
96.30% <0.00%> (-0.30%)
:arrow_down:

src/composition/learning_networks/nodes.jl
69.93% <0.00%> (-0.21%)
:arrow_down:

src/univariate_finite/methods.jl
86.25% <0.00%> (-0.11%)
:arrow_down:

src/univariate_finite/types.jl
91.50% <0.00%> (+0.85%)
:arrow_up:

Continue to review full report at Codecov.

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


[BUG] Unexpected TypeError when using boolean test inside numeric expression

I got an unexpected TypeError when rendering the template string: {% set x = None %}{{ 2 * (x == "foo")}}.
My best guess is that something in this fragment is being incorrectly compiled to python code.
Full test case:
>>> from jinja2 import Environment
>>> template = Environment().from_string('{% set x = None %}{{ 2 * (x == "foo")}}')
>>> template.render()
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/usr/local/lib/python3.5/dist-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "<template>", line 1, in top-level template code
TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

Expected behavior is that render would return "0".
Some other similar template strings:

{% set x = "bar" %}{{ 2 * (x == "foo") }} unexpectedly renders "False", rather than "0".
{% set x = "foo" %}{{ 2 * (x == "foo") }} unexpectedly renders "False", rather than "2".
yet {% set x = "foo" %}{{ (x == "foo") }} correctly renders "True".
and {{ 2 * True }} correctly renders "2".

Tested this with jinja 2.0 - 2.9.6, under python 2.7 & 3.5.

I've tried tracking this down myself, but I'm having difficulty figuring out how to get a dump of the python source generated by the jinja compilation process (if that's in fact where the problem lies).  I'd definitely appreciate any pointers.

So, I agree with the assessment made here, but if you use the "sameas" function this all works exactly as expected.
Examples:
from jinja2 import Template

this = Template('{% set x = "bar" %}{{ 2 * (x is sameas "foo") }}')
print(this.render())  # correctly prints 0

this = Template('{% set x = "foo" %}{{ 2 * (x is sameas "foo") }}')
print(this.render())  # correctly prints 2

this = Template('{% set x = "foo" %}{{ (x is sameas "foo") }}')
print(this.render())  # correctly prints True

this = Template('{{ 2 * True }}')
print(this.render()) # correctly prints 2

Likewise, both "is eq" and "is equalto" work as expected.  It's just the double equals that returns the wrong value.
This doesn't fix this ticket, but if anyone is stuck, a good workaround is to use any of the comparison functions except "==".

I think this might be the cause of the strange behavior I've found here.
from jinja2 import Environment
expr = Environment().compile_expression
ctx = dict(foo="baz", bar="")

# Recreating `bool(string)` behaves as you expect.

expr("(foo | length) != 0")(ctx) # True
expr("(bar | length) != 0")(ctx) # False

# Comparing them, however...

expr("((foo | length) != 0) != ((bar | length) != 0)")(ctx) # False

# Huh? Do I not remember how boolean logic works?

expr("foo != bar")(foo=True, bar=False) # True

# Let's try another syntax, which should be equivalent:

expr("((foo | length) != 0) is not eq((bar | length) != 0)")(ctx) # True

# Strange. Let's also try the ruby/js style of casting to a boolean:

expr("(not not foo) != (not not bar)")(ctx) # True

# And just out of curiosity, what if we applied the non-operator way to the length tests themselves?

expr("((foo | length) is not eq(0)) != ((bar | length) is not eq(0))")(ctx) # True

sameas is the only workaround that worked aside from adding more indirection in Ansible (due to the version of jinja used). Thank you!

Fixed by #938


add current version of MUI as peer dependency

new minor version is out https://github.com/mui-org/material-ui/releases/tag/v0.20.0

Codecov Report

Merging #228 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #228   +/-   ##
=======================================
  Coverage   78.94%   78.94%
=======================================
  Files          11       11
  Lines          38       38
=======================================
  Hits           30       30
  Misses          8        8

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 53827a1...721d365. Read the comment docs.

Thanks for merging :grinning:
Can you publish a new release to npm as well?


Slow Location Results

I request the user's location on app launch it it sometimes takes several minutes to get the location. I am in the middle of the city and other apps are working just fine with location. Have you hit this issue before and is it library related?

Hey Chad,
If you find that it's taking a long time to get the location back using INTULocationManager, you are probably requesting a very high accuracy level (e.g. INTULocationAccuracyRoom). If you do want a very accurate location that's fine, but you should include a timeout value that reflects how long you are willing to wait (e.g. 10 seconds). Then, even if INTULocationManager isn't able to get a super-accurate location as you request, it will still return the most accurate location it was able to obtain in the time you gave it.
Of course, be sure to only request the accuracy level that you actually need. If for example you are just trying to determine the user's current city for a weather app, for example, then be sure to just request City-level accuracy!
Please let me know if that isn't clear or if you're seeing a specific issue.
Thanks!

That did it for me. Thanks for the clarification on the timeout still giving it's best accuracy.


feat: Add ability for a user to see the repos they have voted for

Resolves #124 Add ability for a user to see the repos they have voted for

What type of PR is this? (check all applicable)

[x ] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Description

This PR adds the feature #124 Add ability for a user to see the repos they have voted for.
Related Tickets & Documents

#124 Add ability for a user to see the repos they have voted for

Mobile & Desktop Screenshots/Recordings

Modified the Secondary Navbar to add the new MyVotes link

Added tests?

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?
It's my son's birthday

Oh boy this looks good! :D

Also, happy birthday to your son! 🍕


Fix #1103 and Fix # 1102

@o3o thanks for the review! Actually, it woukd be soon reviewed for raylib 3.0.


Errors with test-bot-docker

Following the instructions here (https://github.com/Homebrew/homebrew-science/wiki/Maintainers#making-your-own-bottles), I am hitting two different problems:
brew test-bot-docker homebrew/science/simpleitk
==> Tapping linuxbrew/test-bot
Cloning into '/home/linuxbrew/.linuxbrew/Library/Taps/linuxbrew/homebrew-test-bot'...
Tapped 0 formulae (32 files, 182.3KB)
==> brew tap homebrew/science
Error: No available formula with the name "homebrew/science/simpleitk"
Error: Failure while executing: docker run --name=linuxbrew-test-bot -e BINTRAY_USER -e BINTRAY_KEY linuxbrew/linuxbrew sh -c brew\ test-bot\ homebrew/science/simpleitk\ &&\ ls\ &&\ brew\ test-bot\ --ci-upload\ &&\ head\ *.json

But I think this is anyway not what I want to use, I want to build from an un-merged PR, so that I can later publish everything all at once.
This is why I tried with the URL to the pull request, but the patch can't be applied:
brew test-bot-docker https://github.com/Homebrew/homebrew-science/pull/5431
==> Tapping linuxbrew/test-bot
Cloning into '/home/linuxbrew/.linuxbrew/Library/Taps/linuxbrew/homebrew-test-bot'...
Tapped 0 formulae (32 files, 182.3KB)
==> brew pull --clean https://github.com/Homebrew/homebrew-science/pull/5431
==> FAILED
==> Tapping homebrew/science
Cloning into '/home/linuxbrew/.linuxbrew/Library/Taps/homebrew/homebrew-science'...
Tapped 673 formulae (713 files, 2MB)
==> Fetching patch
Patch: https://github.com/Homebrew/homebrew-science/pull/5431.patch
==> Applying patch

*** Please tell me who you are.

Run

  git config --global user.email<EMAIL_ADDRESS>  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <Michka Popoff>) not allowed
You need to set your committer info first

*** Please tell me who you are.

Run

  git config --global user.email<EMAIL_ADDRESS>  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <Michka Popoff>) not allowed
You need to set your committer info first
Error: Patch failed to apply: aborted.

Want to try out this untested patch?
diff --git a/cmd/brew-test-bot-docker.rb b/cmd/brew-test-bot-docker.rb
index 6d42b91..a28e9d1 100755
--- a/cmd/brew-test-bot-docker.rb
+++ b/cmd/brew-test-bot-docker.rb
@@ -15,7 +15,11 @@ module Homebrew
     safe_system "docker", "run", "--name=linuxbrew-test-bot",
       "-e", "BINTRAY_USER", "-e", "BINTRAY_KEY",
       "linuxbrew/linuxbrew",
-      "sh", "-c", "brew test-bot #{argv} && ls && brew test-bot --ci-upload && head *.json"
+      "sh", "-c", <<-EOS.undent
+      git config --global user.name LinuxbrewTestBot
+      git config --global user.email<EMAIL_ADDRESS>+      brew test-bot #{argv} && ls && brew test-bot --ci-upload && head *.json
+      EOS

     safe_system "docker", "cp", "linuxbrew-test-bot:/home/linuxbrew", "linuxbrew-test-bot"
     cd "linuxbrew-test-bot" do

Making progress, but still not good:
brew test-bot-docker https://github.com/Homebrew/homebrew-science/pull/5431
==> Tapping linuxbrew/test-bot
Cloning into '/home/linuxbrew/.linuxbrew/Library/Taps/linuxbrew/homebrew-test-bot'...
Tapped 0 formulae (32 files, 182.3KB)
==> brew pull --clean https://github.com/Homebrew/homebrew-science/pull/5431
==> brew --env
==> brew config
==> brew man --fail-if-changed
==> brew style
==> brew tests --no-compat
==> brew tests --generic
==> brew tests --official-cmd-taps
==> git checkout master
head: cannot open '*.json' for reading: No such file or directory
Error: Failure while executing: docker run --name=linuxbrew-test-bot -e BINTRAY_USER -e BINTRAY_KEY linuxbrew/linuxbrew sh -c git\ config\ --global\ user.name\ LinuxbrewTestBot
git\ config\ --global\ user.email\<EMAIL_ADDRESS>brew\ test-bot\ https://github.com/Homebrew/homebrew-science/pull/5431
ls
brew\ test-bot\ --ci-upload
head\ *.json

I think no bottles get build. This is why there is no .json file?

brew test-bot https://github.com/Homebrew/homebrew-science/pull/5431 does not appear to be building any bottles. You can test that command on your local machine, or inside a container, to troubleshoot why.

@sjackman it worked and bottles got uploaded. But these are a rebuild (rebuild 1). This is not what I expected. Should I try the --overwrite flag? I guess that this will force it to not add the rebuild 1?

Add --keep-old to avoid bumping rebuild.

All good for me. That works; thanks for the help.

I think specifying both the PR URL and formula name also works:
brew test-bot-docker https://github.com/Homebrew/homebrew-science/pull/5431 simpleitk

Is this PR necessary? https://github.com/Linuxbrew/homebrew-developer/pull/63

Yes if you want to use a URL, it is necessary.

Merged. Thanks for the review.


Thread1: EXC_BAD_ACCESS(code=EXC_i386_GPFLT)

Same issue here as well.

any update on this? anyone managed to fix this @parnekov  @KarthikKnot1 @zaheerkhalil321

No. Stop using this library.

it is fixed in master branch by this https://github.com/react-native-art/art/pull/70/files
somebody need to release a new build

Fixed the issue by using the patch

it is fixed in master branch by this https://github.com/react-native-art/art/pull/70/files
somebody need to release a new build

This fixed my issue


Feature:  Disallowed chars

Currently pws gen churns out a nice long random string of characters.  This is great, except when certain characters are disallowed in a password, such as quotes ' ".
Feature request to disallow certain characters/specify only alphanumeric character sets when running pws gen.

I'm willing to make this PR.  Just want to get confirmation that the maintainer would be open to merging it before I do.


Ctrie

This includes an implementation of a Ctrie, which is a concurrent, lock-free hash trie. This supports insert, remove, and lookup. Snapshot isn't supported yet, but I plan to add it later.
Benchmarks if you're curious:
BenchmarkInsert-8        3000000               449 ns/op
BenchmarkLookup-8       10000000               224 ns/op
BenchmarkRemove-8       10000000               192 ns/op
This also includes an implementation of a persistent, immutable linked list (which the Ctrie uses).
@dustinhiatt-wf @alexandercampbell-wf @beaulyddon-wf @tannermiller-wf @rosshendrickson-wf @stevenosborne-wf

SOC 1 Checklist

[ ] All commits reviewed (ab3acb6e4f7ff13e00a8d8761610b0357d07cc05)
[ ] QA Review (ab3acb6e4f7ff13e00a8d8761610b0357d07cc05)
[x] Security Review Completed if Applicable:  (N/A)

To remain in SOC1 Compliance the following users cannot merge this PR:

tylertreat-wf
ttreat31-wf

Last updated on Tuesday, May 05 05:03 PM CST

Couple of comments, otherwise awesome!  +1  F off Rosie.

@dzyp I added the changes you suggested. Not really sure what an optimal number of hashers to use for the ringbuffer, but surprisingly there seems to be a slight performance regression compared to the mutex.
With serialized hashing:
BenchmarkInsert  2000000               710 ns/op
BenchmarkLookup  5000000               283 ns/op
BenchmarkRemove  5000000               253 ns/op
With hasher ringbuffer:
BenchmarkInsert  2000000               783 ns/op
BenchmarkLookup  5000000               345 ns/op
BenchmarkRemove  5000000               320 ns/op

LGTM

@tylertreat Yeah, pulled the branch this morning and tried a multithreaded workload using the the benchmark found here: https://gist.github.com/dustinhiatt-wf/960c5ed7834169431d77
In the pure insert case,
Lock: BenchmarkMultithreadedInsert-8	     300	   4345771 ns/op
Buffer: BenchmarkMultithreadedInsert-8	     300	   3726488 ns/op
Then I tried different combinations of workloads (pure inserts has additional overhead with allocation and GC)
50/50 mix inserts/lookup
Lock: BenchmarkMultithreadedInsert-8	     300	   3960659 ns/op
Buffer: BenchmarkMultithreadedInsert-8	     500	   2922099 ns/op
25/75 mix inserts/lookup
Lock: BenchmarkMultithreadedInsert-8	     500	   3688026 ns/op
Buffer: BenchmarkMultithreadedInsert-8	     500	   2547969 ns/op
I think the biggest advantage will be in a read-heavy environment.

+1

@dustinhiatt-wf So is this ready to be merged? :)

BAM!


Create common component for student application - designation query enhancement

Designation query enhancement, added case, which will return true if location is designated and return false for else case

Nice work @ann-aot . 👍 2 comments.

Noce work @ann-aot and thanks for doing the changes, looks good to me 👍

Thanks for helping me with the query 😄


Use HTTPS to fetch GPG keys

The apt task uses HTTP to fetch keys and packages. Change these to HTTPS.
Thanks to @PeterJClaw for noticing this.

Incorporated since https://github.com/William-Yeh/ansible-fluentd/tree/1.4.1
Thanks.


COmposer

composer update not working
always download old version? Can you increment version?
Thanks:D

Just finished the docs, I also tweaked way storages are bound.
But all works the same, happy coding ^^


Saving the body from mail submissions and reading the a sender address written in the body

This far we have just saved the attachment that contained a ScratchJr-file, in the future also the text in the message. The text could allow specifying the sender in case the mail address is shared among multiple users of if the mail address is unknown to rubyric.

This is how the emails are delivered to the app:
´´´
/usr/bin/curl -F email='<-' -s -f $base_url/receive_email
´´´

I have difficulty with this task because when I construct an email manually, I can separate the body and the attachements.
In Rails documents, it seems that Rails expects the email server to forward an email in a format that separate body and attachments.
@tsauvine Could you provide me with more information on the email server?

It's Postfix on Linux. We can defer this issue if it takes too much time. Email submissions are a very problematic concept anyway.

I have tried setting up an email server, and start forwarding email to Rails, and what I have discovered is that the default ActionMailer incorrectly parses the email content. I have tried different email services Sendgrid, Mailgun, Postmark, and they have different formats for the email they forward. Usually to use one of these services in Rails, you can use a specific gem that parses email from a specific email forwarder. In our case, I could not find any code for email parse, so I assume that we are using a default parse, which I think is parsing the attachment incorrectly, since attachments should not be included in body of email.

@tsauvine Also, Mailgun forwards email in the same format as the one you sent me yesterday.

Postfix forwards the raw MIME message to the controller, and the attachment is indeed supposed to be one part of it (see https://en.wikipedia.org/wiki/MIME). Have you tried this:
http://stackoverflow.com/questions/4744692/ruby-how-to-correctly-decode-mails-with-mime-multipart

No I have not. I will try this.


Chapter 8 static files

I believe the references to jquery and bootstrap should be moved from flasky/static to flasky/app/static.

in console show an error about js  you can add libs
{{ super() }}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" />
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js" />


Feedback: Hey really nice work with the plugin. Is there a way to contact you?

Hey Sawhney,
I would love to learn how to create plugins for logseq. I want to contribute to logseq and logseq plugins but I have no idea on how to do it. Could you give me a way to contact you so that I can learn how to contribute to logseq from you. Like I don't know how to set up a logseq plugin project.
Also you said ping me on twitter, but your DMs are turned off. So I can't seem to contact you that way.
Thank you.

You should be able to contact me now on twitter. I'm also on the logseq discord as Sawhney so you can contact me there as well if it's better.


Open one dropdown menu at a time

FIxes #688
This PR ensures that only one dropdown menu is open at a time on the following pages:

Transactions page
Ticket list page

Also noticed when the status filter dropdown is opened, you can't click other dropdowns until it's closed. Other dropdowns should be clickable without having to close the status filter first

I can reproduce this on master too. I will try to find the source of the issue. However, I think the backdrop might be responsible

Yeah, it's on master, i was just stating since you were working on the dropdowns, if it's something complex to fix then we can merge this PR and create and issue for it, just let me know

Yeah, it's on master, i was just stating since you were working on the dropdowns, if it's something complex to fix then we can merge this PR and create and issue for it, just let me know

Duly noted


Import from local package

Example of importing and using code from a local package

See mozey/deno-examples


staticpod/installer: wire through installer timestamp

We need better, preferibly constant timestamp for lastFailedTimestamp to avoid hotlooping status updates. This PR exposes the timestamp from the pod status func such that it can be used for lastFailedTeimstamp in nodeStatus.

LGTM

/lgtm


Book: Select wants a FusedFuture for broker() in tutorial

The select! in client_writer() uses fuse(), but the final change to the broker currently doesn't and won't compile.

Ran into this as well. It would be great if the tutorial briefly went into what these fuses are doing and why they are required too!

Maybe CC @matklad? I know I've seen you chatting about fused things in the past.

cc https://github.com/async-rs/async-std/pull/13 and https://github.com/async-rs/async-std/pull/40 :)
Fuse is definitely a pain point. #13 and #40 apply surgical fixes to it, but the underlying problem that one must call .fuse manually remains. It would be ideal if, instead of explaining the current quirks, we could just design a better API that doesn't require .fuse.
Suggested course of action:

merge #13 as it's a simple fix
write an RFC/issue for general stream integration and fuseing (cc @stjepang @yoshuawuyts ). My tentative proposal: just make all streams&futeres exposed by async-std fused. It seems adding fuse for futures is much cheaper than for iterators, so it's ok to always do this?

It would be ideal if, instead of explaining the current quirks, we could just design a better API that doesn't require .fuse.

I think the "proper" solution would be to port crossbeam-channel to futures and provide a select macro that works with async channels.

While improving the story around .fused() is desireable, merging this PR would make the example in the book compile (and be consistent with previous examples), which would help lower confusion for newbies like me.

Unfortunately, the fix in this PR is not correct: as per select’s doc, fused should be called outside of the select loop, and this is a pretty bad footgun. Really, the underlying future is fused, we should just make sure it is reflected in the type system as in #13.

To be more precise, the patch in this PR definitely makes the code work, but it doesn’t use select/fuse at they are supposed to be used, and I’d rather not do that in the docs.

Thanks for the explanation.

#208 and #187 add macro support for non-fused streams and futures respectively. I think this will allow us to bypass a lot of the problems with futures-rs's select blocks.


Fix doc parser to generate all of the docs in file when running AST generator, and make every character accessible.

Pull Request Description
So the doc parser will never ever fail again on a unknown character, which makes our lives so much easier :)
Also, the "AST doc generator" will now generate all the docs in file, not only the first it finds.
Important Notes

Checklist
Please include the following checklist in your PR:

[x] The documentation has been updated if necessary.
[x] All code conforms to the Scala, Java, and Rust style guides.
[x] All documentation and configuration conforms to the markdown and YAML style guides.
[x] All code has been tested where possible.

@BinarySoftware What's happening with this PR?

@BinarySoftware What's happening with this PR?

It's currently suspended, i'll convert it to draft to annoy You less :)

This has been sitting idle for over a month. I'm going to close it, but please feel free to re-open it when you come back to working on it.


[layer] Support concat along all the dimensions

This patch provides support for the concat layer among all the
dimensions. Other changes include:

split_dimension property keyword has been changed to axis and reused
for concat_dimension
TensorDim::getNumDim() is now a static function

Corresponding unittests for the concat layer are also added.
Signed-off-by: Parichay Kapoor<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1649. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.


Memory Management

I would like to know the proper way to dispose of ng2-nvd3.  My issue is that I am creating many charts and these charts are not disposed when navigating away from the parent component.  The parent component creates via ng-template child chart-components which each have a @ViewChild reference to ng2-nvd3:
@ViewChild(nvD3) nvD3: nvD3;
The structure looks like this:
(parent component) contains
1....* (chart component) contains
1 ng2-nvd3
I'm not finding any dispose() or destroy() methods on ng2-nvd3 to be called in ngOnDestroy() of the chart-component.
I've tried simply setting nvD3 to null, nvD3.svg = [], and nvD3.el = null in chart component ngOnDestroy() but memory is not release once I navigate away from the parent page.
Thank you for any help available!
Mike

I believe I have resolved this by using the following in the chart component!
ngOnDestroy() { this.nvD3.clearElement(); }


Hotfix the CI error by adding version constraint to dask

Motivation

As the CI fails (ref) since dask v3.0, I added a version constraint.
Description of the changes

I added the version constraint of dask in pyproject.toml.

@gen740 Could you review this PR?


reorganize header display

Summary
Reformats header styles so options are more visible. Also fixes a small bug where suite options aren't flexing correctly immediately after the initial render.
Testing Guidance

Confirm header looks like this:

Opening suite options used to not set a max width on the description until the window was resized, this should no longer be happening.

Codecov Report
Base: 73.35% // Head: 94.23% // Increases project coverage by +20.88% :tada:

Coverage data is based on head (a9a7952) compared to base (cdbe4ad).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #267       +/-   ##
===========================================
+ Coverage   73.35%   94.23%   +20.88%
===========================================
  Files         185      114       -71
  Lines        8831     3020     -5811
  Branches      324        0      -324
===========================================
- Hits         6478     2846     -3632
+ Misses       2032      174     -1858
+ Partials      321        0      -321

Impacted Files
Coverage Δ

client/src/components/Header/Header.tsx

client/src/components/Header/styles.tsx

...c/components/SuiteOptionsPage/SuiteOptionsPage.tsx

...components/LandingPage/__mocked_data__/mockData.ts

...s/TestSuite/TestSuiteDetails/TestGroupListItem.tsx

client/src/styles/theme.tsx

client/src/components/ActionModal/ActionModal.tsx

...ient/src/components/InputsModal/InputTextField.tsx

client/src/components/_common/TreeItem.tsx

...src/components/_common/__mocked_data__/mockData.ts

... and 61 more

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Report shows "Unavailable Workspace" to a user outside of the workspace that was invited

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number:
Reproducible in staging?:
Reproducible in production?:
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @trjExpensify
Slack conversation: not Slack but https://github.com/Expensify/App/issues/48396#issuecomment-2429856004
Action Performed:
Break down in numbered steps

Create a workspace
[User A] Submit an expense to the workspace
[User A] Click on the expense preview in the main chat to go to combined report.
[User A] Send a user mention containing User B (who is not a member of the workspace
[User A] Click "Invite" from the whisper message
[User B] Open the invited expense report

Expected Result:
Report should contain the correct report title, including the name of the workspace
Actual Result:
Report says Unavailable workspace in title instead of the workspace name
Details/investigation here. This is a backend issue - we need to figure out how to share the policy name without inviting the user to the policy.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Yes
Platforms:

Which of our officially supported platforms is this issue occurring on?

[X] Android: Standalone
[X] Android: HybridApp
[X] Android: mWeb Chrome
[X] iOS: Standalone
[X] iOS: HybridApp
[X] iOS: mWeb Safari
[X] MacOS: Chrome / Safari
[X] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub

Yeah, I'd be curious to hear from the team that worked on mention invites to understand what was expected here with inviting to reports/rooms-only on workspaces? How are we displaying which workspace the room is associated with? CC: @puneetlath @thienlnam if you guys have any insight.

Not overdue, waiting for feedback here

Waiting for feedback here, @trjExpensify should we move this to Slack for a bigger discussion?

Heads up, I will be offline until Tuesday, November 12, 2024, and will not actively watch over this GitHub during that period.
I moved this to Weekly since we need a discussion. I'll start one next week.

I'll get to the discussion next week.

I didn't get to start a discussion before going OOO. I'll work on this one next week when I'm back online.

On my list for the week

Closing - there has been no movement here.
Heads up, I will be offline until Wednesday, December 18, 2024, and will not actively watch over this GitHub during that period.
If this GitHub requires an urgent update, please ask for help in the #expensify-open-source Slack Room. If the inquiry can wait, I'll review it when I return online.

Yeah, I don't understand why we closed this. Seems to be a legit bug. @heyjennahay also seems to be experiencing it here: https://expensify.slack.com/archives/C07NMDKEFMH/p1734467521218349?thread_ts=1733161902.588669&cid=C07NMDKEFMH

Thanks for flagging. I didn't get to the discussion before the Holiday break. I'll try to review this week, but I am working limited hours.

There is no update; I'll get to this one after I'm back online from bereavement leave.


How to write the configure to susport coc.nvim?

Thank you for your awsome plug, but I need some help to make it works with coc.nvim.
I am a beginer and I know little about lua, I try to write configure in vimscript , but there is some thing wrong...
inoremap <silent><expr> <TAB>
    \ pumvisible() ? "\<C-n>" :
    \ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
    \ "\<Plug>(Tabout)"

when I push  , it will send the words "<Plug>(Tabout)" to screen, then I try the lua , but I can't write it correctly
lua<<EOF
 vim.keymap.set({"i"},"<tab>",function()
             if vim.fn["pumvisible"]() == 1 then
                 return '<c-n>'
             elseif vim.fn["coc#expandableOrJumpable"]() == 1 then
                 return "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>"
             else
                 return '<Plug>(Tabout)'
             end
         end,{ expr=true })
EOF

it always shows  E5107: Error loading lua [string ":lua"]:5: invalid escape sequence near ' " '
How can I use coc.nvim to select completion menu and jump snippets and don't tabout?
this is my configure:
lua<<EOF
require('tabout').setup {
    tabkey = "", -- key to trigger tabout, set to an empty string to disable
    backwards_tabkey = "", -- key to trigger backwards tabout, set to an empty string to disable
    -- act_as_tab = true, -- shift content if tab out is not possible
    -- act_as_shift_tab = false, -- reverse shift content if tab out is not possible (if your keyboard/terminal supports <S-Tab>)
    -- enable_backwards = true, -- well ...
    -- completion = true, -- if the tabkey is used in a completion pum
    -- tabouts = {
    --   {open = "'", close = "'"},
    --   {open = '"', close = '"'},
    --   {open = '`', close = '`'},
    --   {open = '(', close = ')'},
    --   {open = '[', close = ']'},
    --   {open = '{', close = '}'},
    --   {open = '<', close = '>'}
    -- },
    -- ignore_beginning = true, --[[ if the cursor is at the beginning of a filled element it will rather tab out than shift the content ]]
    -- exclude = {} -- tabout will ignore these filetypes
}
EOF

and I use vim-plug to manage my plug , maybe the problem is relative to the order of plug load

call plug#begin('$HOME/.config/nvim/plugged')
Plug 'abecodes/tabout.nvim'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
call plug#end()

source $HOME/.config/nvim/init/plugconf/tabout-nvim.vim
source $HOME/.config/nvim/init/plugconf/coc-nvim.vim

I found it should be imap rather than inoremap , my bad

@Meow-2 Sorry to bother you, but I have encountered same issue and I have tried the following two methods, but neither of them worked. Could you please tell me where I went wrong?
        vim.cmd([[
            imap <silent><expr> <TAB>
    \ pumvisible() ? "\<C-n>" :
    \ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
    \ "\<Plug>(Tabout)"
        ]])

I use map instead of tab
      keyset({ "i" }, "<tab>", function()
          if vim.fn["pumvisible"]() == 1 then
              return '<c-n>'
          elseif vim.fn["coc#expandableOrJumpable"]() == 1 then
              return "<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])<CR>"
          else
              return '<Plug>(Tabout)'
          end
       end, {noremap = false})

but both failed. I noticed that the way to write functions for tabs may also be different.
-- from coc.nvim
        local keyset = vim.keymap.set

        keyset("i", "<tab>", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "<TAB>" : coc#refresh()',opts)

any advice?

made it

@jensenojs @Meow-2
Thanks for sharing this, awesome 👍


Remove deprecated cmdline options and change defaults

Remove
--grpc-infer-thread-count
--grpc-stream-infer-thread-count
--allow-poll-model-repository
--allow-model-control
--model-control-mode default is "none"

Since we no longer support multiple ports should we also remove OPTION_HTTP_HEALTH_PORT and the related code?

Since we no longer support multiple ports should we also remove OPTION_HTTP_HEALTH_PORT and the related code?

Yes, that is a good point, I will add it to this PR.

I think it would be more appropriate to rename to the L0_multiple_ports test to L0_ports or something like that

I think it would be more appropriate to rename to the L0_multiple_ports test to L0_ports or something like that

Well, there are still multiple ports being tested, they are just not all http ports...


Internal server error does not work as it says for @layer

Describe the bug
I'm using @layer on my .css file but to have enforce the order of layer properly, the layers have to be defined before its use. When I put @layer order defined above @import, I'm getting the follow error which indicates that it should work but still gives the error.

It says aside from @charset and @layer statement which is my case but error keeps showing up. You can check out the reproduction for more testing.
Reproduction
https://stackblitz.com/edit/vitejs-vite-osezjn?file=style.css
Steps to reproduce
Run npm install and npm run dev
System Info
Not sure why but above code to output did not work for me

Used Package Manager
pnpm
Logs

Click to expand!

  vite:config bundled config file loaded in 444.25ms +0ms
  vite:config using resolved config: {
  vite:config   plugins: [
  vite:config     'vite:build-metadata',
  vite:config     'vite:watch-package-data',
  vite:config     'vite:pre-alias',
  vite:config     'alias',
  vite:config     'vite:react-babel',
  vite:config     'vite:react-refresh',
  vite:config     'vite:dts',
  vite:config     'vite:modulepreload-polyfill',
  vite:config     'vite:resolve',
  vite:config     'vite:html-inline-proxy',
  vite:config     'vite:css',
  vite:config     'vite:esbuild',
  vite:config     'vite:json',
  vite:config     'vite:wasm-helper',
  vite:config     'vite:worker',
  vite:config     'vite:asset',
  vite:config     'vite:wasm-fallback',
  vite:config     'vite:define',
  vite:config     'vite:css-post',
  vite:config     'vite:build-html',
  vite:config     'vite:worker-import-meta-url',
  vite:config     'vite:asset-import-meta-url',
  vite:config     'vite:force-systemjs-wrap-complete',
  vite:config     'commonjs',
  vite:config     'vite:data-uri',
  vite:config     'vite:dynamic-import-vars',
  vite:config     'vite:import-glob',
  vite:config     'vite:lib-inject-css',
  vite:config     'vite:build-import-analysis',
  vite:config     'vite:esbuild-transpile',
  vite:config     'vite:terser',
  vite:config     'vite:reporter',
  vite:config     'vite:load-fallback'
  vite:config   ],
  vite:config   css: { transformer: 'lightningcss', lightningcss: { targets: [Object] } },
  vite:config   build: {
  vite:config     target: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ],
  vite:config     cssTarget: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ],
  vite:config     outDir: 'dist',
  vite:config     assetsDir: 'assets',
  vite:config     assetsInlineLimit: 4096,
  vite:config     cssCodeSplit: true,
  vite:config     sourcemap: true,
  vite:config     rollupOptions: { external: [Array], output: [Object], onwarn: [Function: onwarn] },
  vite:config     minify: 'esbuild',
  vite:config     terserOptions: {},
  vite:config     write: true,
  vite:config     emptyOutDir: null,
  vite:config     copyPublicDir: true,
  vite:config     manifest: false,
  vite:config     lib: { entry: [Object], name: 'MyLib', fileName: 'my-lib' },
  vite:config     ssr: false,
  vite:config     ssrManifest: false,
  vite:config     ssrEmitAssets: true,
  vite:config     reportCompressedSize: true,
  vite:config     chunkSizeWarningLimit: 500,
  vite:config     watch: null,
  vite:config     cssMinify: 'lightningcss',
  vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
  vite:config     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] },
  vite:config     modulePreload: { polyfill: true }
  vite:config   },
  vite:config   optimizeDeps: {
  vite:config     holdUntilCrawlEnd: true,
  vite:config     exclude: [ 'storybook' ],
  vite:config     esbuildOptions: { preserveSymlinks: false, jsx: 'automatic' },
  vite:config     include: [
  vite:config       'react',
  vite:config       'react/jsx-dev-runtime',
  vite:config       'react/jsx-runtime',
  vite:config       'react/compiler-runtime'
  vite:config     ]
  vite:config   },
  vite:config   esbuild: { jsxDev: false, jsx: 'automatic', jsxImportSource: undefined },
  vite:config   resolve: {
  vite:config     mainFields: [ 'browser', 'module', 'jsnext:main', 'jsnext' ],
  vite:config     conditions: [],
  vite:config     extensions: [
  vite:config       '.mjs',  '.js',
  vite:config       '.mts',  '.ts',
  vite:config       '.jsx',  '.tsx',
  vite:config       '.json'
  vite:config     ],
  vite:config     dedupe: [ 'react', 'react-dom' ],
  vite:config     preserveSymlinks: false,
  vite:config     alias: [ [Object], [Object] ]
  vite:config   },
  vite:config   configFile: '/Users/ben/Projects/pretty3a/vite.config.ts',
  vite:config   configFileDependencies: [ '/Users/ben/Projects/pretty3a/vite.config.ts' ],
  vite:config   inlineConfig: {
  vite:config     root: undefined,
  vite:config     base: undefined,
  vite:config     mode: undefined,
  vite:config     configFile: undefined,
  vite:config     logLevel: undefined,
  vite:config     clearScreen: undefined,
  vite:config     build: {}
  vite:config   },
  vite:config   root: '/Users/ben/Projects/pretty3a',
  vite:config   base: '/',
  vite:config   rawBase: '/',
  vite:config   publicDir: '/Users/ben/Projects/pretty3a/public',
  vite:config   cacheDir: '/Users/ben/Projects/pretty3a/node_modules/.vite',
  vite:config   command: 'build',
  vite:config   mode: 'production',
  vite:config   ssr: {
  vite:config     target: 'node',
  vite:config     optimizeDeps: { noDiscovery: true, esbuildOptions: [Object] }
  vite:config   },
  vite:config   isWorker: false,
  vite:config   mainConfig: null,
  vite:config   bundleChain: [],
  vite:config   isProduction: true,
  vite:config   server: {
  vite:config     preTransformRequests: true,
  vite:config     sourcemapIgnoreList: [Function: isInNodeModules$1],
  vite:config     middlewareMode: false,
  vite:config     fs: {
  vite:config       strict: true,
  vite:config       allow: [Array],
  vite:config       deny: [Array],
  vite:config       cachedChecks: undefined
  vite:config     }
  vite:config   },
  vite:config   preview: {
  vite:config     port: undefined,
  vite:config     strictPort: undefined,
  vite:config     host: undefined,
  vite:config     https: undefined,
  vite:config     open: undefined,
  vite:config     proxy: undefined,
  vite:config     cors: undefined,
  vite:config     headers: undefined
  vite:config   },
  vite:config   envDir: '/Users/ben/Projects/pretty3a',
  vite:config   env: { BASE_URL: '/', MODE: 'production', DEV: false, PROD: true },
  vite:config   assetsInclude: [Function: assetsInclude],
  vite:config   logger: {
  vite:config     hasWarned: false,
  vite:config     info: [Function: info],
  vite:config     warn: [Function: warn],
  vite:config     warnOnce: [Function: warnOnce],
  vite:config     error: [Function: error],
  vite:config     clearScreen: [Function: clearScreen],
  vite:config     hasErrorLogged: [Function: hasErrorLogged]
  vite:config   },
  vite:config   packageCache: Map(1) {
  vite:config     'fnpd_/Users/ben/Projects/pretty3a' => {
  vite:config       dir: '/Users/ben/Projects/pretty3a',
  vite:config       data: [Object],
  vite:config       hasSideEffects: [Function: hasSideEffects],
  vite:config       webResolvedImports: {},
  vite:config       nodeResolvedImports: {},
  vite:config       setResolvedCache: [Function: setResolvedCache],
  vite:config       getResolvedCache: [Function: getResolvedCache]
  vite:config     },
  vite:config     set: [Function (anonymous)]
  vite:config   },
  vite:config   createResolver: [Function: createResolver],
  vite:config   worker: { format: 'iife', plugins: '() => plugins', rollupOptions: {} },
  vite:config   appType: 'spa',
  vite:config   experimental: { importGlobRestoreExtension: false, hmrPartialAccept: false },
  vite:config   getSortedPlugins: [Function: getSortedPlugins],
  vite:config   getSortedPluginHooks: [Function: getSortedPluginHooks]
  vite:config } +15ms
vite v5.2.12 building for production...
✓ 16 modules transformed.
x Build failed in 689ms
error during build:
[vite:css] @import rules must precede all rules aside from @charset and @layer statements
file: /Users/ben/Projects/pretty3a/lib/ThemeProvider/ThemeProvider.module.css:5:8
SyntaxError: @import rules must precede all rules aside from @charset and @layer statements
 ELIFECYCLE  Command failed with exit code 1.

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

I'm not getting the same error with the repro:
[vite:css] @import must precede all other statements (besides @charset or empty @layer)
3  |  @layer reset, base, variant, state, component;
4  |
5  |  @import url(./tester.css) layer(base);
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6  |
7  |  :root {

I get this warning, and the wording is slightly different from what you're showing. Is there some other configuration that causes it?

Here's the full error when I run Vite build
> tsc && vite build

vite v5.2.13 building for production...
✓ 11 modules transformed.
x Build failed in 730ms
error during build:
[vite:css] @import rules must precede all rules aside from @charset and @layer statements
file: /Users/ben/Projects/pretty3a/lib/ThemeProvider/ThemeProvider.module.css:4:8
SyntaxError: @import rules must precede all rules aside from @charset and @layer statements
 ELIFECYCLE  Command failed with exit code 1.

@bluwy Did above help?

Not much unfortunately. I don't know the code that could have trigger the error instead of a warning for me. It's hard to debug from there on.

@bluwy The warning is also incorrect. I'm assuming it could be something on my config that is considering that same warning as an error but it looks like its from the same issue where the logic considers using @layer above @import to be incorrect.
Here's my config for reference:
import { resolve } from 'path'
import { defineConfig } from 'vite'
import { libInjectCss } from 'vite-plugin-lib-inject-css'
import dts from 'vite-plugin-dts'
import react from '@vitejs/plugin-react'

const ReactCompilerConfig = {
  sources: (filename: string) => {
    return filename.indexOf('src/path/to/dir') !== -1;
  },
};

export default defineConfig({
  plugins: [
    react({
      babel: {
        plugins: [
          ["babel-plugin-react-compiler", ReactCompilerConfig],
        ],
      },
    }),
    libInjectCss(),
    dts({
      exclude: ['**/*.stories.tsx']
    })
  ],
  css: {
    transformer: 'lightningcss',
  },
  build: {
    sourcemap: true,
    cssMinify: 'lightningcss',
    lib: {
      // Could also be a dictionary or array of multiple entry points
      entry: {
        index: resolve(__dirname, 'lib/main.ts'),
        button: resolve(__dirname, 'lib/Button/index.ts'),
      },
      name: 'MyLib',
      // the proper extensions will be added
      fileName: 'my-lib',
    },
    rollupOptions: {
      // make sure to externalize deps that shouldn't be bundled
      // into your library
      external: ['react'],
      output: {
        // Put chunk files at <output>/chunks
        chunkFileNames: 'chunks/[name].[hash].[format]',
        // Put chunk styles at <output>/assets
        assetFileNames: 'assets/[name][extname]',
        entryFileNames: '[name].[format]',
        // Provide global variables to use in the UMD build
        // for externalized deps
        globals: {
          react: 'React',
        },
      },
    },
  },
  optimizeDeps: {
    exclude: ['storybook']
  }
})

@bluwy I tried to see if I can find where the error handling was but seems like vite:css is not pubic and I can't check them out. Let me know if there's anything else I can provide to fix the incorrect warning/error.

bump!

By adding css.transformer: 'lightningcss' to the config, the error was reproduced. Please make sure the reproduction actually reproduces next time.
These warning/error messages are incorrect (https://github.com/postcss/postcss-import/issues/566, https://github.com/parcel-bundler/lightningcss/issues/803), but your CSS code is incorrect as well.
The spec disallows having @layer between @import.
I'm not familiar with CSS layers but probably the following CSS would achieve what you want to do.
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@100;200;300;400;500;600;700&display=swap') layer(font);
@import url(./tester.css) layer(base);

@layer font, reset, base, variant, state, component;

Closing as this is not a bug in Vite.

I needed the @import url(./tester.css) layer(base); to be after @layer rule so following worked
@layer reset, base, variant, state, component;
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@100;200;300;400;500;600;700&display=swap');
@import url(./tester.css) layer(base);

Fyi, I was able to reproduce the warning without having css.transformer being set to lightningcss, I'm not sure why it didn't reproduce for you. Might be another issue.
Also, I think the warning message is helpful in finding out how to fix the issue. I would suggest making the message clearer or even just adding the spec link would have helped me resolve.


Crashes VS2017 when opening Documentation

Whenever I try to open the Documentation (i.e. the link to the wiki), VS2017 freezes and then crashes.
My VS installation looks like this:
Microsoft Visual Studio Professional 2017
Version 15.4.5
VisualStudio.15.Release/15.4.5+27004.2010
Microsoft .NET Framework
Version 4.7.02046
Installed Version: Professional
Visual Basic 2017   00369-60000-00001-AA570
Microsoft Visual Basic 2017
Visual C# 2017   00369-60000-00001-AA570
Microsoft Visual C# 2017
Visual F# 4.1   00369-60000-00001-AA570
Microsoft Visual F# 4.1
AnkhSVN - Subversion Support for Visual Studio   2.7.12815.35086
AnkhSVN - Subversion Support for Visual Studio 2.7.12815.35086

Ankh.Package 2.7.12815.35086
Subversion 1.9.5 via SharpSvn 1.9005.3940.224
Git/LibGit2 0.24.0 via SharpGit 0.2401.1116.230

SharpSvn is linked to: Apr 1.5.2, Apr-util 1.5.4, Cyrus Sasl 2.1.26, eXpat 2.2.0, LibSSH2 1.8.0, OpenSSL 1.0.2k  26 Jan 2017, Serf 1.3.9, SQLite 3.17.0, Subversion 1.9.5-SharpSvn, Utf8proc 1.1.5, ZLib 1.2.8
SharpSvn is optionally linked to: Berkeley DB 4.4.20, SharpPlink 0.67.0(SharpSvn)
SharpGit is linked to: Apr 1.5.1, Apr-Util 1.5.4, eXpat 2.1.0, Libgit2 0.24.0, LibSSH2 1.7.0, OpenSSL 1.0.2h  3 May 2016, Subversion 1.9.3, Utf8proc 1.1.5, ZLib 1.2.8
AnyStatus   1.0
AnyStatus Detailed Info
ASP.NET and Web Tools 2017   15.0.30925.0
ASP.NET and Web Tools 2017
ASP.NET Core Razor Language Services   1.0
Provides languages services for ASP.NET Core Razor.
ASP.NET Web Frameworks and Tools 2017   5.2.50921.0
For additional information, visit https://www.asp.net/
Azure App Service Tools v3.0.0   15.0.30915.0
Azure App Service Tools v3.0.0
BuildVision   <IP_ADDRESS>
Building process visualization.
Cake for Visual Studio   <IP_ADDRESS>
Adds support for the Cake build tool in Visual Studio 2015 and 2017. Includes support for the Task Runner Explorer, new templates and bootstrapping important Cake files.
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
DevExpress.DeploymentTool   1.0
A useful tool for deploying DevExpress assemblies.
DevExpress.Win.LayoutAssistant Extension   1.0
DevExpress.Win.LayoutAssistant Visual Studio Extension Detailed Info
Extensibility Tools   1.10.188
Contains numerous tools and helpers that makes it easier than ever to build Visual Studio extensions.
File Nesting   2.6.67
Automatically nest files based on file name and enables developers to nest and unnest any file manually
JavaScript Language Service   2.0
JavaScript Language Service
JavaScript Project System   2.0
JavaScript Project System
JavaScript UWP Project System   2.0
JavaScript UWP Project System
JetBrains ReSharper Ultimate 2017.2.2    Build 109.0.20171006.122324
JetBrains ReSharper Ultimate package for Microsoft Visual Studio. For more information about ReSharper Ultimate, visit http://www.jetbrains.com/resharper. Copyright © 2017 JetBrains, Inc.
LayoutsORama   1.0
Information about my package
Merq   1.1.17-rc (cba4571)
Command Bus, Event Stream and Async Manager for Visual Studio extensions.
Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.50719.1
Microsoft Continuous Delivery Tools for Visual Studio   0.3
Simplifying the configuration of continuous build integration and continuous build delivery from within the Visual Studio IDE.
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers
Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package
Mono Debugging for Visual Studio   4.7.4-pre (c2d89eb)
Support for debugging Mono processes with Visual Studio.
NuGet Package Manager   4.4.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.
Open Command Line   2.1.179
Opens a command line at the root of the project. Support for all consoles such as CMD, PowerShell, Bash etc. Provides syntax highlighting, Intellisense and execution of .cmd and .bat files.
PreviewWindow Extension   1.0
PreviewWindow Visual Studio Extension Detailed Info
ResXManager   1.9.792.0
Manage localization of all ResX-Based resources in one place. Shows all resources of a solution and let's you edit the strings and their localizations in a well-arranged data grid.
SolutionConfigurationName   1.0
Information about my package
SQL Server Data Tools   15.1.61707.200
Microsoft SQL Server Data Tools
SQL Server Reporting Services   14.0.1012.227
Microsoft SQL Server Reporting Services Designers
Version 14.0.1012.227
Total Commander Launcher   <IP_ADDRESS>
A command to launch Total Commander in the currently selected Solution Explorer item context. Added to the Tools and Solution Explorer menu when a solution or project is open.
TypeScript   <IP_ADDRESS>
TypeScript tools for Visual Studio
Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio
Visual Studio Tools for Universal Windows Apps   15.0.27004.2010
The Visual Studio Tools for Universal Windows apps allow you to build a single universal app experience that can reach every device running Windows 10: phone, tablet, PC, and more. It includes the Microsoft Windows 10 Software Development Kit.
VisualStudio.IoT   1.0
Package with IoT components for Visual Studio
VisualStudio.Mac   1.0
Mac Extension for Visual Studio
Web Extension Pack 2017   15.0.2
The easiest way to set up Visual Studio for the ultimate web development experience.
WiX Toolset Visual Studio Extension   <IP_ADDRESS>588
WiX Toolset Visual Studio Extension version <IP_ADDRESS>588
Copyright (c) .NET Foundation and contributors. All rights reserved.
Xamarin   <IP_ADDRESS> (34c1b6c)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin.Android SDK   <IP_ADDRESS> (HEAD/c2a33d8ea)
Xamarin.Android Reference Assemblies and MSBuild support.
Xamarin.iOS and Xamarin.Mac SDK   <IP_ADDRESS> (51128b8)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.
XtraReports package   1.0
XtraReports package

The standalone application does not have this problem.


Short solution needed: "How to concatenate two slices" (golang)

Please help us write most modern and shortest code solution for this issue:
How to concatenate two slices (technology: golang)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

How to concatenate two slices


Decouple our HTTPParserDelegate from our http_parser C library

Description
This doesn't actually change any behavior external to this class. It's just cleaner, easier to follow (i.e. it has comments and references for the pointer manipulations) and it enables future work to allow the HTTPParserDelegate to become weak which will allow this parser to be reclaimed by ARC
Motivation and Context
Precondition to clean up memory leaks from #879 and #902
How Has This Been Tested?
ran swift test (also ran tests in Xcode with the AddressSanitizer on)
Put it into Sandbox-UI and ran my load-test suite against it (locally)

Resolved via issue IBM-Swift/Kitura#933


Can property ["import_taken_at"] be supported?

Provide us a use case of the feature
Some instagram photos have a property ["import_taken_at"], which should be the time of the photo taken on phone.
Describe the solution you'd like
Use as {import_date_utc} and {import_date_local} in filename specification.

Could you give an example for a photo that has import_taken_at?
And are we talking about posts or storyitems?
Generally, if hat property is null in the majority of cases, it is not suited to be used in the filename specification. However, I think it still might be worth to export it as a property.


ControlNet with Anime

Hello!
Amazing! The author just posted a tutorial to use ControlNet with Anime [AnythingV3] Link
I'm having a problem:
I run on Colab, the computer does not have enough VRAM to merge model.
Need at least 21.11 Gb RAM to load 3 model.
Can someone share with me the model after the merge "control_any3.pth"?
I need "Canny edge" model.
Thank you very much!

Now we have lots of anime models 🎉


fix: latency tests failing all the time in the CI (workaround)

This is terrible lol but if it unblocks CI, I congratulate you and will merge it 🎉


chore(circuits): better cpp error message for read_requests that hash to wrong root

Description
Better cpp error message for read_requests that hash to wrong root. Helped me in debugging multiple times.

Checklist:

[ ] I have reviewed my diff in github, line by line.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to the issue(s) that it resolves.
[ ] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[ ] The branch has been merged or rebased against the head of its merge target.
[ ] I'm happy for the PR to be merged at the reviewer's next convenience.

Nice improvement.


Consider replacing some javascript with Hypergen

https://hypergen.it

This does indeed look very interesting on first looks!

Seems like htmx is more flexible and straightforward.


Generics inferred as JSX.Element

TypeScript Version:  3.2.0-dev.201xxxxx

Search Terms:
generics, JSX.Element
Expected behavior:
Correct Generic inferrence.
Actual behavior:
Generics inferred as JSX.Element.
Playground Link:
Works fine in typescript playground.
The commented code works as well but there is a problem while using arrow function.
Related Issues:
None.

Ok I will keep this in mind.
Any work around for the same....?
On Mon 8 Oct, 2018, 1:56 AM Matt McCutchen<EMAIL_ADDRESS>wrote:

Duplicate of #15713 https://github.com/Microsoft/TypeScript/issues/15713
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/27595#issuecomment-427684115,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVMSFTtxIv8MyMeskW4FwJQ12-Uwr_pWks5uimNmgaJpZM4XL_Fm
.

@guptaamol use normal function instead of arrow function. Use as Type instead of <Type> for type casting.
Seemingly you enabled jsx in tsconfig, if you are not using JSX, you could just disable it.


Adding support for laravel 8

Hi,
this PR adds support for Laravel 8.
Regards
Magnus

Thanks @maegnes !


fix: add namespace filtering when getting pods/services for jobs

What this PR does / why we need it:
If two jobs are created with the same name and different namespaces, pods/services are not created for the later one since some controllers get pods for jobs only by name and not by namespace.
Please refer #1543 for the problem.
Which issue(s) this PR fixes (optional, in Fixes #<issue number>, #<issue number>, ... format, will close the issue(s) when PR gets merged):
Fixes #1543
Checklist:

/ok-to-test


RKE1 template tains effect is not visible

RKE1 selected template taint is not readable in dashboard (chrome).
To reproduce:

Cluster Management -> RKE1 Configuration -> Node templates
Add Template -> Digital Ocean -> Configure Droplet
Taints -> Add Taint

Tested on v2.6-head (25d39aa)

Works fine in v2.6-head (4def656)


Shape borders don't align with rounded corners

Regression?
No
Hyprlock Info and Version
Hyprlock version 0.6.0
 Hyprlock config
shape {
  monitor =

  border_size = 200
  color = rgb(ff0000)

  size = 900, 1300
  rounding = 150

  position = 0, 0
  halign = center
  valign = center
}

Compositor Info and Version
 System/Version info
Hyprland 0.46.2 built from branch  at commit 0bd541f2fd902dbfa04c3ea2ccf679395e316887  (version: bump to 0.46.2).
Date: Thu Dec 19 19:26:47 2024
Tag: v0.46.2, commits: 5566
built against:
 aquamarine 0.5.1
 hyprlang 0.6.0
 hyprutils 0.3.0
 hyprcursor 0.1.11
 hyprgraphics 0.1.1

flags set:
debug

System Information:
System name: Linux
Node name: cypher
Release: 6.12.6-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Thu, 19 Dec 2024 21:29:01 +0000

GPU information:
c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c2) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Description
I made a super ugly config to show case the issue. The shape's inner border radius doesn't follow the shape's rounding radius. I don't think this is intended. In my example screenshot, I'd expect the light blue part to touch the red part.
How to reproduce
I provided a minimal example above that produces the problematic shape.
Crash reports, logs, images, videos
What I get:

What I expect:

@PaideiaDilemma that would require inner radius being separate. I believe the hyprland shader supports this?

@vaxerski yep, the shader supports this. But it is not wired through it seems. Should have tested shape a bit better.
Gonna look into it today or tomorrow


Allow to construct a column for a generic parameter

Adding a non-defaulted method to a trait in the public API is a breaking change.


PID implementation - Parallel vs Ideal

I wanted to discuss a bit in this issue the different types on PID controllers. The main reason is that I find the current implementation not intuitive to adjust manually.
Parallel:
This is the current implementation of the rate and velocity controllers in PX4. The specificity of that implementation is that the P, I and D path are independent. This sounds to be a good idea, but in practice it is not practical because modifying the proportional gain (P) changes the integral and derivatives actions. Consequence: both decreasing or increasing the P gain can destabilize the system because decreasing P increases the integral effect.

Ideal:
This implementation is widely used in commercial controller as it decouples the integral and derivative actions from the proportional gain: The gain of the controller is defined by the P gain, the integral action by its time constant Ti (or Ki' = 1/Ti) and the derivative action by Td (or Kd' = Td).

Describe problem solved by the proposed feature
Adjusting a parallel PID controller requires to modify all three gains together. This a a reason why the tuning sequence is "Set I and D to zero, tune P and D together and then add a bit of I to reduce the steady-state error." and that some vehicles are poorly tuned because "the integrator is scary".
Changing to the ideal form should make the tuning easier. In order to show why it is not intuitive, I collected some rate controller gains of the standard config files, computed the integral and derivative effects and plotted the integral effect with the Ki gain (scaled up) on the same graph.
On the graph, you can directly see that more Ki doesn't necessarily mean "more integral action".
Take for example the M100 and the Mid size quad 1: the M100 has 20% more integral action but it's Ki gain is three times smaller. Also, its derivative time constant is only 50% smaller even if Kd is 7 times smaller. This is simply because the proportional gain of those two vehicles are quite different, mainly due to different propulsion systems and inertia. Furthermore, Td is quite constant across the frames but Kd have to be tuned every time Kp changes.
I am convinced that a simple slider that changes the Kp' gain of an ideal PID would be enough to tune most of the vehicles.

Implementation
We can easily convert the actual algorithm into a Ideal form by introducing a "Controller gain" Kc that multiplies Kp, Ki and Kd. This Kc can then be mapped to a slider in QGC to increase or decrease the performance/robustness of the controller.
FYI: @bkueng

Very cool! Let's make sure we can execute on this on a fixed timeline.

Sounds very cool!
I was curious and displayed the gains you collected:

For the derivative part (left), it indeed looks like Kd was tuned together with Kp. Sounds like Kc=Kp, Kp'=1, Kd'=0.029 would be a good starting point.
For the integrator, however, there is no such correlation between Kp and Ki, two options:

the platforms were not properly tuned (as you said "the integrator is scarry")
the platforms were properly tuned, and it is better not to scale the integral action with Kc

@jlecoeur It is important to note that we have protected against large I gains with this commit, so tuning can now include a large I gain:
https://github.com/PX4/Firmware/commit/ea31f34d09b542fcad7087aa9c9d9c27ddad6ce9
I would also argue that a lot of airframe configs here would not stand an evaluation on what we consider "great performance", as we find that community-provided tuning values are hit-and-miss. My take-away is that we need to centralize these configs and make sure we have the same scrutiny on them as we have on code changes.

@jlecoeur Thanks for your input and the graphs. Yes, there is a quite clear linear relation between Kp and Kd.
There is no visible linear relation between Kp and Ki because Kp mainly depends on total thrust and inertia ratio while Ki depends essentially on the inertia of the vehicle.

Weak and heavy vehicle: high Kp, low integral
Powerful and heavy vehicle: low Kp, low integral
Weak and light vehicle: high Kp, high integral
Powerful and light vehicle, high Kp and high integral

(when I say "low integral", understand low 1/T1 or low Ki')
In summary, the integral time constant is more correlated with the size of the vehicle than Kp. This is why in the table of my original post (sorted by increasing 1/T1), the VTOL plane is at the top, the medium size drones at the middle and the racers at the bottom while the Kp gains seem more random (even if a racer usually have a much higher thrust-to-weight ratio than other drones).
I'll add a new variable for the "controller gain" with a default of 1.0 and try with different platforms to see if it's really easier to tune in practice. Since it only scales the other gains, there will be no visible changes for the current setups.

@bresch sounds good!
If it turns out that you often need to tune Kc and Ki separately then you may consider an "ideal-parallel" implementation where Kc scales both the proportional and derivactive actions, but not the integral action.
I

@jlecoeur In fact you still want to Ki with Kc because this decouples the static part (pure gain) from the dynamic tuning (integral and derivative time constants).
Intuitive example
Let's look at the following scenario:
You have a drone well tuned for you application with the gains Kp, Ki and Kd. Now, you want to update your lifting system to use 6S batteries instead of 4S and even if you changed the motors with a lower KV, the gain of the system is now higher. To obtain the same behavior as before, you have to adjust the gains.

Parallel PID: In parallel form, you would have to adjust together Kp, Ki and Kd (reducing Kp only might create oscillations). You will mot likely en up setting Ki to zero and start the tuning from scratch.

Ideal PID: Since the Kp' gain controls the overall gain of the controller, the only adjustment you need to do is to reduce this gain in order to keep the product Kp' x drone gain constant. Since nothing else changed on the drone there is no reason why the integral and derivatives time constants should change.

Proof
A more theoretical proof can be shown by inspecting the transfer functions of both Ideal and Parallel PID controllers:

We clearly see that the zeros of the ideal transfer function are defined by Ki' and Kd' while in the parallel form, the proportional gain affects the position of the zeros.

Very clear explanation, thank you! Looking forward to seeing the PR ;-)


Update to django-reversion 3.0.0

Description of change
See https://github.com/etianen/django-reversion/blob/master/CHANGELOG.rst.
The main change is that django-reversion now stores JSON in the comment field for updates made via the admin site, and that Revision.get_comment() should be used to access comments instead of Revision.comment.
There should be little effect on us as Revision.get_comment() handles both admin JSON log entries and plain strings.
Checklist

[x] Have any relevant search models been updated?
[x] Have any relevant fixtures (fixtures/test_data.yaml) been updated?
[x] Have any relevant select-/prefetch-related field lists in the views and search apps been updated?
[x] Has the admin site been updated (for new models, fields etc.)?
[x] Has the README been updated (if needed)?

Codecov Report

Merging #1067 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #1067   +/-   ##
========================================
  Coverage    96.18%   96.18%
========================================
  Files          216      216
  Lines         6180     6180
  Branches       594      594
========================================
  Hits          5944     5944
  Misses         166      166
  Partials        70       70

Impacted Files
Coverage Δ

datahub/core/audit.py
89.13% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


[Code Translation] Modify prompt and streaming format

Type of Change
bug fix
Description
Modify prompt and streaming format of Code Translation
How has this PR been tested?
Local tested and integrated with frontend @WenjiaoYue .
Dependency Change?
None

Please add test workflow for CodeTrans.


Stream magnet from firefox/chrome context menu

In windows cmd peerflix "magnetlink" --mpv works as it should and works great, i was wondering if there is a way to bypass copying magnet link -> open cmd -> type in peerflix "" --mpv, and then pasting the magnet link in the quotes.
Would it be possible to just add a context menu option in the browser to just skip these steps, and if so - how?
edit:
What i want to be done looks like it's possible with Play with MPV (Chrome) or Send to MPV player (Firefox) in conjunction with the mpv-peerflix-hook lua script. I'm just having issues with the lua script right now and waiting for a response from the dev.

You could just use Powder Web:
https://github.com/jaruba/PowderWeb
It's a hobby project of mine, based on peerflix (highly customised version), you can then associate the app with magnet links, and the default video player will start (unless u choose a different video player in the settings) when u press magnet links in ur browser.

Unfortunately it doesn't look like that would work for my use-case, i associate all .torrent and magnet links to deluge for full downloading and i would only occasionally use peerflix, so it's not something i would want to make as default behavior on a left click 😞

I use torrents mostly for media, and I associate only magnet links with Powder Web, and torrent files with a different torrent client. So for media I just press the magnet links, for anything else I use the torrent file.
Alternatively, u will need to code 2 browser addons (one for chrome and one for firefox), if u want context menu options that open peerflix directly like u said. And this might be a seriously lengthy task for u.

Hmm that does look like something i would be willing to try if my current plan doesnt pan out
What i want to be done looks like it's possible with Play with MPV (Chrome) and Send to MPV player (Firefox) in conjunction with the mpv-peerflix-hook lua script. I'm just having issues with the lua script right now and waiting for a response from the dev.
While that is ongoing ill def try out PowderWeb 😃

I use the External Application Button extension in chrome, most external running command extensions broke when chrome stoped supporting NPAPI plugins. but this extension bypasses that by running a client on your computer that grabs external run commands you make.

Hi! I made a project that does exactly this! At least on chrome with VLC, but feel free to contribute!:
https://github.com/fredericocurti/magneto


djenrandom: init at 1.0

Description of changes
Add djenrandom as a package. djenrandom is a tool to generate random data.

djenrandom contains several models (biased, normal, etc.), which can be used for random bit generation.
As stated in the github repository: "This program generates random data with known controlled statistical properties. Its primary reason for existing is to provide test data for calibrating and validating random number testing algorithms."
For more details: https://github.com/dj-on-github/djenrandom
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 245757 run on x86_64-linux 1

1 package built:

djenrandom

Looks pretty good. Only the sha256 has to be changed to hash the rest of my comments are just nits.
I can't cross compile the derivation to aarch64. Idk if that's important to you.
The source code is x86 specific. I have changed meta.platforms to reflect this. Thanks for the comment.

Compilation on x86_64-darwin succeeds now too (see: https://github.com/NixOS/nixpkgs/pull/245757/checks?check_run_id=16208011189).