PolicyState

A policy should map policy states to actions
Up until this time, we have conceptualized a policy to be a mapping from beliefs to actions, and we have given responsibility for defining the belief structure and update behavior to the problem writer. However, a more general formulation that is perhaps more appropriate in this context is that a policy maps a policy state (that may be a belief) to an action. This reflects the fact that many advanced POMDP solvers have a closely associated belief representation, so they maintain and update their own state or belief. Thus, belief maintenance should be under control of the solver writer rather than the problem writer (though the problem writer will provide a structure for representing a distribution over states that can be used to represent the initial belief, and may provide exact belief updates for the policy to use if they are available).
The policy state will take different forms for different solvers. For example, the policy state for an MCVI policy is the node in the policy graph, the policy state for a POMCP policy is the action-observation tree and associated particle filter, and the policy state for a policy that feeds a baby when it is crying is simply the previous observation.
In order to implement this new paradigm, we are considering adding three things to the interface (there will probably be other minor changes associated with this as well).
First, we will introduce a new abstract type
abstract PolicyState

Second, we will introduce a function to create an initial policy state at the beginning of the simulation
function initial_policy_state(policy::Policy, belief::Belief)

(also the standard create_policy_state(p::Policy) will be declared)
Finally, we will replace the belief function in the simulation loop with a function that updates the policy state (which, again, could be a belief representation)
function update(policy::Policy, ps_old::PolicyState, a::Action, o::Observation, ps_new=create_policy_state(policy))

A simulation loop will look like this:
function simulate(sim::MySimulator, pomdp::POMDP, policy::Policy)

    # initialize belief, state, stopping criteria, allocate stuff etc
    ...

    # create the policy state from the initial belief
    ps = initial_policy_state(policy, belief)
    ps2 = create_policy_state(policy)

    while ... # stopping criteria

        a = action(policy, ps, a)
        r += reward(pomdp, s, a)

        # sample the next state and observation
        trans_dist = transition(pomdp, s, a, trans_dist)
        rand!(sim.rng, s2, trans_dist)
        obs_dist = observation(pomdp, s2, a, obs_dist)
        rand!(sim.rng, o, obs_dist)

        ps2 = update(policy, ps, a, o, ps2)

        # switch things around so we don't have to allocate more
        tmp=s; s=s2; s2=tmp;
        tmpps=ps, ps=ps2, ps2=tmpps;
    end
end

Issues
There are a few issues that we need to nail down before adding this:
Type Heirarchy
The proper location of PolicyState in the type heirarchy is not completely clear. Originally we thought that Belief and PolicyState should simply be aliased
typealias PolicyState Belief

However, this is a little strange because a PolicyState may not be sampleable even though it will then be a subclass of AbstractDistribution.
Belief should perhaps be a subtype of PolicyState because it is a policy state that can be sampled. However, since julia does not allow multiple inheritance, Belief could no longer be an AbstractDistribution.
Another option is to declare that, PolicyState is not connected by inheritance to any other classes, and if a policy state is based on the belief, it should include the belief as a member, i.e.
type MyPolicyState <: PolicyState
    b::Belief
end

Another wrinkle to think about is that, for an MDP, the policy state could be the MDP state itself, but I think we should just handle this separately with an extra action(..., s::State,...) function like we have now.
Arguments
We need to decide for sure what the arguments for each function should be. In particular, we need to answer whether the following arguments should be in the following functions:

pomdp in action? (I think no because the policy should have knowledge of the pomdp from the call to solve())
pomdp in create_policy_state? (I think no for the same reason as above)

Problem Specific Belief Updates
Should POMDPs.jl still contain a standard belief update interface (I think it should), or should we break it out into a different package that can focus more on it? Should it look any different? Does this have any bearing on (#32)?
Does anyone have any thoughts on this?

While biking back I thought of two things:

We could call update observe or some other more descriptive word
Actually I think we should take the exact belief update interface out of POMDPs.jl and put it in another package. Then we can make it as nice and fancy as we want without worrying about cluttering up POMDPs.

What if we keep Belief and PolicyState separate in the type hierarchy, but then change the ::PolicyState argument in both action and update to be a ::Union(Belief, PolicyState) argument?

+1 for making a union of Belief and PolicyState. Really good idea!
Also, very nice write-up!

We could also overload update (or could be called observe) to act as the standard belief update interface. If #32 is adopted, there could be two function declarations in POMDPs:
function update(policy::Policy,
                ps_old::Union(PolicyState, Belief),
                a::Action,
                o::Observation,
                ps_new::create_policy_state(policy))

and
function update(updater::BeliefUpdater,
                belief_old::Belief,
                a::Action,
                o::Observation,
                belief_new::create_belief(updater))

In the simulation loop, this function would always (this is important!) always always be called with the policy as the first argument (so the first method would be dispatched). The second method might be called within update(policy, ...) if the policy needs to perform belief updates if the policy state is a belief or contains beliefs (a default belief updater could be defined by the problem-writer for the policy to use).
Thus the second method defines the interface that the problem-writer could use to communicate exact belief update behaviour to the solver-writer in a standard way (it replaces the belief function we have now).

I need to give this more thought. I think that anytime new terminology or concepts are introduced in a somewhat established field (such as POMDPs), there is a pretty heavy burden of proof to show that the new thing is valuable and cannot be expressed through existing concepts/terminology. I'd like to take a closer look at the solvers mentioned, for example, and see if beliefs/belief updating cannot be done cleanly without introducing PolicyState. Here are a few quick thoughts in the meantime:

Personally, I've never considered belief update functions to be the responsibility of problem writers. As I mentioned in an earlier comment, I see belief updaters getting created/provided along with solvers in the near future and in dedicated packages in the long term. I also think that a basic belief updating interface should be in POMDPs.jl, since the problem is one of its inputs, but I suppose I can be persuaded to rip it all out and put it in a separate package.

Even with the latest comments from @zsunberg, it still does not look to me that introducing PolicyState will help solve the issue described in #33.

If there is an unease with having objects of Solver subtypes as arguments to 'create_belief' or 'initial_belief', we can dispatch on Belief subtypes. That should help in keeping the separation of church and state (eh... belief updaters and solvers) intact.

While we are on the subject, I think that the names 'belief', 'update', or 'observe' for the belief updating function are too ambiguous. I don't see anything wrong with sparing a few more characters and calling the function 'update_belief', where it will be instantly clear what it does to anyone familiar with the field. I know that the name was shortened to bring it more in line with 'action', 'solve', and such, but to me clarity outranks conciseness (and, frankly, I think that 'get_action' would go better with 'create_action', for example).

@ebalaban, thanks for your comments - I think it is really useful to have someone act as the current interface's "defense attourney" so that only polished ideas make it into the interface.
I'll try to address some of these concerns briefly.
First, the concept of a policy state is not entirely new. It is present explicitly, for example in the MCVI paper [1], see Section 3.1 "The finite state controller does not maintain the robot’s belief explicitly, as in (3). It encodes the belief implicitly in the controller state based on the robot’s initial belief b and the sequence of observations received."
Second, this can indeed all be expressed using existing concepts/terminology if the policy state is implemented as a Belief object as I have been doing with POMCP up to this point. This is strange though because the most convenient way to represent the policy state may not look much like a belief, so the PolicyState type might make it clearer. The only hiccup to this is that we are missing a way to automatically convert from the initial belief, which must be specified in problem-specific terms to the initial policy state. I proposed specialize_belief in #33 as a band-aid for this, and now we have initial_policy_state to fix it.
To address the first bullet: Yes, as you say belief updaters would, at least initially, (and I suspect nearly always, even in the future) be closely tied to solvers. This is why we were thinking that the policy should be the most important player in the policy state/belief update. if the solver can handle different approximate ways of updating beliefs, that can be included in the policy object.
To address the second bullet, I think initial_policy_state(..., initial_belief(pomdp)) can be used to get the same functionality as initial_belief in #33 and create_policy_state can function in the same way as create_belief in #33. Both of these functions can certainly return a belief because, for many solvers, the policy state will indeed be a belief.
[1] Bai, H., Hsu, D., Lee, W., & Ngo, V. (2011). Monte Carlo value iteration for continuous-state POMDPs. Algorithmic Foundations of Robotics IX, 175–191. Retrieved from http://link.springer.com/chapter/10.1007/978-3-642-17452-0_11

Very nice writeup and discussion. Getting the right design is hard stuff.
Here is an alternative idea that might address some of Edward's and Zach's concerns. It's a little radical and contrary to what I was originally thinking.
0. There is a "problem designer" (the domain expert), a "solver writer" (who writes solvers for generic problems), and an "experimenter" (who runs experiments).

Don't have the problem designer worry about belief.
Only the solver writer should worry about the belief representation.
The experimenter would tell the solver how to initialize (sometimes this would be some distribution, a set of particles, a Gaussian distribution, etc.)
Just use Belief instead of PolicyState. The belief is just the state of the policy.
Just call the update function update. I think this is the more object-oriented and Julian way to do it. We don't have print_array and print_float and print_integer; we just have print.

Here's the example:
function simulate(sim::MySimulator, pomdp::POMDP, policy::Policy, initial_state::State, belief::Belief)
    # allocate a, o, trans_dist, obs_dist
    s = deep_copy(initial_state)
    while ... # stopping criteria
        a = action(policy, belief, a)
        r += reward(pomdp, s, a)
        trans_dist = transition(pomdp, s, a, trans_dist)
        rand!(rng(sim), s, trans_dist)
        obs_dist = observation(pomdp, s, a, obs_dist) # check ordering of s and a
        rand!(rng(sim), o, obs_dist)
        update(policy, belief, a, o)
    end
end

Here is an alternative idea that might address some of Edward's and
Zach's concerns. It's a little radical and contrary to what I was
originally thinking.

While undeniably radical, I think this is closer to what I had in mind :-)

There is a "problem designer" (the domain expert), a "solver
writer" (who writes solvers for generic problems), and an
"experimenter" (who runs experiments).
Don't have the problem designer worry about belief.
Only the solver writer should worry about the belief representation.
The experimenter would tell the solver how to initialize (sometimes
this would be some distribution, a set of particles, a Gaussian
distribution, etc.)

Ok, but how? The problem would still contain the domain knowledge needed
to form an initial belief, right?  In what form would it be described
there? How would it get communicated (by the experimenter) to the
solver? Are you assuming that the experimenter will need to figure out
the domain knowledge for the initial belief on his/her own? How does it
get extracted out of the solver (in its new "solver-native" form) to be
passed to the belief updater?

Just use Belief instead of PolicyState. The belief is just the
state of the policy.

I agree. I understand that Zach wants to be precise in how we classify
things, but I don't think that it's that much of a stretch to call what
MCVI uses a 'belief', for instance. If I understand it correctly, I
don't see the term 'policy state' adding enough semantically to justify
its introduction.

Just call the update function |update|. I think this is the more
object-oriented and Julian way to do it. We don't have print_array and
print_float and print_integer; we just have print.

That's fine. I guess I am still not completely assimilated into the
Julian way :-) I think a while ago there was a discussion about using
the convention of the first function argument being the one that's
getting modified. I realize that this is not always possible (e.g., when
we have optional arguments), but whenever is, I'd prefer at least that,
for the sake of readability.
I still don't quite understand the rationale behind storing the belief
updater object inside the policy object, however. What am I missing? I
know that for online solvers policy objects are a catch-all kind of a
thing already anyway, but still, why not have update(belief::Belief,
bu::BeliefUpdater, a::Any, o::Any), for example? And if access to the
belief updater is needed within the solver, why not store a reference to
the belief updater there? Just trying to keep things as intuitive as
possible...

Here's the example:
function  simulate(sim::MySimulator, pomdp::POMDP, policy::Policy, initial_state::State, belief::Belief)
# allocate a, o, trans_dist, obs_dist
s=  deep_copy(initial_state)
while  ...  # stopping criteria
a=  action(policy, belief, a)
r+=  reward(pomdp, s, a)
trans_dist=  transition(pomdp, s, a, trans_dist)
rand!(rng(sim), s, trans_dist)
obs_dist=  observation(pomdp, s, a, obs_dist)# check ordering of s and a
rand!(rng(sim), o, obs_dist)
update(policy, belief, a, o)
end
end
—
Reply to this email directly or view it on GitHub
https://github.com/sisl/POMDPs.jl/issues/34#issuecomment-144275757.

@mykelk, right. If you recall, during out meeting on Monday, I think I said "We don't actually need to add anything - we can just call it Belief". So I think that part is fine :). The main conceptual point is that the "belief" that the policy feeds back on will usually be policy-specific.
As @ebalaban says, though, everyone will have to think about belief. The initial belief will often be most naturally specified in a problem-specific domain, so the problem designer should at least provide a belief structure. Moreover, if there is a convenient exact or problem-specific-approximate belief update, there should be a mechanism for the problem designer to specify it (in POMDPs or another package). POMCP, for example, can either use its own particle filter or exact updates to construct the tree.
As you suggest in (3), we should certainly allow the experimenter to specify details of the initial policy-specific belief if they wish (I now see that this was a big part of #33), but we also need to provide a standard function to automatically create a policy-specific belief from a problem-specific belief. The experimenter should not have to learn the structure policy-specific belief if they don't want to. This was specialize_belief in #33 or initial_policy_state here.

See my comment on #32 for how to include BeliefUpdater in this.

@zsunberg: what if we do some kind of convert(::Type{MCTSBelief}, b::GridWorldBelief)?

@mykelk, so the experimenter would call convert(typeof(create_belief(policy)), initial_belief) either before or within simulate? This is a little clunky, but I guess it would work. The point is for the experimenter to not have to look up and type out the name of the policy specific belief structure and replace it every time he wants to try a new solver.
I suppose that update could just automatically convert it after the first iteration. i.e. the belief_old argument to update would be a problem-specific belief, but it would return a policy-specific belief. I couldn't do that before now because the policy was not an argument to belief, but now it would work just fine. The more I think about it, the more I am satisfied with just doing the conversion within update even though it's not very explicit.

Hmmm... I'm not married to what I suggested. I think Julia can do automatic conversion. Right?

closing after our in-person discussion friday - will be addressed in #35


Run tests with pytest directly instead of via tests/run_all_tests.sh

After some discussion with @avital, I started a PR, but saw that the change may be a bit more involved. Opening an issue here for feedback.
Introduction
Where we are today: We use tests/run_all_tests.sh because our example tests have conflicting names (train_test.py) and there are some additional checks (e.g., warn if example doesn't have tests). Perhaps by design, tests/run_all_tests.sh also lets us have very self-contained examples by collecting/running each one with different pytest calls.
Why that might be suboptimal: Testing can quickly become brittle. As an example, I wanted to avoid a second call to pytest tests while creating coverage reports, so I made these changes to tests/run_all_tests.sh. Not my best work...
What's the blocker: absl maintains a global FLAGS object that raises a DuplicateFlagError exception because multiple examples use, for instance, learning_rate as a flag. Because pytest collects tests before distributing to pytest-xdist, we fail.
Possible solution: @avital mentioned that @Marvin182 suggested splitting

all examples into, e.g., mnist_train.py (just a train function, no flags, no main) and mnist_main.py (with FLAGS).

At the end of the day, hopefully this minimally impacts both example maintainers (i.e., follow some documentation to set up an example in the expected way) and users (can still cd in and run).
Proposal
Just wait for #231.
Transition

One PR / example with reviews from example maintainers
Add notes to flax/examples/README.md describing the new example structure
Remove tests/run_all_tests.sh. Given the philosophy re examples, I don't think we need an automated check. If we want all examples to have tests, we just make them have tests.

I just created #231 to add guidelines for examples. As part of this I'm also advocating to split examples into a library without flags and a small main file with the flags.
I'm not sure I agree with the idea to add a __init__.py and switch to relative imports. What benefit would that provide?

I believe pytest will complain without since examples is not a package and pytest is running from the root repository directory, but I haven't looked very carefully into this. Do you have suggestions?

Believed I figured it out; corrected the proposal.

I agree that we should wait for #231 after which this should be basically automatically resolved. Keeping the issue open to remind us to update our testing documentation once that's in.

Yeah, this will be very helpful so that we can trivially increase parallelism as the number of examples grows.

Looks like in #231 it's been decided that not all examples must use exactly the same directory structure, so it seems unlikely that we'll be able to guarantee that no two test directories contains the same filenames. So I don't know if we'll be able to resolve this. I'll mark it closed, but if people have thoughts on this please let us know!


pythonPackages.x256: init at 0.0.3

Motivation for this change
I want to add the gif-for-cli python app and it needs this as dep
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

In that case, please create a single PR in which you add x256 as well as git-for-cli.


What does "Error: failed to call OrtRun(). error code = 6." mean? I know it is ONNX related, but how to fix?

Question
I keep running into the same issue when using transformers.js Automatic Speech Recognition pipeline. I've tried solving it multiple ways. But pretty much hit a wall every time. I've done lots of googling, LLMs, and used my prior knowledge of how this stuff functions in python. But I can't seem to get it to work.
I've tried setting up my environment with and without vite. I've tried with react javascript. I've tried with with react typescript. Nothing.
Am i missing a dependency or something? is there a place I can find what the error code means? because I couldn't find it anywhere.
I've fed it an array. I've fed it a .wav file. Nothing works. No matter what I do. No matter if it's an array or a wav file. I always get the same error:
An error occurred during model execution: "Error: failed to call OrtRun(). error code = 6.".
Inputs given to model: {input_features: Proxy(Tensor)}
Error transcribing audio: Error: failed to call OrtRun(). error code = 6.
    at e.run (wasm-core-impl.ts:392:1)
    at e.run (proxy-wrapper.ts:212:1)
    at e.OnnxruntimeWebAssemblySessionHandler.run (session-handler.ts:99:1)
    at InferenceSession.run (inference-session-impl.ts:108:1)
    at sessionRun (models.js:207:1)
    at encoderForward (models.js:520:1)
    at Function.seq2seqForward [as _forward] (models.js:361:1)
    at Function.forward (models.js:820:1)
    at Function.seq2seqRunBeam [as _runBeam] (models.js:480:1)
    at Function.runBeam (models.js:1373:1)

It seems to be a ONNX Runtime issue. But don't know how to fix it. Any guidance will be appreciated.
Note: I'm currently testing with English. Nothing fancy.

Hi there 👋  error code 6 is usually related to memory issues. Can you provide the code you are running (as well as the model being used)?

Note that every single call to
const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-medium');

allocates new memory for a pipeline (and takes a lot of time to construct the model). This is most likely the reason for your out-of-memory issues, since you call this every time you transcribe audio.
I would also recommend selecting a smaller model, like https://huggingface.co/Xenova/whisper-base, https://huggingface.co/Xenova/whisper-small, https://huggingface.co/Xenova/whisper-tiny, https://huggingface.co/distil-whisper/distil-medium.en, or https://huggingface.co/distil-whisper/distil-small.en.
Hope that helps!

That's good to know. However this happens on the first call. The dev machine i'm trying to run it in has a RTX 4090. So I'm surprised that's the issue.

The dev machine i'm trying to run it in has a RTX 4090. I'm surprised that's the issue, since i've never run into memory problems when running whisper in python. Does WebGPU have a memory ceiling?

Assuming you are running Transformers.js v2, everything still runs with WASM/CPU. You can follow along with the development of v3 here, which will add WebGPU support.


[BUG] Error when trying to get  schema from TwoTower model

Bug description
I am getting the following error from model.schema.
I train a Two-Tower model:
model = mm.TwoTowerModel(
    schema,
    query_tower=mm.MLPBlock([128, 64], no_activation_last_layer=True),
    loss="categorical_crossentropy",
    samplers=[mm.InBatchSampler()],
    embedding_options = mm.EmbeddingOptions(infer_embedding_sizes=True),
    metrics=[mm.RecallAt(10), mm.NDCGAt(10)]
)

when I want to get schema from model with model.schema I get
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [28], in <cell line: 1>()
----> 1 model.schema

File /models/merlin/models/tf/models/base.py:144, in Model.schema(self)
    142 @property
    143 def schema(self) -> Schema:
--> 144     return self.block.schema

File /models/merlin/models/config/schema.py:33, in SchemaMixin.schema(self)
     30 @property
     31 def schema(self) -> Schema:
     32     if not self.has_schema:
---> 33         raise ValueError(f"{self.__class__.__name__} does not have a schema.")
     35     return self._schema

ValueError: SequentialBlock does not have a schema.

Environment details

Merlin version:
Platform:
Python version:
PyTorch version (GPU?):
Tensorflow version (GPU?):

merlin-tensorflow-training:22.03 with the latest main branch pulled.

@bschifferer @rnyak , is this a blcoker for 22.04 ?

@rnyak can you confirm this is still an issue?

@marcromeyn and @sararb we still have this issue. I just tested and I still get the same error (see above) from model.schema.

Most likely will be solved via https://github.com/NVIDIA-Merlin/models/pull/428


Hotswapping template wrappers

Is there anyway to configure template wrappers for a particular type.
Then switch these out relative to the formly-form they were used in.

I'm not certain I understand what you mean by this. Could you give a more clear explanation of what you mean?

Even better, maybe you could go to the chat and describe what you're trying to do. Perhaps someone will be able to help you find another way.


ENH: allow using Arrow writing in pyogrio.write_dataframe (use_arrow=True option)

Follow-up on https://github.com/geopandas/pyogrio/pull/346 to expose the Arrow-based writing through geopandas-based write_dataframe as well.
Updated our geopandas writing tests to be parametrized on use_arrow for writing as well. This didn't catch any issues with the write_arrow itself, but we needed to do some pre-processing to handle the promotion to multi types consistently (as in the normal write path, this happens per geometry inside ogr_write)
There are a few things that don't work with Arrow:

No support (yet) for writing without a geometry column
No support (yet) for writing an all-missing geometry column (the conversion from pandas to Arrow then doesn't result in the correct type, something that could be fixed in the pre-processing) -> add that in the preprocessing
No support for mixed type columns (that's an inherent limitation of Arrow, although in theory we could cast all values to string first, as that is also what the non-Arrow path eventually does when passing the values to GDAL)

It would be nice to somehow avoid repeated traversals over the GeoDataFrame to standardize the geometries to their multi equivalents (under promote_to_multi option), but I'm not seeing anything obvious. I wonder if this would be a good function to consider adding to shapely to do a single traversal over the geometry array and promote each type to its multi equivalent...

Yes, this is currently lacking a proper helper in shapely, see https://github.com/shapely/shapely/issues/1617

One remaining review comment is the one about writing the index or not: https://github.com/geopandas/pyogrio/pull/395#discussion_r1580972807
For consistency, I should probably drop the index here too? Although we should maybe reconsider that for the default write_dataframe code path as well, to actually write the index of the dataframe as a field, if not a RangeIndex?
For the use in geopandas itself, it doesn't matter, because it has its own logic (it will reset the index to a column to ensure it gets written)

One remaining review comment is the one about writing the index or not: #395 (comment)
For consistency, I should probably drop the index here too? Although we should maybe reconsider that for the default write_dataframe code path as well, to actually write the index of the dataframe as a field, if not a RangeIndex?
For the use in geopandas itself, it doesn't matter, because it has its own logic (it will reset the index to a column to ensure it gets written)

I don't have an explicit preference either way, but it indeed should be consistent...

One remaining review comment is the one about writing the index or not: https://github.com/geopandas/pyogrio/pull/395#discussion_r1580972807

my preference would be to drop it to be consistent, and revisit both of those in the future if needed, and possibly do so on the GeoPandas side rather than here.  There are a number of issues to consider if we do make it a column: how to handle name collisions, name truncation (e.g., shapefile), multi-indexes, and round-tripping as an index.

OK, dropped the index here, and also added an explicit test for it (other tests will also fail in case the index would get preserved, but good to have an explicit test about it)

revisit both of those in the future if needed, and possibly do so on the GeoPandas side rather than here.

Note GeoPandas already has considered this (they explicitly reset the index to a column in order to preserve it, if the index has a name and is not a RangeIndex)

Thanks @jorisvandenbossche !

@jorisvandenbossche it looks like testing the sdist failed after merging this: https://github.com/geopandas/pyogrio/actions/runs/8914593210/job/24482500369

Will take a look, I suppose a missing marker (although a bit strange it only fails there)


docs: Chainstack implementation update

What I did

Updated README with clear instructions.
Renamed provider.py to providers.py.
Added Goerli network to __init__.py.

How I did it
Forked and modified my branch.
Checklist

[ x] Passes all linting checks (pre-commit and CI jobs)
[ x] New test cases have been added and are passing
[ x] Documentation has been updated
[ x] PR title follows Conventional Commit standard (will be automatically included in the changelog)

You'll want to run the pre-commit command to correct things like Black formatting/linting and mypy type checking.


lib.lists.{hasPrefix,removePrefix}: init

Description of changes
Adds two new functions:

lib.lists.hasPrefix :: [ a ] -> [ a ] -> bool: Whether the first list is a prefix of the second list:lib.lists.hasPrefix [ 1 2 ] [ 1 2 3 4 ]
-> true

lib.lists.removePrefix :: [ a ] -> [ a ] -> [ a ]: Remove the first list as a prefix from the second list, erroring if it's not a prefix:lib.lists.removePrefix [ 1 2 ] [ 1 2 3 4 ]
-> [ 3 4 ]
lib.lists.removePrefix [ 1 2 ] [ 3 4 ]
-> <error>

This is distantly part of the path library effort, in order to be able to work with lists of path components.
This work is sponsored by Antithesis :sparkles:
Things done

[x] Docs
[x] Tests

Yeah I think I'm happy with this design, I think this can be merged.


ejson: init at 1.2.0

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build ejson

Success on aarch64-linux (full log)
Attempted: ejson
Partial log (click to expand)
shrinking /nix/store/k5cym539n3qwzb7dfzsnl4r01hxrhp7r-ejson-1.2.0-bin/bin/ejson
cannot find section .dynamic
gzipping man pages under /nix/store/k5cym539n3qwzb7dfzsnl4r01hxrhp7r-ejson-1.2.0-bin/share/man/
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/k5cym539n3qwzb7dfzsnl4r01hxrhp7r-ejson-1.2.0-bin/bin
patching script interpreter paths in /nix/store/k5cym539n3qwzb7dfzsnl4r01hxrhp7r-ejson-1.2.0-bin
checking for references to /build in /nix/store/k5cym539n3qwzb7dfzsnl4r01hxrhp7r-ejson-1.2.0-bin...
cannot find section .dynamic
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
/nix/store/k5cym539n3qwzb7dfzsnl4r01hxrhp7r-ejson-1.2.0-bin

Success on x86_64-darwin (full log)
Attempted: ejson
Partial log (click to expand)
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
find: '/nix/store/ss1896k1gmjrj9py3vdqzzlby0c10m3v-ejson-1.2.0': No such file or directory
/nix/store/cq3j17gg4v8y6k58cc3a51gijhxxlhfj-ejson-1.2.0-bin

Success on x86_64-linux (full log)
Attempted: ejson
Partial log (click to expand)
shrinking /nix/store/dg44i5bgrqxjyfbg6xn7mkq7s912i7lk-ejson-1.2.0-bin/bin/ejson
cannot find section .dynamic
gzipping man pages under /nix/store/dg44i5bgrqxjyfbg6xn7mkq7s912i7lk-ejson-1.2.0-bin/share/man/
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/dg44i5bgrqxjyfbg6xn7mkq7s912i7lk-ejson-1.2.0-bin/bin
patching script interpreter paths in /nix/store/dg44i5bgrqxjyfbg6xn7mkq7s912i7lk-ejson-1.2.0-bin
checking for references to /build in /nix/store/dg44i5bgrqxjyfbg6xn7mkq7s912i7lk-ejson-1.2.0-bin...
cannot find section .dynamic
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
/nix/store/dg44i5bgrqxjyfbg6xn7mkq7s912i7lk-ejson-1.2.0-bin


PVCs are not getting restored when there are 100 snapshots

Describe the bug
Restored PVCs are not coming in bound state when source is 100 Snapshots.
Source PVC are 100 on which 100 snapshots (1 snapshot per PVC) are taken is of version 1 Independent having data 400+ MB which is written using ioMixer. From these snapshots PVCs are restored which are failing in this case.
How to Reproduce?

Install CSI 2.10.0 - (OCP -local snc)

[root@local-snc ~]# oc get pods
NAME                                                  READY   STATUS    RESTARTS       AGE
ibm-spectrum-scale-csi-66l59                          3/3     Running   0              4d5h
ibm-spectrum-scale-csi-9bt5t                          3/3     Running   0              4d5h
ibm-spectrum-scale-csi-attacher-6cbfcb9b6-6qs5r       1/1     Running   0              4d11h
ibm-spectrum-scale-csi-attacher-6cbfcb9b6-tljxj       1/1     Running   3 (43h ago)    4d11h
ibm-spectrum-scale-csi-provisioner-5fc97ff9df-hcbph   1/1     Running   0              9h
ibm-spectrum-scale-csi-resizer-f4dd6f596-dhrx8        1/1     Running   1 (4d5h ago)   4d11h
ibm-spectrum-scale-csi-snapshotter-799cf54b85-6mmxt   1/1     Running   1 (4d5h ago)   4d11h
ibm-spectrum-scale-csi-w2qlz                          3/3     Running   0              4d5h
[root@local-snc ~]# oc get cso
NAME                     VERSION   SUCCESS
ibm-spectrum-scale-csi   2.10.0    True
[root@local-snc ~]# oc describe pod | grep quay
    Image:         quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver:v2.10.0-080923
    Image ID:      quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver@sha256:353f4ad71c3fa62d2f283d66341a78996c20d139d87daa64a6871fdabf93207d
    Image:         quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver:v2.10.0-080923
    Image ID:      quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver@sha256:353f4ad71c3fa62d2f283d66341a78996c20d139d87daa64a6871fdabf93207d
    Image:         quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver:v2.10.0-080923
    Image ID:      quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-driver@sha256:353f4ad71c3fa62d2f283d66341a78996c20d139d87daa64a6871fdabf93207d
[root@local-snc ~]#

Set mmxcp threads to 100:

[root@worker0 /]# mmxcp config --get-max-value
[I] Current maximum number of parallel copy and sync commands in this cluster: 10
[root@worker0 /]#  mmxcp config --set-max-value 100
[I] Successfully set maximum number of parallel copy and sync commands in this cluster: 100
[root@worker0 /]# mmxcp config --get-max-value
[I] Current maximum number of parallel copy and sync commands in this cluster: 100

Change the provisioner to 100 worker threads:

    Args:
      --csi-address=$(ADDRESS)
      --timeout=3m
      --worker-threads=100
      --extra-create-metadata
      --v=5
      --default-fstype=gpfs
      --leader-election=true
      --leader-election-lease-duration=$(LEADER_ELECTION_LEASE_DURATION)
      --leader-election-renew-deadline=$(LEADER_ELECTION_RENEW_DEADLINE)
      --leader-election-retry-period=$(LEADER_ELECTION_RETRY_PERIOD)

Set operator replica to 0 before making this change

Create 100 - version 1 Independent PVCs:

[root@local-snc ~]# oc get pvc | grep pvc -c
100

Write data using iotools of 400+ MB in all 100 PVCs:

[root@io-test-source-pod-91 data1]# ls
ioMixer
[root@io-test-source-pod-91 data1]# du -sh *
432M	ioMixer

Take snapshot of each PVC:

[root@local-snc snap]# cat vsc.yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: ibm-spectrum-scale-snapshotclass
driver: spectrumscale.csi.ibm.com
deletionPolicy: Delete
[root@local-snc snap]# oc apply -f vsc.yaml
volumesnapshotclass.snapshot.storage.k8s.io/ibm-spectrum-scale-snapshotclass created

[root@local-snc Independent]# cat snap/snap.yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: ibm-spectrum-scale-snapshot
  namespace: default
spec:
  volumeSnapshotClassName: ibm-spectrum-scale-snapshotclass
  source:
    persistentVolumeClaimName: scale-fset-independent-pvc-<no>
[root@local-snc ~]# oc get vs | grep snapshot -c
100

Try to restore this snapshot :

After trying to restore these PVCs 51 are in pending state
[root@local-snc ~]# oc get pvc | grep snapshot | grep Pending -c
51
[root@local-snc ~]# oc describe pvc ibm-spectrum-scale-pvc-from-snapshot-8 -n default
Name:          ibm-spectrum-scale-pvc-from-snapshot-8
Namespace:     default
StorageClass:  ibm-spectrum-scale-csi-fileset-independent
Status:        Pending
Volume:
Labels:        <none>
Annotations:   volume.beta.kubernetes.io/storage-provisioner: spectrumscale.csi.ibm.com
               volume.kubernetes.io/storage-provisioner: spectrumscale.csi.ibm.com
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode:    Filesystem
DataSource:
  APIGroup:  snapshot.storage.k8s.io
  Kind:      VolumeSnapshot
  Name:      ibm-spectrum-scale-snapshot-8
Used By:     <none>
Events:
  Type     Reason                Age                    From                                                                                Message
  ----     ------                ----                   ----                                                                                -------
  Warning  ProvisioningFailed    24m                    spectrumscale.csi.ibm.com_ibm-spectrum-scale-csi-provisioner-5fc97ff9df-hcbph_4cd251f1-d538-4c35-9a30-d643f80d2ccb  failed to provision volume with StorageClass "ibm-spectrum-scale-csi-fileset-independent": rpc error: code = DeadlineExceeded desc = context deadline exceeded
  Warning  ProvisioningFailed    22m (x5 over 24m)      spectrumscale.csi.ibm.com_ibm-spectrum-scale-csi-provisioner-5fc97ff9df-hcbph_4cd251f1-d538-4c35-9a30-d643f80d2ccb  failed to provision volume with StorageClass "ibm-spectrum-scale-csi-fileset-independent": rpc error: code = Aborted desc = volume creation already in process : pvc-f1e2ff6d-d14b-4995-a2e2-e12b7ca9c092
  Normal   ExternalProvisioning  2m38s (x105 over 27m)  persistentvolume-controller                                                                                waiting for a volume to be created, either by external provisioner "spectrumscale.csi.ibm.com" or manually created by system administrator
  Normal   Provisioning          84s (x14 over 27m)     spectrumscale.csi.ibm.com_ibm-spectrum-scale-csi-provisioner-5fc97ff9df-hcbph_4cd251f1-d538-4c35-9a30-d643f80d2ccb  External provisioner is provisioning volume for claim "default/ibm-spectrum-scale-pvc-from-snapshot-8"
  Warning  ProvisioningFailed    84s (x8 over 21m)      spectrumscale.csi.ibm.com_ibm-spectrum-scale-csi-provisioner-5fc97ff9df-hcbph_4cd251f1-d538-4c35-9a30-d643f80d2ccb  failed to provision volume with StorageClass "ibm-spectrum-scale-csi-fileset-independent": rpc error: code = Internal desc = snapshot copy job had failed for snapshot: snapshot-7a8afa1c-a0ff-43af-83b0-951c1bca958a

Observation : There are 51/100 are in pending state.
Error Logs:
[[EFSSG0264C The path /mnt/local-sample/pvc-e507babf-cbb7-4c44-8263-1882108ae71d/.snapshots/snapshot-363933cf-4000-47be-b385-9da40017378a/pvc-e507babf-cbb7-4c44-8263-1882108ae71d-data does not exist.]]
Expected behavior
All PVC should be restored properly and CSI should retry in case of failure
Must Gather Uploaded in scale-csi/D.1017

Closing this as this is a GUI issue and a github issue is created for the same - https://github.ibm.com/IBMSpectrumScale/scale-core/issues/6033


Add kats to the WR reviewers.

This change is

@bors-servo r=jdm

:pushpin: Commit 0b868f0 has been approved by jdm

:hourglass: Testing commit 0b868f0340019c849a229892a93616ff804ed9e1 with merge 1d82493c3dad4db01e88341673b91e069f1aef64...

:sunny: Test successful - status-travis
Approved by: jdm
Pushing 1d82493c3dad4db01e88341673b91e069f1aef64 to master...


Automated cherry pick of #3559: fix: recode error handling to make conform with error handling standard

Cherry pick of #3559 on release/2.13.
#3559: fix: recode error handling to make conform with error handling standard

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@e4d6d88). Click here to learn what that means.
The diff coverage is 69.31%.

@@              Coverage Diff               @@
##             release/2.13   #3573   +/-   ##
==============================================
  Coverage                ?   6.97%
==============================================
  Files                   ?     497
  Lines                   ?   83381
  Branches                ?       0
==============================================
  Hits                    ?    5813
  Misses                  ?   77072
  Partials                ?     496

Flag
Coverage Δ

#aFlag
6.97% <69.31%> (?)

Impacted Files
Coverage Δ

pkg/cloudcommon/validators/errors.go
43.05% <0%> (ø)

pkg/util/httputils/httputils.go
39.91% <33.33%> (ø)

pkg/util/httputils/error.go
85.29% <85.29%> (ø)

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 e4d6d88...f01722e. Read the comment docs.

/lgtm
/approve


[DEV] Create a plugin that populates host information for use with jinja templates

This task is to get us enough information to generate host-specific files.
example :
hostnames:
interfaces:
  - eth0
     name:
     mac:
     ip:
     desc:
     netmask:
     hostnames:
  - eth1
     name:
     mac:
     ip:
     description:
     netmask:
     hostnames:
  - eth2
     name:
     mac:
     ip:
     description:
     netmask:
     hostnames:

Let's be sure to validate the yaml structure in the comments here as well.

Adding different network types to SMD may be necessary to get enough information for this plugin.

@travisbcotton can you add a jinja template here that you would like to use?

ospfd.conf example:
password testpass123
enable password testpass123

interface {{ host.internal_interface }}
    no ip ospf authentication-key
    ip ospf dead-interval 40
    ip ospf hello-interval 10
    ip ospf priority 0

interface {{ host.external_interface }}
    no ip ospf authentication-key
    ip ospf priority 0
    ip ospf dead-interval 40
    ip ospf hello-interval 10
    ip ospf retransmit-interval 5
    ip ospf transmit-delay 1

router ospf
    ospf router-id {{ host.external_ip }}
    network {{ host.external_subnet }} area <IP_ADDRESS>
    network {{ host.internal_subnet }} area <IP_ADDRESS>
    area <IP_ADDRESS> stub no-summary

zebra.conf example:
hostname {{ host.name }}
password testpass123
enable password testpass123

interface lo
  description loopback

interface {{ host.internal_interface }}
  description internal Infiniband
  ip address {{ host.internal_ip }}/{{ host.internal_netmask }}

interface {{ host.external_interface }}
  description external Ethernet
  ip address {{ host.external_ip }}/{{ host.external_netmask }}

Quick questions:

Is the {{ host.external_interface }} and {{ host.internal_interface }} just expecting the interface name?
Is the /{{ host.external_netmask }} in CIDR notation? I'm guessing that whenever you're getting the IP, it's just the IP by itself.

For the first one, yeah that would be the interface name. Which I don't think is available in SMD at /Inventory/EthernetInteraces. Could make the interface names just be a part of the templates, but that would reduce their portability
The second one is the /24 or whatever notation. At least for these templates. Which is also not something inherit in SMD. But appears you can add IPAddresses with the form <IP_ADDRESS>/24 to /Inventory/EthernetInteraces, but that may have an effect on other applications reading those endpoints

I was under the impression that the ID was supposed to be the interface name, but I guess not.
That may be the way to go with the IP address since I don't see the net mask stored anywhere. We can try storing the IP addresses in CIDR notation and see if anything breaks.

Also, should we expect more than one internal and external interface?


Update javadoc for AutofillStore for saving credentials

Task/Issue URL: https://app.asana.com/0/488551667048375/1202776712844773/f
Description
Updates javadoc to reference the new return type when saving a credentials (a long indicating the new primary key of newly created credential)
Steps to test this PR
n/a

Current dependencies on/for this PR:

develop

PR #2156   👈

This comment was auto-generated by Graphite.


Factor out the partial md5 into a function that only handles a single file

Factor out the partial md5 into a function that only handles a single file

Not needed since the partial match is going to be removed


dubbo配置provider的group无效

我们鼓励使用英文，如果不能直接使用，可以使用翻译软件，您仍旧可以保留中文原文。
We recommend using English. If you are non-native English speaker, you can use the translation software.
Which Component
dubbo,nacos
Describe the bug
配置文件配置provider的group，在naocs注册中心还是DEFAULT_GROUP
Additional context
Add any other context about the problem here.
e.g.  MacOS  、Java8 、 Version 2.1.0.RELEASE

Did you use Spring Cloud Registry Center?
If so, configure Nacos group:
spring.cloud.nacos.discovery.group=yourGroup

Related https://github.com/alibaba/spring-cloud-alibaba/issues/890.

is not work in my project,and ide will tips cont resolve configure properties

is you mean namespace?my problem is provider group and version

is you mean namespace?my problem is provider group and version

group is supported now, but not release.
you can try it with master branch.

I find that dubbo.consumer.group=myGroup can work but dubbo.registry.group=myGroup can't work  in nacos registration center


Override configs bearing the same name

Let me explain the reasoning behind this issue whose theme is basically modularity and code-reuse.
The goal is to have a npm package that contains the base of all the grunt task configurations so I don't have to recreate them in each new project, it also makes it very easy to re-use them so I don't have to keep going back to old projects and manually copy/paste the new changes. This helps structure big code bases and maintain large projects that are utilize the same grunt configurations.
And now let me walk you through what I'm trying to do:
first I'm trying to load task configurations from 2 directories like this:
    var configs = require('load-grunt-configs')(grunt, {
        config: {
            src: [
                'node_modules/my-default-tasks-package/tasks/config/*.js',
                'tasks/config/*.js'
            ]
        }
    });

In  node_modules/my-default-tasks-package/tasks/config/ I have all the "default" tasks used across multiple projects.
In tasks/config/ I have the tasks for this particular project.
What I expected/wished to happen was for load-grunt-configs to load all the  tasks from ./node_modules and afterwards the ones from ./tasks. If any of the configurations of ./tasks already existed in ./node_modules then they would replace the ones in ./node_modules (or at least merge them gracefully without combining everything together).
Instead what I noticed is, load-grunt-configs used grunt.file.expand to fetch all the files, then for each of them start placing them in the options variable by using _.merge. So in the end the tasks from inside ./node_modules were merged with the ones in ./tasks.
Basically, it all boils down to prevent load-grunt-configs from merging values below the subtask level.
Please let me know if this makes sense to you and whether it's possible to achieve, also sorry for making you read this big wall of text.

Hi there, your use case makes sense. I'm not 100% sure, but I think you can solve this already using the mergeCustomizer: https://github.com/creynders/load-grunt-configs#options and https://lodash.com/docs#merge
Basically you can decide what value needs to be returned: a, b, or a merged with b.

Yep, returning b is pretty much what i wanted, thank you very much!
mergeCustomizer seems pretty great, having the ability to handle data on will is pretty powerful.
I will go ahead and close this, thank you for your time


Go truncates the trailing zeros in the milli second values

Version : go 1.13
When the defined time has trailing zero after the millisecond
trailingZero = "2020-02-19T07:11:23.890+00:00"
noTrailingZero = "2020-02-19T07:11:23.891+00:00"
GO removes the trailing zero. The time becomes
2020-02-19 07:11:23.89 +0000 UTC
2020-02-19 07:11:23.891 +0000 UTC
This is an issue when other consuming application tries to consume this by defining a date formatter to get time from String value. The formatter does the strict matching.
for example in java
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSz";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
It will throw an exception while parsing 2020-02-19 07:11:23.89 +0000 UTC while will perfectly work for 2020-02-19 07:11:23.891 +0000 UTC
Code To Replicate
const (
trailingZero = "2020-02-19T07:11:23.890+00:00"
noTrailingZero = "2020-02-19T07:11:23.891+00:00"
)
func main() {
parseAndPrint(trailingZero)
parseAndPrint(noTrailingZero)
}
func parseAndPrint(timeString string) {
parsed, err := time.Parse(time.RFC3339, timeString)
if err != nil {
panic(err)
}
fmt.Println(parsed)
}

If you want trailing zeroes, use your own format string rather than the default one.  For example, here is a modification of your program:
package main

import (
	"fmt"
	"time"
)

const (
	trailingZero   = "2020-02-19T07:11:23.890+00:00"
	noTrailingZero = "2020-02-19T07:11:23.891+00:00"
)

func main() {
	parseAndPrint(trailingZero)
	parseAndPrint(noTrailingZero)
}

func parseAndPrint(timeString string) {
	parsed, err := time.Parse(time.RFC3339, timeString)
	if err != nil {
		panic(err)
	}
	fmt.Println(parsed)
	fmt.Println(parsed.Format("2006-01-02 15:04:05.000000000 -0700 MST"))
}

How do we specify the pattern for the values read directly in the struct? I've a struct
type activity struct {
ActivityDate  time.Time json:"activityDate" bson:"activityDate"
}
I read the data in this struct from MongoDB by using cur.Decode(&act)
and write the response back using the json encoder
json.NewEncoder(w).Encode(activity)
Is there a way when we define the struct we can specify the date format?

As far as I know there is not.
Why does it matter whether a trailing zero is present or not?


[feature] Add Description about Token

Type of Issue
What types of issue have you found with hypertrons-crx?
Put an x in the boxes that apply

[ ] Bug
[x] Feature Request
[ ] Performance issue
[ ] Help Wanted
[ ] Documention incomplete
[ ] Test Improvement
[ ] Raise a Question

Introduction to the issue
I think Token is a sensitive data because it involves information security. The hypertrons-crx should specify the minimum permissions of the token.

Currently hypertrons-crx only needs the basic permission of the token.
We only use it to get files from repositories and we don't recommand user to give permissions beyond this.
All these will be improved as a more serious tutorial is released.

All these will be improved as a more serious tutorial is released.

I look forward to a more detailed explanation, otherwise the function will not be used at this time.

Solved by https://github.com/hypertrons/hypertrons-crx/pull/187/commits/c9be945eca2a46dbb490ef5d99c916cceae3b471

@LiuChangFreeman , we might want to update the docs as well for the token info, if you won't mind we could do it as a part of  #136

@LiuChangFreeman , we might want to update the docs as well for the token info, if you won't mind we could do it as a part of #136

Just do it

@LiuChangFreeman While working on this I had a query is there a way to remove the said token? Seems kinda important.

@LiuChangFreeman While working on this I had a query is there a way to remove the said token? Seems kinda important.

Next commit will offer this


Bump compass to master-

Description
Bump compass version to include kyma-incubator/compass#1428 and also to be aligned with current master version.
Related issue(s)

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

/retest

@ksputo Could we close this in favour of https://github.com/kyma-project/control-plane/pull/10 as it's higher version?

Closing as #10 has been merged. Cheers!


microsoft-edge: Use pname and make update script CWD independent

Description of changes
Change to using pname, and make the update script independent from the current working directory so it can be used with maintainers/scripts/update.nix
Ping: @kuwii @zanculmarktum

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
[c] 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.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1111


Add Azure CLI commands to enable EncryptionAtHost

The documentation only provides commands ready to cut and paste for PowerShell
This PR adds the commands to use with Azure CLI

@zioproto : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@zioproto : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@roygara
Can you review this PR?  Keep in mind that if you approve the changes, the commits will need to be moved to the private repo. We can't add/change/remove tabbed content in the public repo. Thanks.
IMPORTANT: When this content is ready to move, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team-


Acceptance Criteria

[ ] Integration tests have reasonable coverage.

I will close this issue as it is not planned, we rather work on it in the new typescript login


Can't get pug mixins working with shipped pug versions

Hi. Thanks for the project. It basically works well for me with globally-installed pug, but not at all with shipped versions.
Unfortunately I'm trying to get a CloudCannon CMS up, which precludes global installs, but the | {% include %} syntax doesn't seem to give me working mixins. Mostly I'm seeing errors like:
"Liquid Exception: TypeError: pug_mixins.bigfoot is not a function in /_layouts/default.pug"
Right now the only thing close to working is all my code in one file, which is pretty ... sub-optimal.
Any help at all would be appreciated. Thanks!

Thanks for using Jekyll-Pug!
Shipped versions of Pug do not work with includes and such. From Pug-Ruby:

Advanced Jade / Pug features like includes, extends, block, and others require filesystem access. You will not be able to use that features while dealing with shipped Jade / Pug. Use system Jade / Pug in such cases.

The reason that you are not able to use mixins by using the Jekyll/Liquid include tag is because this plugin compiles in the following order:

Pug
Liquid

Pug has no knowledge of the mixins since they have not been processed yet.
I haven't used CloudCannon before. Do they happen to allow you to run commands during the build process? You might be able to work around this by installing Pug through a command and using the system Pug compiler. That is how it works with Netlify.

Hi, @nello. Still having trouble?

Hi, thanks for asking. I never did manage to get Jekyll includes working with pug files using shipped versions. :(
I did get a working version of the project up, but only by inlining required mixins into all the files that needed them; not really optimal (or DRY).
In the end, I've decided to go an entirely different route and use a headless CMS (like https://www.contentful.com/) rather than CloudCannon, which means I can continue to use Pug the way I was previously.
I've starred your project and will definitely keep it in mind for future sites where I have full control of the environment, but can't see shipped versions ever being useful with the current constraints.
Thanks for all your work!
Nello

On 27 Dec 2017, at 06:38, Doug Beney<EMAIL_ADDRESS>wrote:
Hi, @nello. Still having trouble?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

No worries. Hope you now have a smooth workflow with Contentful.
If you don't mind me asking, what does your current setup look like to use Pug + Contentful?

Hi Doug,
Our use case is probably quite different from the usual static site setup; we were looking at adding CMS functionality to an Angular app already using Pug. This meant that all the marketing pages already present, written in Pug, needed to be ported to Jekyll (plus a fair bit of Angular wrangling to retain current functionality).
I'm still spiking out a Contentful Solution, but essentially it's quite similar to the CloudCannon-powered Jekyll approach, with text/image components flowing into our responsive pages based on configuration in Contentful. The major thing we will miss is a real wysiwyg experience for the content creator, but we can give them a reasonable feel for what they'll get by providing a live dev environment that their pre-publication changes affect.
Thanks again for your project. I'll certainly keep it in mind for other applications and appreciate the work you've put into it.
Cheers,
Neil

On 1 Jan 2018, at 3:04:46PM, Doug Beney<EMAIL_ADDRESS>wrote:
No worries. Hope you now have a smooth workflow with Contentful.
If you don't mind me asking, what does your current setup look like to use Pug + Contentful?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/DougBeney/jekyll-pug/issues/12#issuecomment-354635680, or mute the thread https://github.com/notifications/unsubscribe-auth/AA692hpRUHi9ReBg5hQcJQ5130GVGCkHks5tGFldgaJpZM4RGe5l.


raycast.attachdebugger no find

Summary
{
"command": "raycast.attachdebugger",
"when": "raycast.workspaceEnabled"
},
安装的插件，在指令面板中搜索不到 raycast.attachdebugger，猜测是不满足 raycast.workspaceEnabled 条件，如何才能满足呢

Steps to reproduce
开发的是 raycast extension 应用

安装好 vscode 插件
重启 vacode
cd 到对应插件目录下
命令行执行 npx ray develop 启动了服务
command + shift + p，指令面板搜索不到 raycast.attachdebugger

What is the current bug behavior?
指令面板搜索不到 raycast.attachdebugger

What is the expected correct behavior?
指令面板可以搜索到 raycast.attachdebugger，可以 debugger 调试代码

Relevant logs and/or screenshots

Possible fixes

猜测是不满足 raycast.workspaceEnabled 条件，如何才能满足呢

Try the commad: Raycast: Update State of Extension.
In general you need a package.json with @raycast/API as dependeny. Is this the case for your project?

Try the commad: Raycast: Update State of Extension.
In general you need a package.json with @raycast/API as dependeny. Is this the case for your project?

I try this command "Raycast: Update State of Extension", but in no use.
In fact, I just develop this official project "raycast/extensions", my package.json has @raycast/API as dependeny

Interesting. Please paste the your log file here (check for sensitive data first before uploading).
You can active the logger by adding "raycast.loglevel": "debug" to your  settings.json file.

Interesting. Please paste the your log file here (check for sensitive data first before uploading).
You can active the logger by adding "raycast.loglevel": "debug" to your settings.json file.
Trigger the mentioned Update State commad afterwards.

get, please help where can I find my log file?

I the output panel (somewhere next to the terminal). Choose Raycast I the drop-down in the output panel.

I the output panel (somewhere next to the terminal). Choose Raycast I the drop-down in the output panel.

HI，the following is my log。
2024-05-19T22:44:14.479Z [debug] update state
2024-05-19T22:44:14.480Z [debug] /Users/raycast_extensions/package.json raycast enabled: false
2024-05-19T22:44:14.480Z [debug] setContext raycast.workspaceEnabled to false
2024-05-19T22:44:14.481Z [debug] setContent succeeded

/Users/raycast_extensions/package.json is this the path to your package.json? Did you removed the username after /Users?
Which directory did you open from the extensions repo? You should open the project directly inside the extensions folder. Is this the case?

/Users/raycast_extensions/package.json is this the path to your package.json? Did you removed the username after /Users?
Which directory did you open from the extensions repo? You should open the project directly inside the extensions folder in the clone repo. Is this the case?

Sorry for late response, my package.json path is "~/Documents/xxx/lib/raycast_extensions/extensions/notion/package.json"

Hey @tonka3000 👋🏻
Thanks for your help. I followed your advice and here is the output of the Update State command  + Attach Debugger command :
2024-05-20T16:07:40.206Z [debug] update state
2024-05-20T16:07:40.208Z [debug] /Users/zraqs/oss/raycast/yafw/extensions/yafw/package.json raycast enabled: true
2024-05-20T16:07:40.208Z [debug] setContext raycast.workspaceEnabled to true
2024-05-20T16:07:40.210Z [debug] setContent succeeded
2024-05-20T16:07:46.447Z [debug] found Raycast node process: 30625 Raycast Helper (Extensions)
2024-05-20T16:07:46.447Z [debug] 30625

Everything seems okay but my breakpoints are still skipped. Any idea ?

@mlz11 interesting. Looks correct to me as well. I just automatically start the node debugger from node so I don't do something special beside getting the right process id dynamicly.
Maybe that is an issue from the node debugger of VSCode.
Possible things to check

Check if the right commad is trigger which is in dev mode
Check if you don't start the store installed command
Try to set breakpoints on other lines as well as other files and check again
Restart Raycast and try again

@lishoulong Hm, can you share the content of your package.json? It seems that it does not detect Rayvast your project.
Also make sure to open the folder directly in VSCode which contains the mentioned package.json.

@lishoulong Hm, can you share the content of your package.json? It seems that it does not detect Rayvast your project.
Also make sure to open the folder directly in VSCode which contains the mentioned package.json.

@tonka3000 Thanks for your replay. After open the inner package.json level foler, I can find the attach debugger command in the command platte. But it can not stop at break point line, the follow is log.
2024-05-21T00:21:35.287Z [debug] /Users/xx/Documents/xx/lib/raycast_extensions/extensions/notion/package.json raycast enabled: true
2024-05-21T00:21:35.287Z [debug] setContext raycast.workspaceEnabled to true
2024-05-21T00:21:35.288Z [debug] setContent succeeded
2024-05-21T00:21:35.289Z [debug] setContext raycast.extensionLoaded to true
2024-05-21T00:21:35.289Z [debug] setContent succeeded
2024-05-21T00:21:37.654Z [debug] Got version 1.74.0 from npm for @raycast/migration
2024-05-21T00:21:37.654Z [debug] set latest npm raycast migration version to 1.74.0
2024-05-21T00:21:37.654Z [debug] refresh treedataprovider
2024-05-21T00:22:13.046Z [debug] found Raycast node process: 74780 Raycast Helper (Extensions)
2024-05-21T00:22:13.046Z [debug] 74780
2024-05-21T00:23:05.825Z [debug] found Raycast node process: 31780 Raycast Helper (Extensions)
2024-05-21T00:23:05.825Z [debug] 31780

For me it is the same. So as a workaround I've opened extension folder ($HOME/github.com/raycast/extensions/extensions/github-for-enterprise) in VSCode instead of a root project ($HOME/github.com/raycast/extensions)

@perat This is the way it is build 😁. You should not open the raycast/extensions im VSCode, you should always open raycast/extensions/. The extension is the repo are independent of each other.

@lishoulong good to hear. It seems that the node debugger from VSCode itself is broken currently. Need to wait some weeks to check if it got fix upstream.
The log show the my extension works as expected 🥳.

@tonka3000 same thing for me. Everything seems to be working, but I can't attach the debugger:
2024-06-16T16:32:10.768Z [debug] update state
2024-06-16T16:32:10.778Z [debug] /Users/xxx/projects/xxx/raycast-extensions/extensions/system-monitor/package.json raycast enabled: true
2024-06-16T16:32:10.778Z [debug] setContext raycast.workspaceEnabled to true
2024-06-16T16:32:10.779Z [debug] setContent succeeded
2024-06-16T16:32:36.026Z [debug] found Raycast node process: 54125 Raycast Helper (Extensions)
2024-06-16T16:32:36.027Z [debug] 54125

Has this problem been fixed by upstream? I am also encountering this issue with Cursor.
2024-11-29T04:40:21.927Z [debug] update state
2024-11-29T04:40:21.938Z [debug] xxxx/package.json raycast enabled: true
2024-11-29T04:40:21.938Z [debug] setContext raycast.workspaceEnabled to true
2024-11-29T04:40:21.938Z [debug] setContent succeeded
2024-11-29T04:40:37.015Z [debug] found Raycast node process:  2975 Raycast Helper (Extensions)
2024-11-29T04:40:37.015Z [debug] 2975
2024-11-29T04:41:07.024Z [debug] found Raycast node process:  2975 Raycast Helper (Extensions)
2024-11-29T04:41:07.025Z [debug] 2975


Support GQA export, better run.c, Support tinyllama-1.1B

Add support to tinyllama-1.1B
Add support to convert GQA model (learned from https://github.com/ggerganov/llama.cpp/pull/3364)
Better run.c

save a little memory(same as #400)
make rope part a function
hardcode to check whether there is a \n

Current chat schemas in run.c are based on LLama 2
            // render user/system prompts into the Llama 2 Chat schema
            if (pos == 0 && system_prompt[0] != '\0') {
                char system_template[] = "[INST] <<SYS>>\n%s\n<</SYS>>\n\n%s [/INST]";
                sprintf(rendered_prompt, system_template, system_prompt, user_prompt);
            } else {
                char user_template[] = "[INST] %s [/INST]";
                sprintf(rendered_prompt, user_template, user_prompt);
            }

But you may want to use tinyllama's ones instead:
<|im_start|>user
Explain huggingface.<|im_end|>
<|im_start|>assistant

In general chat templates should be bounded to the loaded pre-trained model, so maybe they should be a configuration parameter in the .bin file

This is cool, I wasn't aware of the TinyLlama 1.1B run. Sounds very nice and useful for this repo to support. Are there any notable architectural changes in it? This PR is a bit of a random combination of necessary differences, and a few side optimizations.

There isn't notable architectural changes.


Bellator.com downloads wrong video

Checklist

[x ] I'm reporting a broken site support
[x ] I've verified that I'm running youtube-dl version 2020.05.08
[x ] I've checked that all provided URLs are alive and playable in a browser
[x ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x ] I've searched the bugtracker for similar issues including closed ones

Verbose log

D:\unsorted\MMA\Bellator\bellator 234>youtube-dl.exe -v "http://www.bellator.com/fight/arvmd3/bellator-185-neiman-gracie-vs-zak-bucia"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'http://www.bellator.com/fight/arvmd3/bellator-185-neiman-gracie-vs-zak-bucia']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2020.05.08
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.18362
[debug] exe versions: ffmpeg git-2020-04-24-a501947, ffprobe git-2020-04-24-a501947
[debug] Proxy map: {}
[debug] Using fake IP <IP_ADDRESS> (US) as X-Forwarded-For.
[Bellator] bellator-185-neiman-gracie-vs-zak-bucia: Downloading webpage
[Bellator] baf7bfe1-ad67-4171-a2c4-63f95bc9da30: Downloading info
[Bellator] baf7bfe1-ad67-4171-a2c4-63f95bc9da30: Extracting information
[Bellator] baf7bfe1-ad67-4171-a2c4-63f95bc9da30: Downloading video urls
[Bellator] baf7bfe1-ad67-4171-a2c4-63f95bc9da30: Downloading m3u8 information
[download] Downloading playlist: Bellator 185 Highlights
[Bellator] playlist Bellator 185 Highlights: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on 'https://dlvrsvc.mtvnservices.com/api/playlist/gsp.spike-assets/spikecomstor/media/shows/bellator/2017/bel_185/fights/1/stream_1920x1080_4993664.m3u8?tk=st=1588957992~exp=1588972392~acl=/api/playlist/gsp.spike-assets/spikecomstor/media/shows/bellator/2017/bel_185/fights/1/stream_1920x1080_4993664.m3u8*~hmac=ab5d89d85248748cd0b69c8160c1d6d30b2995c8ac8b40348ca66394534f10ac&account=spike.com&cdn=level3'
[download] Bellator MMA Live_October 20, 2017_NO-SEASON#_NO-EPISODE#_Bellator 185 Highlights-baf7bfe1-ad67-4171-a2c4-63f95bc9da30.mp4 has already been downloaded
[download] 100% of 130.67MiB
[debug] ffmpeg command line: ffprobe -show_streams "file:Bellator MMA Live_October 20, 2017_NO-SEASON#_NO-EPISODE#_Bellator 185 Highlights-baf7bfe1-ad67-4171-a2c4-63f95bc9da30.mp4"
[ffmpeg] Fixing malformed AAC bitstream in "Bellator MMA Live_October 20, 2017_NO-SEASON#_NO-EPISODE#_Bellator 185 Highlights-baf7bfe1-ad67-4171-a2c4-63f95bc9da30.mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:Bellator MMA Live_October 20, 2017_NO-SEASON#_NO-EPISODE#_Bellator 185 Highlights-baf7bfe1-ad67-4171-a2c4-63f95bc9da30.mp4" -c copy -f mp4 "-bsf:a" aac_adtstoasc "file:Bellator MMA Live_October 20, 2017_NO-SEASON#_NO-EPISODE#_Bellator 185 Highlights-baf7bfe1-ad67-4171-a2c4-63f95bc9da30.temp.mp4"
[download] Finished downloading playlist: Bellator 185 Highlights

D:\unsorted\MMA\Bellator\bellator 234>

Description

When I go the the bellator.com website, e.g. http://www.bellator.com/fight/arvmd3/bellator-185-neiman-gracie-vs-zak-bucia I can see the full fight - but if I download this URL I get the "Bellator 185 Highlights" instead.
Please note that the videos in question are region blocked but (at least) viewable in the US. If the website says "service unavailable" you are in the wrong region.
Also note that the Bellator 185 Highlights are not region locked so I think this bug is related to region unlocking from other countries. I tried over a VPN to the US as well - the bellator.com website works but youtube-dl does not. So somehow I am getting only the region unlocked videos.
I also tried passing my own US IP adress but this made no difference.

I have now confirmed that this works in latest release. Thank you very much!


Change section item GitHub link to create new issue

The GitHub link should create a new issue and ideally pre-fill the issue items

If is not possible at least should create an issue following a template.


Can't access custom BREAD created

Version information

Laravel: v5.7
Voyager: v1.1.10
PHP: 7.x
Database: mysql 5.7

Description
I create new bread, but then when trying to access the page, I get 403 unauthorized error.
In roles, admin role have all bread permissions, and I am logged-in as admin.
What I missed?
Steps To Reproduce
Steps to reproduce the behavior:
Create a new table, and then create the bread for this table.
Permissions applied to admin per default via config, or manually.
Expected behavior
I should be able to browse new model created.

Please use the issue template. It prompts you to enter the information we need upfront so we don't have to ask all the time and further delay issue resolution.
This can be reopened once you've updated the description to match the template.

@fletch3555 done, edited

The "bread permissions" are not the permissions you are looking for.
If you created a BREAD called x you need to grant yourself all permissions in that group:
Browse X, Read X and so on.

@saikillua98 comment resolved my issue with this (thanks!).  I have gotten a 403 a few times after updating an existing BREAD (moving stuff around, changing names, etc.)  Some cases it's best to delete and just recreate again through the interface.
Also, something to note, specifying a controller requires global namespace (a preceding slash), for example:
\App\Http\Controllers\MyController

Closing due to inactivity.


Need an option to turn off array editor in data grid (PostgreSQL)

In DBeaver 22.1 I can't find an option to edit PostgresSQL array values like a normal text field. When I try to edit an array value a separate panel opens with an array editor described in issue #403. I don't want this as it makes editing much more complicated:

it is difficult to use it with keyboard (if possible at all - I couldn't find a way to add a new element with keyboard) so I need to switch to mouse trying to aim at the small buttons
the value panel opens up to the right and takes space unnecessarily and immediately after editing I need to close it

I would like to edit arrays like I could before this feature was implemented - so that an array value is editable like a text value: pressing Enter allows me to edit it inline and pressing Shift+Enter opens a larger text editor where I can freely edit the value in plain text. When I have values like {"F","S"} it much easier for me to edit them like text instead of playing with the special editor.
Please add an option to disable the array editor and display the array values in the native format - I can see that currently arrays of string don't display quotes - {F,S} - for inline editing I suppose we would need to have it in PostgreSQL format like {"F","S"}.

Hello @lemon-juice,
Thanks for the feature request.
Indeed, we must bring back the textual inline editor for complex values.


Add a ownCloud-5-years page with quotes

Let's get this live fast pls...

@tomneedham @danimo this PR is good with one issue: I wanted the look of the conference site but I couldn't figure out how to get that CSS file to apply to the page page-5years.php so I developed the page as replacement for owncloud.org/conf and then copied it, once done, to page-5years.php and will rely on help from either of you to actually have it look properly... See screenshot.

Any chance you can help me get this merged and live before Monday lunch time (Europe)?
Thanks in advance :D

@jospoortvliet This looks great, I will have a chance to sort this tomorrow evening. IIRC, the conf page has a separate stylesheet, which is included when certain pages are loaded. See https://github.com/owncloud/owncloud.org/blob/master/templates/head.php#L16

:+1:

I don't think this is actually working right now, right @jospoortvliet ? We still need to update the css loading and I can checkout the code tomorrow.

CSS is fixed at https://github.com/owncloud/owncloud.org/pull/405
See http://staging.owncloud.org/5years/

(though not sure if the "ownCube TBD" is really what we want to have written there :D)

@LukasReschke yeah, that still has to be fixed. If they haven't send something in until Monday morning, I replace it with something else.
@tomneedham took me a while to find it, @camilasan helped :dancers:


feat: improve interaction hook result types

Closes
Discussion: https://github.com/adobe/react-spectrum/discussions/1618
Some of these would need to be refactored too:
https://github.com/adobe/react-spectrum/search?q=HTMLAttributes<HTMLElement>
✅ Pull Request Checklist:

[ ] Included link to corresponding React Spectrum GitHub Issue.
[ ] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[ ] Filled out test instructions.
[x] Updated documentation (if it already exists for this component).
[x] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Project:

Going to close this for the reasons outlined in the related discussion. https://github.com/adobe/react-spectrum/discussions/1618#discussioncomment-396010


Sonoff TH10/16 doesn't show temperature with firmware version 3.4.1

Recently bought Sonoff TH10/16 (TH16/R2), however delivered with firmware 3.4.1
At the identies in home assistant only the Switch is seen, not the temperature.

Maybe you don't read docs?
https://github.com/AlexxIT/SonoffLAN#sensors-from-device-attributes

Sorry,
Thanks for fast feedback.
Regards,
Rob
Outlook voor Android downloaden


Change 'search' to 'find' in UG + remove 'prefixes'

"'Prefixes' is not user centric" - Han Bin, 2024

UG: What is prefix, field, index - non-technical people would not get too easily


chore: update catch2 from 3.6.0 to 3.7.0

Description
Updates catch2 from 3.6.0 to 3.7.0.

This PR is not related to any issues I could find.
Tasks

[ ] Tested on Linux
[x] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?
Run the tests, expected to pass.

SFMLBuildMaster: Build this please.

GitHub Actions had a hiccup, so the status aren't reported, but I'll merge it regardless.

Thanks for updating this! 🙂


Helm charts does not have the v1.4.6

hello team, 2 days ago i install the crowdsec helm-charts. on that time its working. but now its not working . the crowdsec agent pod is crashing again and agian and it says that :-

Crowdsec is not the latest version. Current version is 'v1.4.5' and the latest stable version is 'v1.4.6'. Please update it!"
Populating configuration directory...
time="09-05-2023 09:46:20" level=warning msg="Crowdsec is not the latest version. Current version is 'v1.4.5' and the latest stable version is 'v1.4.6'. Please update it!"
time="09-05-2023 09:46:20" level=warning msg="As a result, you will not be able to use parsers/scenarios/collections added to Crowdsec Hub after CrowdSec v1.4.6"
time="09-05-2023 09:46:20" level=info msg="Wrote new 560575 bytes index to /etc/crowdsec/hub/.index.json"
2023-05-09T09:46:21.215031544Z time="09-05-2023 09:46:21" level=warning msg="Crowdsec is not the latest version. Current version is 'v1.4.5' and the latest stable version is 'v1.4.6'. Please update it!"
2023-05-09T09:46:21.215062902Z time="09-05-2023 09:46:21" level=warning msg="As a result, you will not be able to use parsers/scenarios/collections added to Crowdsec Hub after CrowdSec v1.4.6"
time="09-05-2023 09:46:21" level=info msg="crowdsecurity/linux : up-to-date"
time="09-05-2023 09:46:21" level=info msg="Item 'crowdsecurity/linux' is up-to-date"
2023-05-09T09:46:21.220586918Z time="09-05-2023 09:46:21" level=info msg="Run 'sudo systemctl reload crowdsec' for the new configuration to be effective."
2023-05-09T09:46:21.927556189Z time="09-05-2023 09:46:21" level=warning msg="Crowdsec is not the latest version. Current version is 'v1.4.5' and the latest stable version is 'v1.4.6'. Please update it!"
time="09-05-2023 09:46:21" level=warning msg="As a result, you will not be able to use parsers/scenarios/collections added to Crowdsec Hub after CrowdSec v1.4.6"
time="09-05-2023 09:46:21" level=info msg="crowdsecurity/whitelists : up-to-date"
2023-05-09T09:46:21.943428291Z time="09-05-2023 09:46:21" level=info msg="Item 'crowdsecurity/whitelists' is up-to-date"
2023-05-09T09:46:21.943438460Z time="09-05-2023 09:46:21" level=info msg="Run 'sudo systemctl reload crowdsec' for the new configuration to be effective."
time="09-05-2023 09:46:22" level=warning msg="Crowdsec is not the latest version. Current version is 'v1.4.5' and the latest stable version is 'v1.4.6'. Please update it!"
2023-05-09T09:46:22.685099148Z time="09-05-2023 09:46:22" level=warning msg="As a result, you will not be able to use parsers/scenarios/collections added to Crowdsec Hub after CrowdSec v1.4.6"
time="09-05-2023 09:46:22" level=info msg="crowdsecurity/docker-logs : OK"
2023-05-09T09:46:22.869612664Z time="09-05-2023 09:46:22" level=info msg="Enabled parsers : crowdsecurity/docker-logs"
2023-05-09T09:46:22.870723518Z time="09-05-2023 09:46:22" level=info msg="Enabled crowdsecurity/docker-logs"
time="09-05-2023 09:46:22" level=info msg="Run 'sudo systemctl reload crowdsec' for the new configuration to be effective."
time="2023-05-09T09:46:22Z" level=warning msg="Deprecation warning: the pid_dir config can be safely removed and is not required"
2023-05-09T09:46:22.953964013Z time="09-05-2023 09:46:22" level=info msg="Crowdsec v1.4.5-linux-a9a2186a76af63551352aa3bc296bdbe80ca4893"
time="09-05-2023 09:46:22" level=warning msg="MaxOpenConns is 0, defaulting to 100"
2023-05-09T09:46:22.958985070Z time="09-05-2023 09:46:22" level=info msg="Loading prometheus collectors"
time="09-05-2023 09:46:22" level=warning msg="Exprhelpers loaded without database client."
2023-05-09T09:46:22.972478911Z time="09-05-2023 09:46:22" level=info msg="Loading grok library /etc/crowdsec/patterns"
2023-05-09T09:46:24.496665043Z time="09-05-2023 09:46:24" level=info msg="Loading enrich plugins"
time="09-05-2023 09:46:24" level=info msg="Successfully registered enricher 'GeoIpCity'"
time="09-05-2023 09:46:24" level=info msg="Successfully registered enricher 'GeoIpASN'"
time="09-05-2023 09:46:24" level=info msg="Successfully registered enricher 'IpToRange'"
time="09-05-2023 09:46:24" level=info msg="Successfully registered enricher 'reverse_dns'"
2023-05-09T09:46:24.496951828Z time="09-05-2023 09:46:24" level=info msg="Successfully registered enricher 'ParseDate'"
time="09-05-2023 09:46:24" level=info msg="Loading parsers from 6 files"
2023-05-09T09:46:24.497506314Z time="09-05-2023 09:46:24" level=info msg="Loaded 1 parser nodes" file=/etc/crowdsec/parsers/s00-raw/docker-logs.yaml stage=s00-raw
2023-05-09T09:46:24.522202696Z time="09-05-2023 09:46:24" level=info msg="Loaded 2 parser nodes" file=/etc/crowdsec/parsers/s00-raw/syslog-logs.yaml stage=s00-raw
2023-05-09T09:46:24.577397754Z time="09-05-2023 09:46:24" level=info msg="Loaded 1 parser nodes" file=/etc/crowdsec/parsers/s01-parse/sshd-logs.yaml stage=s01-parse
2023-05-09T09:46:24.577841503Z time="09-05-2023 09:46:24" level=info msg="Loaded 1 parser nodes" file=/etc/crowdsec/parsers/s02-enrich/dateparse-enrich.yaml stage=s02-enrich
2023-05-09T09:46:24.578774726Z time="09-05-2023 09:46:24" level=info msg="Loaded 1 parser nodes" file=/etc/crowdsec/parsers/s02-enrich/geoip-enrich.yaml stage=s02-enrich
time="09-05-2023 09:46:24" level=info msg="Loaded 1 parser nodes" file=/etc/crowdsec/parsers/s02-enrich/whitelists.yaml stage=s02-enrich
time="09-05-2023 09:46:24" level=info msg="Loaded 7 nodes from 3 stages"
time="09-05-2023 09:46:24" level=info msg="No postoverflow parsers to load"
time="09-05-2023 09:46:24" level=info msg="Loading 2 scenario files"
time="09-05-2023 09:46:24" level=info msg="Adding leaky bucket" cfg=aged-tree file=/etc/crowdsec/scenarios/ssh-slow-bf.yaml name=crowdsecurity/ssh-slow-bf
time="09-05-2023 09:46:24" level=info msg="Adding leaky bucket" cfg=bold-resonance file=/etc/crowdsec/scenarios/ssh-slow-bf.yaml name=crowdsecurity/ssh-slow-bf_user-enum
time="09-05-2023 09:46:24" level=info msg="Adding leaky bucket" cfg=floral-shadow file=/etc/crowdsec/scenarios/ssh-bf.yaml name=crowdsecurity/ssh-bf
2023-05-09T09:46:24.580264889Z time="09-05-2023 09:46:24" level=info msg="Adding leaky bucket" cfg=winter-rain file=/etc/crowdsec/scenarios/ssh-bf.yaml name=crowdsecurity/ssh-bf_user-enum
2023-05-09T09:46:24.580271982Z time="09-05-2023 09:46:24" level=warning msg="Loaded 4 scenarios"
2023-05-09T09:46:24.580276660Z time="09-05-2023 09:46:24" level=info msg="loading acquisition file : /etc/crowdsec/acquis.yaml"
2023-05-09T09:46:24.580615493Z time="09-05-2023 09:46:24" level=info msg="Force add watch on /var/log/containers" type=file
2023-05-09T09:46:24.581124364Z time="09-05-2023 09:46:24" level=warning msg="No matching files for pattern /var/log/containers/traefik-traefik.log" type=file
2023-05-09T09:46:24.581248095Z time="09-05-2023 09:46:24" level=info msg="Starting processing data"
2023-05-09T09:46:24.644749486Z time="09-05-2023 09:46:24" level=fatal msg="starting outputs error : authenticate watcher (): Post \"https://crowdsec-service.crowdsec:8080/v1/watchers/login\": http code 403, invalid body: invalid character '{' after top-level value"
2023-05-09T09:46:24.644807945Z time="09-05-2023 09:46:24" level=fatal msg="starting outputs error : authenticate watcher (): Post \"https://crowdsec-service.crowdsec:8080/v1/watchers/login\": http code 403, invalid body: invalid character '{' after top-level value"

but in the artifacthub.io there is no v1.4.6 , pls help me here.

one main thing , here i am using traefik-ingress controller. i want full steps to install in kubernetes with proper way.

Github bugged out new issu is #97


Model Deployment

I am also interested in your impressive work! As you are from the Horizon Robotics, will you consider deploying the model on Journey 6 platform in the future?

Hi, thank you for your interest in our work. We are continuously iterating on and optimizing the model, and we may explore deployment tests and applications on the Journey chips in the future.


Dropdown: typeahead not available

Based on discussion: https://github.com/carbon-design-system/carbon-components-svelte/discussions/1974
Problem
When focusing on a Dropdown, typing a value should open the dropdown and focus on the first matching item.
React demo: https://carbondesignsystem.com/components/dropdown/code/
Svelte demo: https://svelte.carbondesignsystem.com/framed/Dropdown/DropdownSlot?theme=white

The is already a ComboBox component that lets you type and filter items. I don't think this is needed functionality for the Dropdown component


attachUserRole

I tried to attach a role to a user with the following code:
UserModel:
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Zizaco\Entrust\Traits\EntrustUserTrait;
class User extends Model implements AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract  {
//use Authenticatable, Authorizable, CanResetPassword, EntrustUserTrait;
use Authenticatable, CanResetPassword, EntrustUserTrait;
	protected $table = 'users';
	protected $fillable = ['name','email'];
	protected $hidden = 'password, remember_token';

}
UserController:
public function attachUserRole($userId,$role) {
	$user = DB::table('users')->where('id',$userId)->get();
	$roleId = DB::table('roles')->where('name',$role)->pluck('id');
	$user->roles()->attach($roleId);
	return response($user)->header('Access-Control-Allow-Origin', '*');
	}

route:
$api->version('v1', function ($api) {
$api->
get('users/{user_id}/roles/{role_name}','App\Http\Controllers\UserController@attachUserRole');
});
I my browser I get the following error:
{"message":"Call to a member function roles() on a non-object","code":1,"status_code":500}
I think function roles() isn't  defined but it's defined in EntrustUserTrait?
EDIT: i use also dingo api
Does any know what i did wrong?

Got my issues finally fixed!

@Mike8219 can you share your working code ?


QA: Drop down menu is behind left navigation

The drop down menu on desktop is behind the left navigation. This makes it difficult (if not impossible) to select items from the drop down menu because the left navigation links get in the way.
Here's a screenshot from the How to apply for or renew a license page.

This issue has been resolved.


Create the initial security groups and databases

This is so we can use serverless to create the rest of the infrastructure.

I take it you have the default VPC running on those accounts?

Yes, there's an existing VPC called vpc-housing-<environment>, where environment is one of development, staging or production depending on what account you're working in.


set PATH for Python packages

@jacquelinekay This should fix the issue with building the workspace with the --isolated option.
@esteve @jacquelinekay @tfoote @wjwwood Please review.

+1

+1

+1


Fix CI issues

This PR takes care of a number of test failures:

no-aws-cred tests were failing due to exception class changing. Instead of the expected AuthenticationException, it now throws an EncryptionException. I don't think the exception class matters for the tests (as the spec only suggests checking for failures, not a specific failure), but I can take a closer look at the reason for the change if necessary.
PHPLIB-1327: Index management tests fail on latest due to recent changes. This PR syncs the tests with mongodb/specifications@e54cb7c3da226cb14285a14fa7219cdc5c8ed997.
PHPLIB-1304: changes for ADL tests were only merged to the main branch, I backported these changes to v1.17 to avoid the system failure. Tests still fail however as we can't connect to the local ADL instance. This is a failure I've seen with other drivers as well and I'm still investigating this for a later fix.

This leaves the serverless tests to fail, which I'm investigating as part of PHPLIB-1303.
The patch build for this PR includes the no-aws-creds tasks that currently fail.

After some investigation, I've reopened PHPLIB-1307 and fixed the issue where listIndexes sends a readConcern option, which was revealed by the tests.

fixed the issue where listIndexes sends a readConcern option, which was revealed by the tests.

I don't see this change in the PR, but tests are green.

I don't see this change in the PR, but tests are green.

Upon further investigation, I found that libmongoc is always adding the readConcern, even though the Collection class doesn't. I'm skipping that test for the time being until libmongoc fixes the issue or the test is changed.


ModuleNotFoundError

when I enter “./make_all_figures.sh -t” it shows
Traceback (most recent call last):
File "figure_doa_experiment.py", line 105, in
import doa
File "/home/syk/FRIDA-master/doa/init.py", line 19, in
import tools_fri_doa_plane as tools_fri
ModuleNotFoundError: No module named 'tools_fri_doa_plane'
can you give me some suggestions to figure it out？thx . My python version is 3.6

@fakufaku I think this is probably related to the import in Python 3:
change import tools_fri_doa_plane as tools_fri to import .tools_fri_doa_plane as tools_fri should fix it.

With Python 3, there will be some other problems like print statements without parenthesis, such as Line 99 of figure_doa_experiment_plot.py.

@fakufaku I think this is probably related to the import in Python 3:
change import tools_fri_doa_plane as tools_fri to import .tools_fri_doa_plane as tools_fri should fix it.

thanks,now i use python2.7....

With Python 3, there will be some other problems like print statements without parenthesis, such as Line 99 of figure_doa_experiment_plot.py.

yes.Changed a lot of code before,now i use python2.7


Implement webserver functionality for authorisation

Summary
Webserver authorisation (or loopback IP addresses) are the recommended way to handle authorisation for desktop projects.
Why?
Manual code entry has been removed, and though v3.3.2 introduces a temporary solution (see #33), there's no telling how long that solution will work for.
Ideal implementation
Probably something within the Analytics and AsyncAnalytics classes, but unsure beyond that.
Additional information
No response
Contribution

[x] I wish to contribute this feature.

Checklist

[X] I have searched the issue tracker for duplicate issues and couldn't find any. If this is a follow-up issue, I have specified as such.

Closing as complete.


fix: restore hub flag on org:delete

What does this PR do?
We deleted an unused flag.  This puts a hidden, dummy string flag in its place to avoid breaking changes.  It'll include warnings for anyone who uses it (the entire command is deprecated anyway).
What issues does this PR fix or reference?
https://github.com/forcedotcom/cli/issues/1925
@W-12563970@

For those who come back to this PR to understand why we added this no-op flag... here's how often the targetdevhubusername flag was used in 2023-01. It was sufficient enough that we believed it would cause unnecessary pain without the deprecation cycle.

yyyy-MM
Plugin
Command
Flag
Count

2023-01
@salesforce/plugin-org
force:org:delete
noprompt
50,164

2023-01
@salesforce/plugin-org
force:org:delete
targetusername
51,765

2023-01
@salesforce/plugin-org
force:org:delete
targetdevhubusername
4,145

2023-01
salesforce-alm
force:org:delete
targetusername
18,949

2023-01
salesforce-alm
force:org:delete
noprompt
19,570

2023-01
salesforce-alm
force:org:delete
targetdevhubusername
9,763

2023-01
@salesforce/plugin-org
force:org:delete
json
5,219

2023-01
salesforce-alm
force:org:delete
json
978

2023-01
@salesforce/plugin-org
force:org:delete

1,465

2023-01
@salesforce/plugin-org
force:org:delete
loglevel
1,772

2023-01
salesforce-alm
force:org:delete

118

2023-01
salesforce-alm
force:org:delete
loglevel
18

2023-01
@salesforce/plugin-org
force:org:delete
target-org
2

2023-01
@salesforce/plugin-org
force:org:delete
no-prompt
1

2023-01
@salesforce/plugin-org
force:org:delete
apiversion
4

2023-01
@salesforce/plugin-org
force:org:delete
help
2

Note: We collect anonymous information related to the use of the CLI and plug-ins, such as which commands and parameters were run, and performance and error data.


simplify code

use native php function

The array_filter callback with $key support since php 5.6, I should push to 5.3


added autogen of terraform docs

solves #203

@strowi can you take a look on this?

@strowi can you take a look on this?

Perfect @batthebee should be very helpful to have the variables autogenerated.  ;)

@batthebee Can we instead save this in a new file? We already have a docs folder with SSH.md in it, maybe we could add Terraform.md, and link to it from the main README.md. I would prefer it that way! Especially if it can be auto-regenerated, it would be even more awesome!

@mysticaltech do you have a suggestion in which section i should insert the link in the README.md?

@batthebee At the end of "creating your kube.tf" would be ideal! 🙏

@batthebee If you can finish fast, it would be an awesome addition to our upcoming 1.3.0 release that is due when we merge your other PR! 🤞


Mkdocs Container added to docker-compose.yml

Coverage remained the same at 82.827% when pulling 65e776f20497db295ed861d3e191fbade8f9f0d5 on mkdocs into 9aa1e0239b8fb7ec9fd57c64c2de86a815aacffe on develop.


Button action not being fired from the bottom view.

I tried adding a button to the bottom view and noticed that if I normal tap, the button action is not being triggered. I tried adding this code to the SwipeableTableViewController but it still does not seem to encapsulate the button touch.
public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if (touch.view is UIButton) {
return false
}
return true
}

@jsdu please checkout this archive elongation-preview-button-demo.zip.