Fixed comments looks like they are swapped

// Deploy another verticle without configuration.
was near a method where  configuration was being passed
// Deploy the verticle with a configuration.
was near a method where no configuration was being passed

Thanks!


Improvement - Call stackexchange tags API with all the entered tags.

We were fetching missing tags from the stackexchange API one by one which adds up extra network latency and increases the response time of post creation API.
Now, we fetch all the missing tags from the stackexchange API in single network call.

@dhruv42 Have you tested it end to end with frontend also?

If you have tested it then add relevant screenshots with the frontend like when the post gets created, and the description that's getting pushed to each of the tags that you have added

@dhruv42 Good Job 🎉🎉


Add grapiserver.Option

Codecov Report

Merging #45 into master will decrease coverage by 2.24%.
The diff coverage is 40.98%.

@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   49.08%   46.84%   -2.25%
==========================================
  Files          36       37       +1
  Lines        1316     1377      +61
==========================================
- Hits          646      645       -1
- Misses        624      687      +63
+ Partials       46       45       -1

Impacted Files
Coverage Δ

pkg/grapiserver/builder.go
0% <0%> (-38.81%)
:arrow_down:

pkg/grapiserver/engine.go
88.05% <100%> (+0.55%)
:arrow_up:

pkg/grapiserver/options.go
39.28% <39.28%> (ø)

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 4e10d27...07e4099. Read the comment docs.


[main] Upgrade to latest dependencies

prepare for release -nader-ziada
/cc knative-sandbox/eventing-writers
/assign knative-sandbox/eventing-writers
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/pkg 00c122e...e325df6:
  > e325df6 upgrade to latest dependencies (# 2490)
bumping knative.dev/eventing-redis 938f31e...bed7577:
  > bed7577 Update actions (# 317)
bumping knative.dev/reconciler-test 55eab02...6da8e62:
  > 6da8e62 Update actions (# 327)
  > 0c8c4d7 upgrade to latest dependencies (# 328)

/lgtm
/approve


Remove old store file post-refactor

During the refactor I wanted the old store version to stick around as an example in case we missed something during our design of the new store.
Once the store refactor is done (ostensibly with Phase 2), the previous store, now named index-old.js should be removed from the repo.

@jarmoza: is this blocked? If so, could you move it to "tracked" in the new status?

This is "Next", so I marked it as "Specify - Done".

Closed by #383


Release 1.1.0 and create maintenance

Maintenance branch created release/1.1.x.
Released all libs under 1.1.0 version.
Removed old tags on npm.
Changelogs are available in github releases.


Bug: the search input is showing two lines with weird positions

Describe the bug
The search input is a showing two lines and a bit ugly, I feel if it was one line it would be smoother.

Suggestion 1:
Changing the width to w-72

Suggestion 2:
Centering the shortcut

Related code:
https://github.com/open-sauced/app/blob/06b73aff03fb95771ac1811ee15bd997e21651bd/components/organisms/SearchDialog/search-dialog.tsx#L202-L216
Steps to reproduce

go to the main page.

This appears to only be an issue on Windows as it's fine on Chromium bases browsers and Safari.

@nickytonline thank you for asking, we can have it as good first issue, if it's okay?

.take

.take

@msaadg, @sourabpramanik is working on this.

@nickytonline it's fine I unassigned myself when he asked,

@sourabpramanik Are you currently working on this issue? If not, I would like to take it up. Thanks!

let @msaadg take the shot

please let @msaadg take the shot

Thank you so much @sourabpramanik


Ci exclude release related branches from automated builds

The new Multibranch pipeline jobs trigger a build for changes pushed
to branches. We want to exclude builds from branches used for
deployments, such as release, staging, etc.

I think this is ok but I wonder if it's a regular expression? https://jenkins.io/doc/book/pipeline-as-code/ seems to say so. In which case it might need pipes between the words.

I think it's not very clear, the include branches section says "Space-separated list of branch name patterns to consider" and the exclude section says "Branch name patterns to ignore"
I tried with a few variations of regular expressions and it didn't work


Peer dependencies of git package not downloaded

Issue description
Dependencies from a dependency from a git source are no longer automatically installed after the 2020 update.
Expected result
Install all required packages, including the requirements of dependencies
Actual result
Peer dependencies are not resolved
Steps to replicate
Pipfile:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]

[packages]
pycodestyle = {git = "https://github.com/PyCQA/pycodestyle.git"}
generator_python = {git = "https://gitlab.ewi.tudelft.nl/weblab/generator-python.git"}
mock = "*"

[requires]
python_version = "3.8"

[scripts]
all = "sh -c 'pipenv run codestyle && pipenv run generator && pipenv run tests'"
codestyle = "pycodestyle --exclude output,.venv ."
generator = "sh -c 'python -m generator assignments'"
tests = "sh run-tests.sh"

After pipenv install, running pipenv run generator will result in errors due to missing packages. These packages are listed in this repo's setup.py, but are not installed. With pipenv==2018.11.26 these packages are downloaded and everything works.

Can't reproduce here, can you try to minimize the case?
At least pipenv install git+https://github.com/pallets/flask.git#egg=flask works fine.
Also can you provide the output of env|grep -i PIPENV?

The case for me: the dependency generator_python requires some packages, these are not installed. The minimal pipfile would just contain that one, and to test it the generator script.
The command you list gives no output for me 😕

An open source repo using the same dependency is this one, see this job log to see the failure. This job is a manual rerun, so there were no changes since the last build (which passed)

@yoshivda The Pipfile.lock lacks peer dependencies, can you try pipenv lock --clear and see whether the file is fixed?

sorry for asking the dumb question here, but why invoke python via sh? Does this work if you just change your Pipfile to say:
[scripts]
all = "pipenv run codestyle && pipenv run generator && pipenv run tests"
codestyle = "pycodestyle --exclude output,.venv ."
generator = "python -m generator implementation --output output/implementation"
generatoranalysis = "python -m non_programming_generator analysis/exercises"
tests = "sh run-tests.sh"

You also may want to consider using the full path to sh, e.g. /usr/bin/sh

@frostming That indeed solved it, thanks a lot! I was unable to find this behaviour change in the changelog though, and I want to stress that this exact lockfile worked fine before the update. Did I miss an entry in the changelog, or if not, could this be added?

@techalchemy Just tried and that works too, thanks!

@yoshivda That was a bug in previous releases -- Installing dependencies of editable packages even they are not specified in the lock file.
It is no longer an issue with the latest release, I'm going to close it.

@frostming Thanks for the explanation, that helps 🙂 I still can't find it in the changelog, but that might be my bad


luci-mod-admin-full: show realtime wlan graph only if iw command is installed

Signed-off-by: Florian Eckert<EMAIL_ADDRESS>

This appears to me to be wrong.  Realtime graphs in trunk use luci-bwc which uses libiwinfo not iw binary.

@feckert Is this a 15.05 bug fix of some kind?

@cshoredaniel i am working on 15.05 and i have a target without wlan and the wlan packages are not installed. But the realtime graph always show the wlan tab.
So i test for iw if it is installed, and if not then i am on a target without wlan supported. The source in trunk looks the same and there is no test too. So i think it is useful for trunk as well.

@feckert How about checking for /etc/config/wireless - it should exists if wlan is at all present and should not exist if it is not.  e.g. if fs.acess("/etc/config/wireless") then ...

@cshoredaniel I will to PR update on monday 👍

@feckert no rush, and if you could run test it too, that would help.

@cshoredaniel i am not shure if you get an update if i make a "git push --force" so i want to infrom you that I have update the PR

@feckert  thank you - I did miss this notification too...will get to it soon

@jow- Should this go in for-15.05 as well?


FIR-32353: refactored FireboltStatementService.execute()

number of parameters is reduced because some of them can be retrieved from passed statement
(*) most of change here are in test mockup. The real change is in FireboltStatementService.execute() and in place where this method is called.

retest


Cannot read properties of undefined (reading 'MAX_LENGTH')

Package Name: @azure/storage-blob
Package Version: 12.24.0
Operating system: Windows 11 WSL2
[ ] nodejs

version: v20.16.0

[ ] browser

name/version: Any

[ ] typescript

version: 5.4.5

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://learn.microsoft.com

Describe the bug
Getting the following error with Angular 18. Not sure whether it's issue from Angular or Azure Storage Blob.
9:00:46 PM [vite] Error when evaluating SSR module /@fs/home/git/app/.angular/cache/18.2.3/vite/deps_ssr/@azure_storage-blob.js?v=e87b4b88:
|- TypeError: Cannot read properties of undefined (reading 'MAX_LENGTH')
    at eval (/home/git/app/.angular/cache/18.2.3/vite/deps_ssr/@azure_storage-blob.js:24853:55)

To Reproduce
Steps to reproduce the behavior:

Setup Angular 18 App with SSR
Install @azure/storage-blob package
import { BlockBlobClient } from '@azure/storage-blob'; in one of the component
Build and run the Angular app.
The last line below is throwing the exception.

//<EMAIL_ADDRESS>var import_buffer = __toESM(require_buffer());
var maxBufferLength = import_buffer.default.constants.MAX_LENGTH;

Expected behavior
No error to occur.
Screenshots
N/A
Additional context
N/A

@alextse Thanks for reporting the issue!  I am not familiar with Angular/SSR but it looks storage-blob is using the NodeJS version and couldn't read Buffer.constants.MAX_LENGTH

Thank you @jeremymeng , it was indeed an issue from Angular and not Azure packages.


Make annotation processor incremental (isolating)

Investigate the possibility to make the annotation processor incremental.

Annotation processor has been deprecated. No need for improvement


[AutoPR sql/resource-manager] fix: Microsoft.Sql/stable/2014-04-01 model validation

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6704

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/5771


Error with replace filters in citation keys

When specifying a citation key format, the ":replace" filter seems to not be recognized. When I add a replace filter, the box turns orange (as if the string was invalid) and my addition isn't saved.

Here's the string that works:

[authEtAl][shortyear]

And here's one that doesn't work (I lifted the replace filter directly from the documentation on this page):

[authEtAl:replace('.etal','&etal')][shortyear]

support log ID: 2AA7BAWB-euc

I'm reworking the pattern documentation, which is partly generated, so parts updated too early. The generated function/filter descriptions are for the new citation key format, if you type [authEtAl][shortyear] the box under it shows the new format as authEtAl + shortyear, and replace would be authEtAl.replace('.etal','&etal') + shortyear. During the transition period you can force the new format by prefixing the pattern with '' + . At some point the old format will just be converted to the new format and that's all you'll see/be able to enter.

got it, thank you for the super quick response!


TextBuffer::ResizeTraditional may leak stale pointers

The catch clause will allow BufferAllocator to be destroyed while the ROWs in _storage continue to reference its memory. The solution is to refactor ROW::Resize from being a mutating function over to allocating a new _storage vector and copying all rows over. That way the TextBuffer is only mutated once at the end, long after all throwing code has finished executing.

@lhecker was this closed in #15105?

Oh, yes, thank you!


find and fix examples where we are using the single dash style flags.

Summary
find and fix examples where we are using the single dash style flags.
Ticket Link
Related to #706
Release Note

`cosign` now uses POSIX style flags.

You might also want to update intro.gif: https://github.com/sigstore/cosign/blob/main/images/intro.gif


Error after updating a field

Steps to Reproduce
Please describe exactly how to reproduce the problem you are running into.

Add a field to an existing class (for me it was a non-nullable boolean)
Run build runner
Restart app
Try to get data from db

Output
Error 'package:isar/src/native/binary/binary_writer.dart': Failed assertion: line 24 pos 12: '!staticOffset || offset < _staticSize': is not true.
Something weird is that I'm not able to fix this by deleting the data.mdb file and lock : it is still persisting until app reinstallation
Code sample
//(how I'm getting data)
return await isarInstance.things.where().findAll();

//(how I open the db)
initIsar() async {
    var dir = await FolderAppUtil.getDirectory();
    isar = await openIsar(directory: "${dir.path}/offline");
}

Version

Platform: Android
Flutter version: 2.2.0
Isar version: 0.4.0
Isar Generator version: ^0.4.0

Oh, btw it was during a writing operation and not a reading operation.

I am suddenly getting this error pretty constantly. After trying to get windows desktop mode to work.

Fixed with stable release

I'm running into this.  Using 1.0.5, added several new int and double properties to my model and started receiving offset < _staticSizeerrors when trying to write. Upgraded to2.0.0` and also receiving the error.

@spatialbits thanks for letting me know. It would be extremely helpful if you could send me the model before and after the changes 🙌

yeah for sure.

(in case string constants scratch your eyeballs, I'm still experimenting with working out how get string prop names for building queries before passing into isar collection objects. Would you suggest using a generator?)

Thanks a lot! I will take care of it.

loving your work btw. Great job 🚀


assertExactJson false positive for JSON lists (ie non-assoc arrays)

Laravel Version: 5.7.11
PHP Version: 7.1.3

Description:
The assertExactJson method sorts the JSON, both in the response and in the expected data before comparing. This is not the correct way of handling JSON data if the data contains a list. Eg:
{"foo": [1,2]}

is not the same JSON as
{"foo": [2,1]}

but assertExactJson behaves as though they are equivalent.
In other words: for JSON comparison, associative arrays should be compared ignoring order, non-associative arrays should be compared respecting order.
Steps To Reproduce:
    public function testJson1()
    {
        // I would expect this to pass
        $response = new TestResponse((new JsonResponse(['foo' => [1, 2]])));
        $response->assertExactJson(['foo' => [1, 2]]);
    }

    public function testJson2()
    {
        // I would expect this to fail
        $response = new TestResponse((new JsonResponse(['foo' => [2, 1]])));
        $response->assertExactJson(['foo' => [1, 2]]);
    }

$response = new TestResponse((new JsonResponse(['people' => [['name' => 'albert1'], ['name' => 'albert2']]])));
$response->assertExactJson(['people' => [['name' => 'albert2'], ['name' => 'albert1']]]);

Do you think the above code should fail ?

For the history, see #17809 and https://github.com/laravel/framework/commit/0c1a306fa2b5b45a5c7f762d862ea99dd3e8b06d, where the method has been renamed (and its purpose somehow redefined).
I agree it would be more sensible to not sort the values.

From the JSON spec:

An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.

Sorting shouldn't have an implication.

@driesvints But also from the JSON spec:

An array is an ordered sequence of zero or more values.

So while sorting shouldn't have an implication for JSON objects, it should have an implication for JSON arrays.
So I stand by my example that {"foo": [1,2]} is not the same JSON as  {"foo": [2,1]}.

You're correct. This is indeed not intended and should be fixed.

Since the assertExactJson method has been altered a lot already in the past and in every case it breaks at least something for someone we've decided that we won't alter it any further for the time being.

@driesvints I would be just about OK with that, but for the fact that it has "exact" in its name. That makes me feel like this is not merely surprising behaviour, but that the method definitely doesn't do the thing its name says it does and so is broken behaviour.
Some possible solutions that come to mind:

just fix assertExactJson.
fix assertExactJson, add a assertJsonIgnoringOrder (or some other name) that preserves existing behaviour.
deprecate assertExactJson and create a new method called assertJsonEquals (or some other name) that does the correct thing - could add assertJsonIgnoringOrder if that has any long-term value.
keep assertExactJson as is and add assertRealExactJson that does the correct thing (...)

Personally, I think these are in order from best to worst. I understand that fixing assertExactJson will break some tests, but I reason that if someone wrote assertExactJson in their test, they deserve to know if the two bits of JSON they're comparing are in fact not the same.

I'd suggest:

assertSameJson (fixed behavior)
assertSameJsonIgnoringIndexes (current behavior)

The latter could be useful for cases like: userRights: ['admin', 'dictator', 'moderator']
where we are looking for "flags" regardless of their order.

I think this should really be consided to be opened again.


Discussion: Improved handling and passing of sources between components

Passing the sources object around is kind of a "damned-if-you-do, damned-if-you-don't" scenario. On the one hand, it's nice when you can use destructuring, like so:
function main({DOM, router}) {
  // But now I can't pass sources to child components
}

On the other hand, it's important to be able to pass sources around:
function Component(sources) {
  // ...
}

function main(sources) {
  const sinks = Component(sources);
  // But now I have lost the convenience of destructuring
}

This brings me to my next point. It's important to be able to pass adhoc streams of data to child components, with common examples such as props$ or state$, but then you have to break the standard component contract, function Component(sources), by supplying additional arguments, and even then, you still lose the ability to simultaneously destructure and pass sources around. To maintain the standard component function signature/contract, you have to contaminate the sources object with component-specific data such as streams of props, and the component must then take that into account when it passes the sources object to its own children. Should it just pass the contaminated sources along as-is and hope for the best, or should it try to sanitize the sources object before  passing it along, and if so, how does it know which sources to keep and which to discard?
I've been experimenting with an approach to possibly conquer all of these issues at once, but I'm curious how others feel about the idea. On one hand, it allows for consistent sources-passing, a consistent single-argument component function contract, the ability to destructure, and provides a way to sanitize or customize sources before passing them to children, but on the other hand, it requires any component that makes use of the technique to assume that all of its ancestors (i.e. other component functions already on the stack) to also either opt in, or to at least not butcher the sources object before passing it on.
Here's what it looks like:
Cycle.run(main, {
  // drivers
});

function main(sources) {
  return App(upgradeSources(sources)); // Say hello to the `upgradeSources` function
}

function App({ DOM, router, sources }) {
  // Note that we get destructuring AND the sources object

  function props$ = ... // Make a stream of props for our child component
  function state$ = ... // Get some kind of state from somewhere

  // Pass along a new sources object, upgraded and augmented for the child component
  return SomeComponent(sources.with({ props$, state$ }));
}

function SomeComponent({ DOM, props$, state$, sources }) {
  // `sources` is a recursively-nested copy of `arguments[0]`, so that it can be
  // passed to local functions

  // ... Assign foo$ and bar$ some values
  let foo$, bar$; // (Assignment omitted for brevity)

  // Provide YetAnotherComponent with foo$ and bar$, but not props$ or state$
  const yetAnotherChild = YetAnotherComponent(sources.with({ foo$, bar$ }))

  // This one doesn't require any special properties, so create a clean sources
  // object, minus extraneous properties (same as calling `sources.with({})`)
  const anotherChild = OtherComponent(sources.sanitize());

  return // ... return sinks as usual
}

The implementation is as follows:
export function upgradeSources(sources) {
  const sourceKeys = Array.from(Object.keys(sources));

  const cleanSources = sources => sourceKeys
    .reduce((acc, key) => (acc[key] = sources[key], acc), {});

  function withCustom(baseSources, customSources) {
    const cleanedSources = cleanSources(baseSources);
    const nextSources = Object.assign({}, cleanedSources, customSources);
    return augment(nextSources, cleanedSources);
  }

  function augment(nextSources, cleanedSources) {
    let augmentedSources = Object.assign({
      sanitize: function() {
        return augment(cleanSources(this));
      },
      with: function(custom) {
        return withCustom(this, custom);
      }
    }, nextSources);
    return Object.assign(augmentedSources, {sources: augmentedSources});
  }

  return augment(sources);
}

One might argue that it's better to just keep everything super simple and not use these sorts of abstractions. A counter-argument would be that the reason people have pain points at all with Cycle is because of a lack of basic, consistent abstractions for situations like these, leading to a lack of clarity about how to handle issues such as those I described in this topic.
I realise there is an issue when it comes to isolation in that the nested sources property would lose homogeneity with isolated sources, but I'm not going to implement a solution to that without further discussion on the main idea itself.
Thoughts/feedback?

I think this is the ideal type of API to put in a library and use it as an intermediate/advanced tool.
As you said, we can accomplish whatever we need with the current API, but it may be a bit more verbose. Here are some solutions with vanilla Cycle.js that are more verbose than upgradeSources:
single sources argument plus destructuring:
function main(sources) {
  const { DOM, router } = sources;

  // use DOM and router, or sources
}

grandchild gets all sources except those specifically meant for the child:
function SomeComponent(sources) {
  const { DOM, HTTP, props$, state$ } = sources;
  // ...

  // Manually list the acceptable sources for the grandchildren
  const yetAnotherChild = YetAnotherComponent({ DOM, HTTP });
  // ...
}

OR
const omit = require('lodash/fp/omit');
// It's not Cycle's job to do proper FP with objects, so we can import lodash or
// Immutable.js to help us here. Anyway, a Cycle app in production should have
// either one of those, or both.

function SomeComponent(sources) {
  const { DOM, props$, state$ } = sources;
  // ...
  const yetAnotherChild = YetAnotherComponent(omit(sources, ['props$', 'state$']));
  // ...
}

you have to contaminate the sources object with component-specific data such as streams of props

I don't share the opinion about "contamination". There is nothing dirty about props stream, and the top-level sources that come from Cycle.run are not the "pure" sources. Sources are simply dataflow inputs to a function (a dataflow component).

or should it try to sanitize the sources object before passing it along

We should try to sanitize the sources object before passing it along. It's the current component's responsibility to build the sources that its child needs.

and if so, how does it know which sources to keep and which to discard?

Sources and sinks are contracts, they should be publicly known. Think of types in functional programming like in Haskell for instance. Whenever you use a function, the code using it has the responsibility to provide the correct arguments. The contract of the function is public, no matter what API or library you are using. It's not the function's responsibility to do guess work in order to capture its own parameters from the given argument. For that reason, it's important that all components specify publicly what sources they expect and what sinks they produce. It's just a function https://en.wikipedia.org/wiki/Type_signature
That said, as you can see, my snippets are a tiny bit more verbose than your helper. So it makes sense to publish it as a separate library.

Regarding:

I don't share the opinion about "contamination". There is nothing dirty about props stream, and the top-level sources that come from Cycle.run are not the "pure" sources. Sources are simply dataflow inputs to a function (a dataflow component).

Of course, my use of the word "contamination" was simply with respect that passing through a props stream for a component is probably only relevant for that component, and it's going to need to strip it out again for any of its children, or leave itself open to unexpected side effects if those children can also take an optional props stream input. The same argument applies to a state stream or anything else of a similar nature.

The contract of the function is public, no matter what API or library you are using. It's not the function's responsibility to do guess work in order to capture its own parameters from the given argument. For that reason, it's important that all components specify publicly what sources they expect and what sinks they produce.

That's a valid counterpoint. Even so, I worry about the risk you run into where you have some deep hierarchy of components and each component's requirements must bubble up to the root level, making lower-level components more and more brittle as the descendant component graph gets more complex.

Sources and sinks are contracts, they should be publicly known. Think of types in functional programming like in Haskell for instance. Whenever you use a function, the code using it has the responsibility to provide the correct arguments.

This is true, but I can see possible problems with edge cases when trying to develop an ecosystem of third-party components. Imagine a case where a third-party component provides an enrichment wrapper for your own components. Perhaps you're passing it a list of component functions to be instantiated as its own children depending on props, and it's going to need to know how to correctly pass inputs to those child components. Without a standardized approach for maintaining consistency in the sources object, it will be difficult for it to know how to pass what those child components require.
So, in a sense, I agree that you can definitely keep things simple and just pass things along on an adhoc basis, and in many cases that is probably the right approach. For a larger application though, I think a standard model for maintaining consistency is a good idea, especially if there is any desire to promote an ecosystem of third-party components.
... Playing devil's advocate to my own point above, I suppose it would be possible for the contract described by a third-party component could include the requirement for a function that correctly transposes sources, but on the other hand, that seems needlessly fiddly.

I think the problems we are discussing here are about the brittleness of dynamic typing in JavaScript, not necessarily a Cycle thing. Because we are really doing FP here, but without the support of a proper type system. When all the contracts are explicit and verified compile-time, you don't have the problems of missing a grandchildren's requirement up the hierarchy, because it won't compile if you miss.
This happens with any other deep hierarchy in FP. For instance the Elm architecture is about deep nesting of Model types and Action types, and because of strong typing, missing those corner cases is rarely a problem.

standard model for maintaining consistency

Why can't "sources as an object" and "sinks as an object" be a standard model, provided that all components tell what their contract is (e.g. in documentation since JS doesn't have types)?

I think the problems we are discussing here are about the brittleness of dynamic typing in JavaScript, not necessarily a Cycle thing. Because we are really doing FP here, but without the support of a proper type system. When all the contracts are explicit and verified compile-time, you don't have the problems of missing a grandchildren's requirement up the hierarchy, because it won't compile if you miss.

Sure, though it's an academic point seeing as we are using JavaScript, so the tools and techniques we implement are chosen with respect to the environment we have to deal with. I guess you could tell everyone to just use TypeScript.

Why can't "sources as an object" and "sinks as an object" be a standard model, provided that all components tell what their contract is (e.g. in documentation since JS doesn't have types)?

You can, of course. But then you hit the fiddly, micromanagement issues I described. And those don't have to be considered issues, as you pointed out, but I personally feel uncomfortable with the fact that we still have to surface deep requirements all the way back up the tree, meaning that use of a component at a deep level then forces its concerns onto all of its ancestors. Probably not too much of an issue in many cases I guess, but I suppose the whole point of the idea is that I like clean, minimal code footprints. Less code means that a component is easier to quickly read/scan and ascertain its behaviour. When you're writing effectively the same bits of code all through your codebase, I usually start considering abstracting it away..

I personally feel uncomfortable with the fact that we still have to surface deep requirements all the way back up the tree, meaning that use of a component at a deep level then forces its concerns onto all of its ancestors

I don't feel uncomfortable with this because it's inherent complexity, not accidental complexity. Say you want to use a component MusicGenerator deep inside the hierarchy, and this one expects a MIDI source. Using it inside a component Foo will automatically make Foo be a component that expects MIDI as a source. The type signatures have to change, because now Foo is a component that does different things and requires different inputs, generating different outputs. The contract and responsibilities have changed.

Sure, though it's an academic point seeing as we are using JavaScript, so the tools and techniques we implement are chosen with respect to the environment we have to deal with. I guess you could tell everyone to just use TypeScript.

JavaScript hides the types, but they are always there. I am not saying everyone should use TypeScript. I'm just saying the types and contracts are always there. Embracing them is better than hiding them because implicit types and contracts are what really make codebases brittle. If you don't use TypeScript or Haskell, than you need to be extra careful that the contracts are being fulfilled. The responsibility that would otherwise be on the compiler to statically check that for you is suddenly all on your hands. I know JavaScript is a language that allows you to pretend that types and contracts are not there, but it only leads to fragile or magical code.

Can we have a third perspective here? @edge @TylorS @laszlokorte ?

I just destructure the sources object in the parameters:
const myComp = ({DOM, HTTP, props$, foo$}) => {
}

As you described this forces me to make all child dependencies explicit in the parent's signature and makes all dependencies propagate upwards.

I personally feel uncomfortable with the fact that we still have to surface deep requirements all the way back up the tree, meaning that use of a component at a deep level then forces its concerns onto all of its ancestors

I see this as an advantages or rather as the correct way of doing it. Because by not doing so the requirements wont go away but will just be hidden. You would still have to document somewhere that "component X a requires sources: A,B and C and additionally it expects D, E and F to be there because they are needed inside a sub component Y". If you do not do so the usage of component X will lead to an error if D, E or F are not available. So if you have to document it anyway why not just do it right in the signature?
Obviously the root of the issue is the core concept of cycle the idea of "the app/component is a function". If a component is a function or more specific if the usage/setup of the component is equal to the call of that function there is no other way than passing all dependencies down the hierarchy.
A solution could be instead of passing down all the sources a child component needs to pass down the child component itself as a curried function which already has been applied to all of it's global dependencies:
// main still needs to specify all dependencies
const main = ({DOM, HTTP, storage, socket, audio}) => {
   const subComponentForA = curried(compB, {storage, socket, audio});
   const ca = compA({DOM, HTTP, subComponent: subComponentForA});

   return {
      DOM: ca.DOM,
      HTTP: ca.HTTP,
      storage: ca.storage, // this is weird
      socket: ca.socket, // ...
      audio: ca.audio, // ...
   };
};

const compA = ({DOM, HTTP, subComponent}) => {
   const child = subComponent({DOM, HTTP});

   return {
      DOM: view(..., child.DOM),
      HTTP: ...,
      storage: child.storage, // :-(
      socket: child.socket,
      audio: child.audio,
   }
};

const compB = ({DOM, storage, socket, audio}) => {
  return {
    DOM: ...,
    storage: ...,
    socket: ...,
    audio: ...,
  }
};

But this code above is really stupid. You get rid of of the need to pass dependencies for compB through compA, but compA still needs to return all the sinks of compB. The sources and sinks of compA are not longer symmetric. compA would still need to document those additional return values in order to tell main to pass them to the drivers. The data flow is really messed up.
So in the end in my opinion there is no other way then making all sources and sinks explicit everywhere if you want to have an explicit and simple data flow.

I've generally chosen to use sources only and to liberally use object-rest-spread, which I'll still note isn't a standard JS feature, but is possible via babel plugins.
function Component(sources) {
  const {DOM, HTTP} = sources
  ...
  const props$ = Observable.just(....)
  const something$ = Observable.just(...)
  const otherComponent({...sources, props$, something$})
}

I'm really appreciating these types of discussions more now that I know about Clojure, which is the other foundational stone of programming paradigms beside Haskell. It's Haskell that has the strong type system and Clojure where the data is the code. Anyways just interesting because until now I kept hearing that Haskell was this god language when really it is just one of two major approaches.
I certainly like the Clojure approach and having an approach like that would make sources and sinks much more fluid. However, in following the Haskell tradition you end up having to work dataflow through a mess of function signitures. I'm still learning about the differences and found the following article helpful in knowing the difference between Haskellian and Clojurian approaches to moving data around.
<EMAIL_ADDRESS>

just saw this via productpains, wanted to share our current approach with sparks... though it has been changing on a weekly basis, here's the kind of stuff we're doing...
Convention we're using so far is:
const FooPageComponent = sources => {
  const bar = BarClickableDisplayComponent({...sources,
    item$: sources.someSpecificSourceFromAbove$,
  })

  const baz = BazCreationComponent({...sources,
    isOpen$: bar.click$.map(true),
  })

  const queue$ = baz.item$.map(aLibraryFunctionThatTranslatesItemToQueueTask)

  return {
    queue$,
    DOM: combineLatest(bar.DOM, baz.DOM, (...doms) => div({}, doms)),
  }
}

We are also using the convention that all sources are observables, or functions that return observables, which means things like:
const hello = ListItem({
  title$: just('Hello World'),
})

I agree that the lack of transparency in the component args is not a good thing.  We're trying to solve that by keeping our components as small as possible, so you can easily see where sources is being used in your IDE.
We have already started a collection of easily reusable components, and plan on extracting that into a library soon.  I want to make sure the naming conventions are standardized amongst all components and fill in a couple of holes (notably a TabControl).
https://github.com/sdebaun/sparks-cyclejs/blob/release/src/components/sdm/ListItem/index.js
PRs, Issues, etc welcome on sparks-cyclejs. :)

Thanks for all the great comments, everyone. Your arguments have convinced me.

Edit: oops, looks like the issue was closed while I was writing this. I suppose there's still some value in reading it.
This is a pretty nice idea, but it's a bit too opinionated. With some reduction, I might be more comfortable with using it.
Before anything, cleanedSources is not referenced within the body of augment, so I'm a little confused.
function augment(nextSources, cleanedSources) {
  let augmentedSources = Object.assign({
    sanitize: function() {
      return augment(cleanSources(this));
    },
    with: function(custom) {
      return withCustom(this, custom);
    }
  }, nextSources);
  return Object.assign(augmentedSources, {sources: augmentedSources});
}

First, I think that having sources point to itself is not necessary. In the end, it feels more like a hack to make up for the lack of a language feature.
Haskell makes a point of your concern and implements as-notation. This allows you to both pattern match (destructure) against the argument while still keeping a reference to the argument itself.
-- stack dup, duplicates head
dup (h:t) = h : h : t
-- with as-notation
dup s@(h:_) = h : s

This saves you the convenience of doing
dup s = h : s
  where (h:_) = s

At the end of the day, one extra line of code isn't really all that bad, and the same argument could be made for Javascript:
function Component(sources) {
    let { DOM, props$ } = sources;
}

But I do think that it's useful to explicitly unsubscribe from extra sources. One way of doing that would be to explicitly make components take two arguments, but that would require a breaking change, lest we end up with an ecosystem that could blow up at any second. In that case, we could use a two-element array with the structure [sources, customSources].
function Component([sources]) {
    // ...
}

is an explicit out-out, and
function Component([sources, customSources]) {
// ...
}
is an explicit opt-in.


CI: add PR check to preview job

Adds a status check to the PR for the preview job.
https://github.com/signed-long/new-connect/pull/19/checks

Can we also add a check when it's started?

Updated to add in-progress check to start of the job
see: https://github.com/signed-long/new-connect/pull/20


Support for Python 3.13

Currently, installing the package on Python 3.13 will raise the following error because of cffi 1.16.0:

'PyErr_WriteUnraisable' declared here
PyAPI_FUNC(void) PyErr_WriteUnraisable(PyObject *);

This is fixed in cffi 1.17.0, but unfortunately, it's not released yet.
The fix: https://github.com/python-cffi/cffi/issues/23
Currently, the only workaround is to install version 1.17.0rc1 until a new release of cffi is created.
Thanks, @sydney-runkle, for reporting the issue.
Edit: 1.17 has been released and we can then update the cffi dependency

Amazing! We'll update our CI when you guys do your next release!


tutorials: caught MemoryError when "Running in bulk" in deep/define-ml-pipeline#running-in-bulk

Please provide information about your setup
DVC version: 0.40.2 (installed by pip)
OS: Ubuntu 18.04
RAM: 8GB
I am following a tutorial in https://dvc.org/doc/tutorial/define-ml-pipeline.
UPDATE: This refers to http://localhost:3000/doc/tutorials/deep/define-ml-pipeline#running-in-bulk now.
In "Running in bulk" section, I failed to run this command and caught an error.
$ dvc run -d code/featurization.py -d code/conf.py \
            -d data/Posts-train.tsv -d data/Posts-test.tsv \
            -o data/matrix-train.p -o data/matrix-test.p \
            python code/featurization.py
Running command:
	python code/featurization.py
The input data frame data/Posts-train.tsv size is (66999, 3)
Traceback (most recent call last):
  File "code/featurization.py", line 48, in <module>
    train_words = np.array(df_train.text.str.lower().values.astype('U'))
MemoryError
ERROR: failed to run command - stage 'matrix-train.p.dvc' cmd python code/featurization.py failed

Having any troubles?. Hit us up at https://dvc.org/support, we are always happy to help!

Hi @mexeniz !
Looks like you are running out of memory :slightly_frowning_face: As opposed to our get-started guide, our tutorial has some beefy requirements on RAM. Have you tried get-started already? https://dvc.org/doc/get-started In essence, it is a simplified tutorial.

Thank you!
I will check that get-started out.

Hi @efiop, I also ran into the same issue. By beefy requirements can you give a precise estimate of it?

Reopening this. As we discussed privately with @kurianbenoy, we need to find a way to modify it a bit so that we can run it on a smaller machine. Ideas to try: filter the dataset artificially, try less features (it's 5000, try 2500 by default), check if there is a way to use some optimized arrays.

@shcheklein I modified the script by trying 2500 features:
bag_of_words = CountVectorizer(stop_words='english', max_features=2500)
Yet I couldn't understand the error message which came following it :
Arguments error. Usage:
	python featurization.py data-dir-path features-dir-path
ERROR: failed to run command - stage 'matrix-train.p.dvc' cmd python code/featurization.py failed

@kurianbenoy can you run it with -v to see the full log?

@shcheklein  this is log messages:
https://gist.github.com/kurianbenoy/33d087f910fd0e28f2cc89d000c19052

@kurianbenoy it looks like you took the featurization.py from the get started, not from the tutorial? It seems you have a mismatch between your code and DVC files (command repro is trying to execute).

User from discord is running into the MemoryError on the same step but now in the get-started guide. Discord context: https://discordapp.com/channels/485586884165107732/563406153334128681/581584115644629012

With 12 GB of RAM,  I am still getting memory error.
@shcheklein

@efiop  what kind of beefy RAM requirements is this? Someone mentioned changing the MaxFeature parameter to 50 from 5000.

@ryokugyu Unfortunately I don't know specific minimal RAM requirements for running the tutorial :(

@ryokugyu Unfortunately I don't know specific minimal RAM requirements for running the tutorial :(

with 12 GB of RAM, it is still not executing. I think the problem is not memory, rather its some implementation issue.

@ryokugyu Unfortunately I don't know specific minimal RAM requirements for running the tutorial :(

with 12 GB of RAM, it is still not executing. I think the problem is not memory, rather its some implementation issue.

As @shcheklein  said I tried out reducing no of features in Count Vectoriser from 2500, 1000, 100, 50,1 and all of them gave memory error.

I tried chunking into smaller dataframes and then appending it to make a training dataframe. Just try the gist code and please help in resolving the errors.

@shcheklein  @Naba7 I think there is something wrong with stage.py / run.py.
I tried executing the code on Anaconda 3. It executed successfully.
/doc/tutorial one.
But when running with DVC commands, it is giving an error.
Which eliminates the chances of any error in the code. We have to go through the DVC commands files.

Yes,You may be correct because I tried it with colab and notebooks it worked fine. No,I do not think so, because the error that shows is array size can't be handled properly. May be error is in stage.py or in featurization.py. Because in my terminal it shows error is in featurization.py

Because in my terminal it shows error is in featurization.py

it will show that the error is in featurization.py. But check this gist
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/dvc/command/run.py", line 53, in run
    outs_persist_no_cache=self.args.outs_persist_no_cache,
  File "/usr/local/lib/python2.7/dist-packages/dvc/repo/scm_context.py", line 4, in run
    result = method(repo, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/dvc/repo/run.py", line 69, in run
    stage.run(no_commit=no_commit)
  File "/usr/local/lib/python2.7/dist-packages/dvc/stage.py", line 831, in run
    self._run()
  File "/usr/local/lib/python2.7/dist-packages/dvc/stage.py", line 786, in _run
    raise StageCmdFailedError(self)
StageCmdFailedError: stage 'matrix-train.p.dvc' cmd python code/featurization.py failed

Imo, the program is executing fine.

Let me make you understand what I have understood here. The https://github.com/iterative/dvc/blob/master/dvc/stage.py file stages the commands-reference and or in simple words executes the commands. In this case, it fails to execute the file featurization.py because there is an error in it. The error is not able to hold such a large ndarray in a dataframe. So, the error is in featurization which is to make the memory able to hold onto such a large data and perform operations on it. @shcheklein @efiop @ryokugyu  It would be nice and somewhat better if we change using pandas to dask as dask supports parallel computing. I have tried solving this,but no value.

@Naba7 you are correct about the logic behind the stage!
Re the memory error. I still believe this is how CountVectorizer is working. I would try to replace it (I'm not sure if it makes sense), read about some possible optimization techniques.
I would also try to run some memory profiler if possible to see precisely where the bottleneck is.
dask is too advanced for the get started or NLP tutorial. There is a room for a separate dask tutorial though.

Alright!
On Thu 6 Jun, 2019, 11:43 PM Ivan Shcheklein<EMAIL_ADDRESS>wrote:

@Naba7 https://github.com/Naba7 you are correct about the logic behind
the stage!
Re the memory error. I still believe this is how CountVectorizer is
working. I would try to replace it (I'm not sure if it makes sense), read
about some possible optimization techniques.
I would also try to run some memory profiler if possible to see precisely
where the bottleneck is.
dask is too advanced for the get started or NLP tutorial. There is a room
for a separate dask tutorial though.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iterative/dvc.org/issues/333?email_source=notifications&email_token=AHQZX5376UDQR7PFH4A6BOTPZFHSXA5CNFSM4HM3AY6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXDWN2A#issuecomment-499607272,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHQZX55QOSGOSIBPMRO2AWDPZFHSXANCNFSM4HM3AY6A
.

@shcheklein @Naba7 @efiop This is just a problem for RAM requirements.
I ran it on my system which has the following configuration :

And it executed successfully by using almost 98% of RAM.
imo, RAM requirement is just more than 16 Gb then.

Yes,it has been discussed in discord. The problem is people not having the requirements can't use the tutorial or getting-started.

@Naba7 I am working on a new tutorial. It will be up soon. With a smaller dataset and fewer RAM requirements.

Is this issue still relevant?
I remember that in the Katacoda tutorial I had to reduce the size of the input dataset in order to run it successfully (with 1.5G RAM).

Reducing data set size make metrics look bad as far as I remember. So it's not a solution for this problem.

I don't think anybody is going to check the real value of the metric in an example or tutorial.

@dashohoxha they will. it's really bad to give an ML example that is broken. For the same reason (and it's arguable decision) we decided to use a real-life example vs just a bunch of random text files and scripts - real life example resonate way better with hands-on practitioners.

This issue affects me aswell.
Paste from my Discord message:
What's wrong?
While running featurization.py I get some kind buffer overflow.  16GB of RAM get consumed in seconds and the execution halts after a couple of seconds of system freeze.
I get a The input data frame data/Posts-train.tsv size is (66999, 3) output, so far the code is valid. But the next step most likely goes sideways, because a injected print(test) does not show up after train_words.
My setup includes 16GB of RAM.
Despite the older statements I don't get a memory error raised. I think dvc may not be verbose about python errors.

Tutorial got absorbed with get started. Closing this. For get started we have a separate ticket for this.


Use backing file for storing validated block cids

Summary of changes

Changes introduced in this pull request:

Use backing file for storing validated blocks instead of store
Fix typo in documentation

Reference issue to close (if applicable)

Closes #2642
Other information and links

Change checklist

[ ] I have performed a self-review of my own code,
[ ] I have made corresponding changes to the documentation,
[ ] I have added tests that prove my fix is effective or that my feature works (if possible),
[ ] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Oh, and the checklist needs to be completed.


Add helpers for Cards/Modal/etc

This is a (multiple allowed):

[ ] bug

[x] enhancement

[x] feature-discussion (RFC)

BootstrapUI Version: 4.0.0

Bootstrap Framework Version: 5.1.3

jQuery: N/A

Platform and Target: N/A

I often use Bootstrap panels/cards in my CakePHP applications and I stumbled upon:
https://github.com/CakePHP-Bootstrap/cakephp4-bootstrap-helpers/tree/v4.x/src/View/Helper
The CardHelper seems particularly appealing to me.
Potentially some of the other Helpers written by CakePHP-Bootstrap can be ported into this one. I have created a similar feature-discussion on that repository (https://github.com/CakePHP-Bootstrap/cakephp4-bootstrap-helpers/issues/8) to see what that repository thinks about merging the missing helpers to here.

I'm not going to stop anyone who wants to add such functionality 😛

Same for tabs IMO - https://getbootstrap.com/docs/4.4/components/navs/#tab

PRs welcome


GraalVM support

Hello, amazing project :)
Does it work with graalvm?
Maybe it's a good idea to mention in the docs about the support and what's necessary to setup it.
Related: https://github.com/clj-easy/graal-docs

Works without any problem, does not use anything that needs dealing with reflections.

Even not using reflection, some clojure code needs type hinting to fully work with graalvm, but if you already tested that I think it's good to mention in the README :)

I checked a long time ago, so I'll check again in the near future if anything has changed and only then I'll add to the readme info about compatibility and close the issue. Thx! ;)


merge koord-controller and koor-webhook into koord-manager

Signed-off-by: Tao Li<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
Simplified deployment of components
Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews

/lgtm
/approve


fix get calculated value

fix get calculated value by delaying cast
Fixes #1440

Codecov Report

Merging #1439 (8d0eccf) into main (fcc7bd7) will increase coverage by 0.00%.
The diff coverage is 100.00%.

:exclamation: Current head 8d0eccf differs from pull request most recent head 31ba5a3. Consider uploading reports for the commit 31ba5a3 to get more accurate results

@@           Coverage Diff            @@
##             main    #1439    +/-   ##
========================================
  Coverage   94.24%   94.24%
========================================
  Files         237      237
  Lines       44239    44343   +104
========================================
+ Hits        41693    41792    +99
- Misses       2546     2551     +5

Impacted Files
Coverage Δ

fastfield_codecs/src/linearinterpol.rs
99.54% <100.00%> (ø)

fastfield_codecs/src/multilinearinterpol.rs
100.00% <100.00%> (ø)

src/fieldnorm/reader.rs
95.95% <0.00%> (-3.00%)
:arrow_down:

src/fastfield/multivalued/mod.rs
94.11% <0.00%> (-2.95%)
:arrow_down:

src/core/segment_reader.rs
90.76% <0.00%> (ø)

src/aggregation/bucket/range.rs
97.01% <0.00%> (+0.39%)
:arrow_up:

src/postings/stacker/expull.rs
99.05% <0.00%> (+0.47%)
:arrow_up:

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

Hey, I'm still having the same error but in this line "src/postings/recorder.rs:280:46"

@sachaarbonel can you provide a unit test that highlights the remaining problem?


error result attribute didn't work for me in useReadCypher

even when I passed an invalid cypher query it didn't return an error (message)

I've added some tests in https://github.com/adam-cowley/use-neo4j/commit/feef55d86843e9d079ccf542516034d0af54e3c4 which verify the fixes for this issue - version 0.2.20 published to npm

Fixed in https://github.com/adam-cowley/use-neo4j/commit/1d4c751f609cb1125f17d0925adf462344fdcfb8 - the error is no longer re-thrown


apache + azure blob to work as a http server

Hi,
I am currently try to implement an architecture that makes the azure blob as a http server that can provide some static html files.
I have an apache works in front of the blob server as a proxy server, and every time a request comes to some route will be mapped to blob server.
see my apache configuration below
ProxyPass /dummy-static http://localhost:10000
ProxyPassReverse /dummy-static http://localhost:10000
http://localhost:10000 is the end point of my azure blob emulator.
My theory is any request to http://www.dummy.com/dummy-static/somepage.html?sig=xxx will be mapped to resource "somepage.html " located on azure blob emulator.
This theory is correct, but that is not what I want.
This behaves like everytime you send the request, it download the somepage.html, rather than render the somepage.html in the browser.
I googled and found that there is some similar implementation, but it seems not I want.
see this
https://azure.microsoft.com/en-au/blog/static-websites-on-azure-storage-now-generally-available/
try this one
https://staticwebsitedemo.z20.web.core.windows.net/?prefix=testdir2/
Can some one tell me that how to make it render the static html in the browser ranther than download it.
Many thanks.

@Hanwen196 Thank you very much for your interest in Azure cloud services. Do you have any tutorial or other Microsoft docs that you are following? I am going to assign this to an Azure Storage engineer to help you but this might be better served through the MSDN and Stack Overflow forums.

It looks I resolved the issue. If I set up the blob properties as text/html rather than application/stream, it seems resolve the issue.

I will let you know if I can resolve the issue

@handwen196, Thanks for posting, just a friendly reminder, for any issues not related to documentation, please post it in either MSDN or Stackoverflow forums. I'd also like to suggest looking at azure Static websites which would render you HTML pages, more information can be found here
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Data Buyer Guidelines

The Buyer Guidelines.
Purpose
The guidelines that a company or company user will read or refer to for their engagement with the data licencing process.
Intent
To be read by a data buyer or developer to understand how to engage/interact with the data licensing process.
Completion
A set of guidelines suitable for a "professional".
Note
This does not include the legal policy documents for privacy and data access.

notes for discussion:

expiry: no defaults on contract duration or renewal. if no duration is listed, its assumed to be perpetual. (all contracts are at-will, since the user can opt-out at any point).
defining the data section should include the data use section.
under the ownership section, it should be clear the user is not transferring ownership just a license
the minor's section is not about collection of minor's data per say, while yes, that must also follow all local laws, the bigger issue is the agreeing to a legal contract with a minor (they do not have the authority to sign off on it).
under laws, I don't understand the difference between i & ii.
the arbitration language needs to be changed entirely. they have to put in the contract a dispute resolution clause, that indemnifies TIKI.
under acceptance, tiki auto-records the acceptance, so we need to rephrase the language. the key requirement here is that a user must explicitly opt-in.
under opt-out, ii & iii are both incorrect. we do not set the opt-out terms, we simply require them to be set.

The agreement between a data seller and a data licensor is called a User Data Licencing agreement or UDLA. This guideline sets out the guidelines for a buyer or licensor when creating a UDLA. There are some mandatory requirements for the UDLA set out in this guideline, these requirements need to be included in every UDLA, or it will be an invalid offer. The user or licensor will grant a licence to a company or licensee from the user for a defined set of data. The company or licensee will be permitted to use the data outlined in the UDLA for an agreed form of compensation.

Compensation- The company or licensor offers the user (licensee) compensation in exchange for a licence to access their data. The compensation or payment is something agreed with the user/licensee with an offer in exchange for a licence for their data. This payment may or may not be monetary or can be a discount on goods or services or credit against future purchases or services. The user/licensor or licensor of the data must define the compensation offered to the user/licensee in very clear terms. So that the user/licensee understands the offer that you, the licensor, is making for a licence to use the data, the offer should be very clear and precise. For example, "If you give us access to your xxxx data, we will give you xxxx for every 30 days that we have access”. In some cases, there is no compensation or payment, but this must be explicit in the offer.
i. You, the licensor must clearly state the offer and nature of compensation, or lack thereof, in the User Data Licence Agreement (UDLA).
ii. Any and all criteria required for compensation must be clearly stated in the UDLA.

UDLA Duration- The data licence or UDLA will be agreed upon between the licensor and licensee. As part of the UDLA the duration of the agreement will be explicitly agreed upon and must be clear and easy for the user/licensee to understand. The UDLA is a perpetual agreement by nature but will need a clearly defined renewal process where the licensor is agreeing to the renewal in an auditable way.
i. All UDLAs are perpetual but will require renewal at an agreed interval.
ii. All UDLAs agreements must be explicit and have a renewal term.
iii. All UDLAs will need an auditable form of agreement from the licensee.

Define the data to be licenced- The data you (the licensor) request or offer to licence must be clearly defined and easy for the user/licensee to understand. The offer must explicitly state what data you wish to licence. This could be email data, social media data etc. The user/licensee must understand that the data they will licence is only the agreed data and nothing else.
i. The UDLA must clearly state the data that the licensor is seeking to licence from the licensee in terms they will easily understand.

The user/licensee must be the legal owner – The user/licensee who receives a UDLA offer must be the legal owner of the data. Only a legal owner can issue a licence or grant permission to use the data. If the user/licensee is on a company-issued device or a third party is paying for the mobile contract, the user/licensee may not be the legal owner of the data on the device. The data may be subject to regulatory or legal constraints in some heavily regulated industries. In less regulated industries, the data may be subject to a confidentiality agreement that the employee signed with the company that issued the device.
i. You can only enter into a UDLA with the legal owner of the data.

Minors Data -As a company/licensor and a user/licensee, you must comply with applicable privacy laws around the world relating to the collection of data from children online. In addition, data from minors or children may not include personally identifiable information or device information from third parties.
i. The UDLA will be subject to the local laws relating to the privacy of minors.
ii. Only a licence that has reached the age of consent can agree to a UDLA.

Laws around the world - The agreement between you and the user/licensee is a contract and is subject to a consumer contract's usual terms and conditions. So, you will need to make sure that the contents of their standard terms and conditions for consumers and any other user/licensees comply with all applicable and relevant consumer laws.
i. All UDLAs must comply with all local consumer and relevant legislation in your jurisdiction.

Arbitration clause- Most simple licensor queries or concerns can be resolved using the Tiki support site at https://support.mytiki.com/. If Tiki cannot resolve the concerns or queries and a dispute arises between the licensor and a licensee or either party, all parties must agree to resolve the dispute through arbitration. The licensor and the licensee agree to resolve all disputes and claims between each other in individual binding arbitration. The UDLA must include a clause that sets this out explicitly. The clause should include but is not limited to any claims arising out of or relating to (1) any aspect of your relationship between you and the user/licensees. (2) This agreement. (3) Your use of the Tiki platform or services. This applies whether such claims are based in contract, tort, statute, fraud, unfair competition, misrepresentation or any other legal theory and includes all claims brought on behalf of another party.
i. The UDLA must include a clause that expressly states that both parties will agree to arbitration in the case of a dispute.* This clause will indemnify Tiki Inc. and all employees in a dispute between the licensor and licensee.

Definition of Acceptance – As part of the UDLA agreement between you, the licensor and a user/licensee, the licensee must communicate their acceptance of the terms of the offer. The acceptance can be in a tick box or button to indicate acceptance of the terms offered. There must be an explicit form of acceptance, or the agreement will remain an offer, and no data will be licenced from that user/licensee.
i. You, the licensor must have an explicit record of acceptance of your offer from the licensee.

Opt-out- As with most agreements, it is possible for both parties to decide to opt out of the agreement. The licensor can withdraw the payment or consideration for the UDLA with a reasonable notice period. This notice period needs to be included in the ULDA. The licensee can withdraw their licence at any time. The effect of either of these actions will have the effect of voiding the UDLA. If the user/licensee opts out, credits owed from the UDLA should be settled as possible. Any discounts or future promises for data licences are invalid on cancellation or opt-out by the user/licensee.
i. The definition of opt-out by both parties must be included in the UDLA.
ii.The notice period that the licensor provides to the licensee will be clearly defined in the UDLA.
iii.The licensor can withdraw the offer of compensation or agreement to licence the licensee’s data at any time.

Data use- As part of the offer to a user/licensee, you, the licensor, must explain to the user/licensee what you intend to use the data for. The user/licensee will be far more likely to accept your offer to licence their data if they understand what you intend to do with their licenced data. It is up to you to explain to the user/licensee your intentions for their licenced data.
i. The UDLA offer must contain information about how you intend to use the data.

The agreement between a data seller (the user) and a data licensor (the company) is called a User Data Licencing agreement or UDLA. This guide sets out the guidelines and hopefully answerrs any querstions for a buyer or licensor (company) when creating a UDLA.
First off, lets establish the names and roles
i. The licensor or "seller" of the data is the user.
ii. The licensee or "buyer" of the data is the company (you).
The basis of the agreement is a two way exchange. The user will grant a licence to a company  from the user for a defined set of data. The company  will be permitted to use the data outlined in the UDLA for an agreed form of compensation.
There are some mandatory requirements for the UDLA set out in this guideline, these requirements need to be included in every UDLA, or it will be an invalid offer.
Data permissions
This is the core of the UDLA and sets what that the the permission from the user towhre they agree to share information with you, the company and selected third parties. It also includes a statement that the UDLA will have no impact on the existing or future comercial relaitionship based on the user buying goods or services from the licensse (company). This means that if the UDLA doesnt work out it should not impanct ther prior commercial relationship.
Data uses
This sets out to establish that the company will not use that data specified in 3. Data Uses for any other purpose than the purposes set out in the Data Use table.This should give some reasurrance to the user that the data will not be used for anything other than the agreed purposes.
Data usage
As a company, the data request or offer to licence must be clearly defined and easy for the user/licensee to understand. The offer must explicitly state what data you wish to licence and what you intend to do with it. The user should understand that the data they will licence is only the agreed data and nothing else.
i. _The UDLA must clearly state the data that the licensor is seeking to licence from the licensee in terms they will easily understand.
ii. The licence must also include the following
iii. The use case for the data - this is writen in terms that the user will understand.
iv. The data usage - the is the data tags/terms of the data being used in the licence.
v. The data destination - this is the destination of the data. This may be for internal storage or an extenal data lake or warehouse but the location msut be shared.
iv. The frequency of the query - this is the frequency of the data extraction. _
Compensation
The company offers the user compensation in exchange for a licence to access their data. The compensation or payment is something agreed with the user by an offer in exchange for a licence for their data. This payment/reward may or may not be monetary or can be a discount on goods or services or credit against future purchases or services. Or, some other compensation that the user thinks is a fair price. The company making the offer must define the compensation offered to the user in very clear terms. To ensure that the user understands the offer that you are making for a licence to use the data, the offer should be very clear and precise. For example, "If you give us access to your xxxx data, we will give you xxxx for every 30 days that we have access”. In some cases, there may be no compensation or payment, but this must be explicit in the offer.
i.You, the company must clearly state the offer and nature of compensation, or lack thereof, in the User Data Licence Agreement (UDLA).
ii. The licence must include a duration and will be renewed with a new licence at the end of that period.
iii. any changes to the compensation will require a new agreement to repalce the origional one (see Alteration below).
Privacy and confidentiallty
This is a privacy statement that sets out your undertakings to endevour to maintain the confidentially of the user and thier data.
Duration
THe UDLA is perpetual in nature with a renweal every twelve months. The date of origin for the UDLA will be the date the user communicates thier acceptance of the offer. This date of origination will be one of the essential terms of the UDLA.
i. The data of acceptance is the start date of the agreement.
Alteration
The terms for alteration are very siomple and explicit, any changes or alterations to the UDLA renders it void. If you wish to make any altererations to the UDLA, you must issue a new offer to he usr that will contain the ammended terms.
i. A new UDLA msut be offered to the user in the event of any altertions or ammendments to the UDLA.
Governing law
THe governing jsuristiction for the UDLA will be the jsristction where you are located or the location of your registered office.
i. The full address of your location or registerd office msut be entered into the UDLA.
Opt-out
As with most agreements, it is possible for both parties to decide to opt out of the agreement. The company can withdraw the payment or consideration for the UDLA with a reasonable notice period. This notice period needs to be included in the ULDA. The user can withdraw their licence at any time. The effect of either of these actions will have the effect of voiding the UDLA. If the user opts out, credits owed from the UDLA should be settled as possible. Any discounts or future promises for data licences are invalid on cancellation or opt-out by the user.
i. The company can opt out of a UDLA at any time and without notice.
ii. The definition of the process of opt-out by both parties must be included in the UDLA.
iii. Every UDLA must include a definition of how the opt-out will affect the termination of the agreement and the associated actions.
iv. The notice period that the company provides to the user will be clearly defined in the UDLA.
You the licensee agree that
The user has obligations on acceptance of the UDLA. The user must be legally capable of sharing data and cannot share data that is contractually or legally restircted. This may be data that is subject to an employment contract or a federal employee or if they are underage.
Limitation of liability
This is a statement that limits the liabilty of both parties to the UDLA in the the event of a dispute or breach of the agreeemnet.
Third party indemnity
Tiki Inc. is the origonator of the UDLA and will the facilitator on agreement but is not a party to the agreement and as such is not liable to either party for the contents or performance of the UDLA.


Custom format

Hi there,
I need to format a number based on user preferences, where he can specify,

number format (for instance)
grouping separator
decimal separator
currency precision among other things

i was trying to format a number like this
numeral(10145333).format('0.000,00') --> to have "." as grouping separator and "," as decimal
"10,145,333.000000"
numeral(10145333).format('0 000,00') --> --> to have " " as grouping separator and "," as decimal
"10,145,333"
but it does not work.
Is this the expected behaviour when passing this format string?
If yes how can i accomplish the desired format?
Thank you very much

//register the two language, only once appwise.
numeral.register('locale', 'fr', {
delimiters: {
thousands: ' ',
decimal: ','
},
abbreviations: {
thousand: 'k',
million: 'm',
billion: 'b',
trillion: 't'
},
ordinal : function (number) {
return number === 1 ? 'er' : 'ème';
},
currency: {
symbol: '€'
}
});
numeral.register('locale', 'tr', {
delimiters: {
thousands: '.',
decimal: ','
},
abbreviations: {
thousand: 'b',
million: 'm',
billion: 'm',
trillion: 't'
},
ordinal : function (number) {
return number === 1 ? 'bir' : 'ler';
},
currency: {
symbol: '₺'
}
});
// switch between locales
numeral.locale('fr');
numeral(10145333).format('0.000,00')  => results: "10 145 333,000000"
//switch lang
numeral.locale('tr');
numeral(10145333).format('0.000,00')  => results: "10.145.333,000000"
//don't forget to switch to default
numeral.locale('en');
maybe format can get a 3rd param as locale. so without switching  language can do both operations.


Post Install Tool Error

After install was successful for Alteryx (Designer version 2<IP_ADDRESS>), in a very simple workflow to test the tool, I added the SFTP Downloader tool and immediately, before connecting any flow to it or entering any settings, I received the following error:
Error: SFTP Downloader (12): Traceback (most recent call last):
File "main.py", line 5, in
File "C:\ProgramData\Alteryx\Tools\SKOPOS_SFTP_venv\Lib\site-packages\pysftp_init_.py", line 12, in
import paramiko
File "C:\ProgramData\Alteryx\Tools\SKOPOS_SFTP_venv\Lib\site-packages\paramiko_init_.py", line 22, in
from paramiko.transport import (
File "C:\ProgramData\Alteryx\Tools\SKOPOS_SFTP_venv\Lib\site-packages\paramiko\transport.py", line 33, in
from cryptography.hazmat.primitives.ciphers import algorithms, Cipher, modes
File "C:\ProgramData\Alteryx\Tools\SKOPOS_SFTP_venv\Lib\site-packages\cryptography\hazmat\primitives\ciphers_init_.py", line 11, in
from cryptography.hazmat.primitives.ciphers.base import (
File "C:\ProgramData\Alteryx\Tools\SKOPOS_SFTP_venv\Lib\site-packages\cryptography\hazmat\primitives\ciphers\base.py", line 10, in
from cryptography.exceptions import (
File "C:\ProgramData\Alteryx\Tools\SKOPOS_SFTP_venv\Lib\site-packages\cryptography\exceptions.py", line 9, in
from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions
ImportError: DLL load failed while importing _rust: The specified module could not be found.
Wondering if any of it would resolve upon entering some settings, I did so as well as connected it to an incoming flow and nothing changed with the error.  Still there.
Let me know what I can do to correct the errors.
Thanks,

I have this too, using v1.0.2 (the v1.0 failed to install) With Alteryx 2<IP_ADDRESS>  Patch: 1
I see no changes since May 2021 - has this been abandoned & superseded by something else?

@PhillRogers @Drvt6713 We are still using the plugin in many of our workflows, but remain on Alteryx 2022.3 right now.
The issue raised here is one with the underlying Python library, which also seems to be related to Alteryx' python version. It is also mentioned in some GitHub issues e.g. in the underlying library:

https://github.com/pyca/cryptography/issues/9444
https://github.com/pyinstaller/pyinstaller/issues/6390
https://stackoverflow.com/questions/70201325/embedded-python-import-paramiko-fails-with-importerror-dll-load-failed-while

However, there doesn't seem to be an easy fix.
We would need to rewrite the whole plugin in order to use the latest Alteryx Platform SDK to be supported for future versions. As we are slowly migrating away from Alteryx, I cannot promise that we will actually do that, sorry.

Hi,
Thanks for the info. Out of interest what are you slowly moving towards?
I've been happily using KNIME for a while and prefer it greatl, for what I do.
Regards,
Phill
Phill Rogers
CFTP
Automation Specialist
+
Switchboard:
+44 (0) 1534 761500
+
Direct:
+44 (0) 1534 761526tel:+44 (0) 1534 761526
+
Email:
<EMAIL_ADDRESS>+
Website:
www.enhance.grouphttps://enhance.group/
[facebook]https://www.facebook.com/EnhanceGlobal/
[LinkedIn]https://www.linkedin.com/company/enhance-group/
[Twitter]https://twitter.com/enhanceje
@.***
@.***
Registered Office: 3rd Floor, 29‑31 Esplanade, St Helier, Jersey, JE2 3QA

From: Christopher Harms @.>
Sent: Saturday, February 10, 2024 4:18 PM
To: SKOPOS-ELEMENTS/SFTPTools_Alteryx @.>
Cc: Phill Rogers @.>; Mention @.>
Subject: Re: [SKOPOS-ELEMENTS/SFTPTools_Alteryx] Post Install Tool Error (Issue #16)
CAUTION: This email originated from outside of the organization. Do not follow guidance, click links, or open attachments unless you recognize the sender and know the content is safe.
@PhillRogershttps://github.com/PhillRogers @Drvt6713https://github.com/Drvt6713 We are still using the plugin in many of our workflows, but remain on Alteryx 2022.3 right now.
The issue raised here is one with the underlying Python library, which also seems to be related to Alteryx' python version. It is also mentioned in some GitHub issues e.g. in the underlying library:

pyca/cryptography#9444https://github.com/pyca/cryptography/issues/9444
pyinstaller/pyinstaller#6390https://github.com/pyinstaller/pyinstaller/issues/6390
https://stackoverflow.com/questions/70201325/embedded-python-import-paramiko-fails-with-importerror-dll-load-failed-while

However, there doesn't seem to be an easy fix.
We would need to rewrite the whole plugin in order to use the latest Alteryx Platform SDK to be supported for future versions. As we are slowly migrating away from Alteryx, I cannot promise that we will actually do that, sorry.
—
Reply to this email directly, view it on GitHubhttps://github.com/SKOPOS-ELEMENTS/SFTPTools_Alteryx/issues/16#issuecomment-1937054282, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUNE2NY26KR5CE74EGSUAFTYS6MSJAVCNFSM6AAAAABBSGVL4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZXGA2TIMRYGI.
You are receiving this because you were mentioned.Message ID: @.***>
Enhance Wealth Consultancy Limited and Enhance Investment Reporting Limited are wholly owned subsidiaries of Enhance Group Limited. Enhance Wealth Consultancy Limited is regulated by the Jersey Financial Services Commission to conduct investment business under the Financial Services (Jersey) Law 1998 (IB0270). This e-mail is intended only for the person to whom it is addressed. No one else may place any reliance upon it, or copy or forward all or any of it in any form. If an addressing or transmission error has misdirected this e-mail, please notify the sender by replying to this e-mail, and delete this e-mail and do not use, disclose, copy, print or rely on the e-mail in any manner. To the extent permitted by law, Enhance Group Limited does not accept or assume any liability, responsibility or duty of care for any use of or reliance on this e-mail by anyone, other than the intended recipient to the extent agreed in the relevant contract for the matter to which this e-mail relates (if any). This e-mail including any attachments may contain confidential and/or privileged information. If you are not the intended recipient you should not use the contents or disclose them to any other person. Please notify the sender immediately and delete the e-mail. Internet communications are not secure and therefore Enhance Group Limited does not accept legal responsibility for the contents of this message. Although Enhance Group Limited operates anti-virus programmes, it does not accept responsibility for any damage whatsoever that is caused by viruses being passed. Any views or opinions presented are solely those of the author and do not necessarily represent those of Enhance Group Limited. Further information on Enhance Group Limited including the Data Privacy Policy can be accessed via the website at:https://www.enhance.group/privacy_policy


yq missing in rpm spec

I just ran tmt again on a more clean environment and encountered issues with:
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        yq command not found. Please install it or make it available in a virtual environment
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Maybe the simplest is to help package python3-yq?

Sorry this was an issue with my plan


Add support for live updating for start and end date

Currently, the component on instantiation will set the start and end date and you will no longer be able to update it.
I have hooked the component into observing the values for startDate and endDate and used the native bootstrap-datepicker set methods to update it. I'm not sure about the internals of the jQuery implementation but I had to call _updateDatepicker to render the selection. There maybe a cleaner way to implement the rerender.

Nice! :+1:

Thank you @aldhsu for the great work! :+1:


TX not working with Teensy 4

Somehow bad behaviour on SPI bus it seems, RX works but TX doesn't (doesn't report error but no packet received on the other end).
Seen on Teensy 4.0, possibly on 4.1 too, with DRF4463F. Not tested with Zeta.
Will investigate soon.

Fixed, power supply issue.


Still under development?

Hi,
Currently we are trying to replace Live Helper Chat with an alternative. Is this project still under development?
Thanks.

Hi, for now I don't plan any new features. This is no profit app. Maybe in the future.
But it should work as it is.

Well, like every Open Source project, but there is always maybe a way to make some profit. Thanks for reply!

Website says:

Sorry to inform, but I will drop hosted version of this chat app in a month. It will work till 18 Aug 2019. You'll be still able to use it as a self hosted app. I'll leave documentation here and repository on Github. It'll stay free. Please move to self hosted version asap. Thanks.

Will this project be kept alive or totally abandoned (waiting for anyone else to keep maintaining it in case changes are required to keep up with browsers, operating systems and whatnot might break this in future)?


⚠ Avatar API Endpoint has degraded performance

In 0fd0ac2, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 4770 ms

Resolved: Avatar API Endpoint performance has improved in 8556a1f after 8 minutes.


[WIP] Test out of Dangerfile

Alright. Let's see how this goes.


Colors should be equal or more different

Testing #199155
Right now the gray in the margin is slightly different than the gray in the hidden lines info bar. IMHO we should either make them equal or make them more different, the shades are very close now which makes it feel like something is off.

agree. @hediet can we use the same grey background as the gutter for the hidden lines?


Component hints

Since a Component is immutable, during construction, we should store some "hints" about it and its children that are accessible in O(1) time. For example, one of the most common algorithms is to traverse a Component tree and translate keys. If we provided a hint for whether the component contained a translatable in its tree, we could fail-fast during translation. This is also applicable for #114, since we can provide a hint if the component is already compacted.
Is the tradeoff of faster time complexity for larger space complexity worth it? If it's done with an EnumSet or BitSet, I think it's manageable. Components can have complex structures, and not everything has a translatable. This could considerably speed up translations.

I think this is a brilliant idea. In Minestom, we are heavily bottlenecked by the networking side of things and being able to frame a packet once is a big advantage. Current solutions are to either attempt a translation and check for equality or traverse the entire tree and check for translatable components, both of which are far from perfect solutions.
I agree that this would be a much better solution, an EnumSet containing a collection of flags would be a brilliant idea. Perhaps a flag for translations could go further and be split into vanilla vs. non-vanilla translations, or maybe just "this component has translations that exist in the translator" would go even further in making this a powerful tool.


Fix GithubStrategy to packagist changes

The versions are not indexed by their version anymore. See https://packagist.org/p2/laravel-zero/phar-updater.json

Thanks for merging and releasing a new tag <3


Invoke-MSGraphRequest : Request type is not supported

Hello,
I'm trying to use the Invoke-MSGraphRequest cmdlet to update autopilot deployment profile and get the below issue
Invoke-MSGraphRequest : 400 Bad Request
"error": {
"code": "BadRequest",
"message": "Request type is not supported.",
}
I can correctly list deployment profile using Get method but when I use the Patch method, as below I have an issue.
Invoke-MSGraphRequest -Url "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$id" -HttpMethod Patch -Content $MyJSON
It works on Graph Explorer with the same JSON content

Ok, it seems to be a case-sensitive issue?
Patch does not work but PATCH does.


kernel: disable module signing

Motivation for this change
https://r13y.com
Closes #107524
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
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 nixpkgs-review --run "nixpkgs-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)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

/marvin opt-in
/status needs_reviewer

This PR breaks work the lockdown module:
boot.kernelParams = [ "lockdown=confidentiality" ];

Intentionally so. Without enforcing signatures or otherwise preventing root from loading modules, lockdown is pretty pointless AFAICT.

I thought lockdown does enforce signatures? This says that, at least.

I thought lockdown does enforce signatures?

Correct, it does. The lockdown feature depends on module signatures being enabled, because without it you could circumvent the lockdown protections (by loading a custom module that performs the protected actions).

Another data point: while Debian and Arch I think by default do include module signatures, OpenWRT does not (https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/generic/config-4.14;h=d54ede9efda0a3ffd84e9a0c49dc410a01737d82;hb=refs/tags/v19.07.5#l2736).

OpenWRT doesn't disable module signatures but simply doesn't set the option. Pretty sure it defaults to yes.

OpenWRT doesn't disable module signatures but simply doesn't set the option.

Good point

Pretty sure it defaults to yes.

I don't think so: I don't see a default in https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/init/Kconfig?h=v5.4.85#n2016, and https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt suggests in that case the default is 'n'. If you enable SECURITY_LOCKDOWN_LSM then https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/security/lockdown/Kconfig?h=v5.4.85#n4 automatically also enables MODULE_SIG, though.

I see that we have other reviewers and some of them have committer rights. As I don't have expertise in this area I'm going to leave it to them.

Yeah, given that most systems presumably fetch a kernel from Hydra and so use a random but same key…

Does this require kernel 5.4? I think this has broken linux-config for older kernels.
https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.4-Adds-Lockdown

Does this require kernel 5.4? I think this has broken linux-config for older kernels.
https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.4-Adds-Lockdown

It does indeed. I don't know why you'd want to use such an ancient kernel but we shouldn't break that. Fix above.

It does indeed. I don't know why you'd want to use such an ancient kernel but we shouldn't break that. Fix above.


place description so that your repo gets more traffic!

without it, there is less likelyhood of people clicking on your repo when it shows up here
https://github.com/trending/c%23?since=daily

Very good call! Just did.


feat(DatePicker): Include Timepicker

Feature Description
Hi Team,
Add Time picker component to the component list.
Current Issue is we need to reach out third party package for TimePicker with material design which is no guarantee when they will stop maintaining the project one I am using is stopped maintain and because of that one component its difficult for to update the my angular projects.
Use Case
Time picker is used to pick time along with date picker component which eliminates the third party dependency for that particular component

Duplicate of https://github.com/angular/components/issues/5648.


Suppress Telegram server http timeout warnings

Hi,
Telepot is really great in functionality and documentation. I am currently using the stable version 7.1 to buypass the bug of 8.1 of occasional connection error and shutdown (discussed here).
From time to time, the telegram server seems to be quite busy and the regular GetUpdate requests (according to your tutorial) result in http timeout warnings ("Read time out"). That does not shutdown the programm but produces a lot of warning lines  on the screen. Is it possible to suppress these timeouts completely or at least reduce them to one line, maybe as logging.warning("...")?

It prints out the stack trace because of this segment in the method message_loop():
def get_from_telegram_server():
    offset = None  # running offset
    while 1:
        try:
            result = self.getUpdates(offset=offset, timeout=timeout)

            if len(result) > 0:
                offset = max([handle(update) for update in result]) + 1
        except:
            traceback.print_exc()  ####### print stack trace on error
        finally:
            time.sleep(relax)

It would be nice to be able to override get_from_telegram_server() and change its behavior. Unfortunately, the way I structure it, it is impossible to override.
Another approach I can think of, is to wrap some error-handling code around self.getUpdates(), like this:
def suppress_http_timeout_warnings(fn):
    def w(*args, **kwargs):
        try:
            response = fn(*args, **kwargs)
            return response
        except WhateverErrorYouWantToSuppress:
            print('a single line ...')
            return []
        except:
            raise
    return w

bot.getUpdates = suppress_http_timeout_warnings(bot.getUpdates)

Haven't tested it, but should not be far off. This is very similar to extending the Bot class and overriding its getUpdates() method. I hope you see the strategy.
Good luck.


🐞 Release RStudio 4.4.0

Describe the bug.
A vulnerability has been found in R, which is resolved in v4.4.0. To use R 4.4.0 in our tooling we need to create and release a RStudio image using 4.4.0, which also users R 4.4.0
To Reproduce
N/A
Expected Behaviour
N/A
Additional context
Details of the vulnerability:

https://kb.cert.org/vuls/id/238194?utm_source=customerio&utm_medium=email&utm_campaign=240508_1-r-datalab_2-mix_3-all_4-na_5-na_6-na_7-ws_8-emal-ci_9-na_10-bau_11-email&dc_euid=619371
https://mojdt.slack.com/archives/C058YCKBBPB/p1714648309432889

To resolve

[x] Create 4.4.0 image for RStudio
[x] Create 4.4.0 image for RShiny apps
[x] Investigate the potential impact of the vulnerability to our users
[ ] Finalise and send comms to users with upgrade deadline
[x] Set date to retire old images

Some vulnerabilities can only be exploited under certain conditions, such as specific user interactions or configurations.

The probability of exploitation significantly increases if the exploit code is publicly available.

The likelihood of attacks increases if R installations are frequently exposed to the public internet or if they handle valuable or sensitive data, as this provides an incentive for attackers.

CVE Details: The Common Vulnerabilities and Exposures (CVE) system provides a standardised identifier for a given vulnerability, often accompanied by a severity score from the Common Vulnerability Scoring System (CVSS). This vulnerability has a Medium rating, so patching/deploying a new image is recommended.

Related ticket for Airflow images https://github.com/ministryofjustice/analytical-platform/issues/4318

Draft comms for RStudio https://docs.google.com/document/d/10GTJoljW-tJbpaJkmQL4DyqdxUTTCE-8Cz-yjrZE2Ts/edit?usp=sharing
Draft comms for Rshiny/app admins https://docs.google.com/document/d/1n22jVwS92kPsQ8blTy6wlszDZW3AB4RFFXJuu1aySEA/edit

Comms released via Slack https://mojdt.slack.com/archives/C4PF7QAJZ/p1715868084697859

RShiny announcement made via Pager Duty https://mojdt.slack.com/archives/C4PF7QAJZ/p1716385936913229

Email to app admins (listed in google sheet) sent


Add the types condition to the package.json#exports

Could not find a declaration file for module '@metaplex-foundation/umi-web3js-adapters'. './node_modules/.pnpm/@metaplex-foundation+umi-web3js-adapters@0.8.7_@metaplex-foundation+umi@0.8.7_@solana+web3.js<EMAIL_ADDRESS>implicitly has an 'any' type.   There are types at<EMAIL_ADDRESS>but this result could not be resolved when respecting package.json "exports". The '@metaplex-foundation/umi-web3js-adapters' library may need to update its package.json or typings.
Suggested solution:
Correctly link the declaration files, as seen in https://github.com/gxmari007/vite-plugin-eslint/pull/60. Updating the package.json will make this package compatible with the new moduleResolution option.
https://www.typescriptlang.org/docs/handbook/esm-node.html#packagejson-exports-imports-and-self-referencing

Hi there, sorry for the late reply. Is this what you had in mind? https://github.com/metaplex-foundation/umi/pull/86

I've published a new patch update with that change. Let me know if that fixes your issue. 🙏


Update UG

Include prefix summary
Add a up arrow for returning back to top
Break line for yaml window, hopefully it fits nicely

#212 closed partially for UG section


Update dasv5-dadsv5-series.md

Docs Build status updates of commit 9b67925:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/virtual-machines/dasv5-dadsv5-series.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Cake Game Done -- moved over to phaser 3 and created as React component

^title says it all!

@sjsamphex @devstah @Rdgh1583 -- please review and confirm if OK to merge!
FYI -- on Monday I will incorporate the cakegame into the full game