Redo documentation setup

Is your feature request related to a problem? Please describe.
~Currently, gitbooks syncs with a specific documentation branch. This does not guarentee that it syncs with releases though.~
Describe the solution you'd like
~If gitbooks.io doesn't allow for this, let's look at a statically hosted page using github pages or some other hosting service. Ideally we'd even be able to version it with the release version so you can see old docs.~

We should consider read the docs for hosting -- since it seems to be the default for python projects of scale.
Tasks:

[ ] Scope what's required to set read the docs up.
[ ] Determine how it would function and be rebuilt.
[ ] Get something set up -- determine styling. We should likely structure things like https://diataxis.fr/ suggests.
[ ] Plan migration from gitbooks.

Some examples of docs to emulate:

https://insitro.github.io/redun/
https://pandera.readthedocs.io/
They all seem to use https://github.com/pradyunsg/furo

Ah, a documentation branch! I was wondering where the docs at https://hamilton-docs.gitbook.io/docs/ came from.

Ideally we'd even be able to version it with the release version so you can see old docs.

In LightGBM, we've had a great experience for 4+ years with the readthedocs service. It allows for building different versions of your docs from source control based on git tags.
https://github.com/microsoft/LightGBM/issues/4236#issuecomment-829627328
https://lightgbm.readthedocs.io/en/latest/

@jameslamb would love to learn from your experience with lightgbm -- that's a very sleek look. Where's a good place to start?

@elijahbenizzy sure! I also just set up readthedocs ("RTD") on one of my little side projects, so I have recent experience doing this. Would be happy to get on a call with you and @skrawcz some time and pair if you'd like.
Here's a high-level overview:

go to https://readthedocs.org/accounts/login/ and log in with your GitHub
click "import a project", and import hamilton

that'll reserve hamilton.readthedocs.io, and default to building from the main branch on every commit to main (no more separate documentation branch)

set up a .readthedocs.yaml config file at the root of the repo, telling RTD how to build your docs

reference: https://docs.readthedocs.io/en/stable/config-file/v2.html
LightGBM example: https://github.com/microsoft/LightGBM/blob/master/.readthedocs.yaml
I think RTD only supports sphinx and mkdocs, but not 100% sure about that

once that's all set up, you can enable the "allow people to flip between different versions" thing from my screenshot  above by modifying RTD's settings such that it builds from specific tags (which it calls "versions")

here's an example from the setting page for lightgbm.readthedocs.io

Hope that helps!

@jameslamb thak you -- this is great! Sorry it just slipped my mind recently -- I think I'll be able to get this started, but I'll reach out once I have something! 🙏

Stefan or Elijah - Can you create an account at https://readthedocs.org/ then tell me your username? Then I can invite you to the Hamilton project there.
After that you'll be able to see the webhook and configure it on GitHub following these Instructions

Question: How important are the description sections to you? Is it important that they have unique formatting? Let's say they can't be uniquely formatted in rst, would you still want them there, just as regular text?
How it looks in gitbook...

How it looks in read the docs...
https://hamilton-temp.readthedocs.io/en/readthedocs/index.html

Don't think they're super important. Pretty sure they can either be dropped or included as the first line in the new version. Looking good!

Closing this in favor of #295 and #297.


ci: Add automatic pull request labeler

This PR includes several unrelated improvements to be able to do the first open source release:
Project metadata and packaging:

Move project metadata/config to pyproject.toml
Add extra metadata to pyproject.toml
Exclude supporting files from the distribution

Automation improvements:

Add automatic pull request labeler
Bump action versions
Run the workflow for all branches
Test using all supported Python versions

Releasing:

Publish distribution files to PyPI
Create GitHub Release automatically
Create contributing guide
Add releasing instruction to CONTRIBUTING.md

Tested in my fork:

https://github.com/leandro-lucarella-frequenz/frequenz-channels-python/releases
https://pypi.org/project/frequenz-channels/


Increase timout for deadline test

Changelog Description
DL picks up jobs quite slow, so bump up delay.

I believe it's the "Worker intervals" you're looking for?

Since publish jobs also need to release their "Dependent" state you might need to tweak the pending job scan interval too:

Does that help?

I tweaked DL similarly, test suite was a bit quicker, but I'll keep monitoring it for better average numbers.
I'll merge it nevertheless, it shouldn't hurt and it will make suite a more stable previous timeout wasn't hit all the time.


Fix issue with permanently hidden Campaign Features in Comp Browser

Closes #15555
Issue was the campaignFeature sources were getting permanently set to load = false.
I noticed there was no pack settings to toggle it, so I added it and it fixed the issue.

I remember hiding campaign features when kingmaker is disabled. Can you also hide the setting along with it?

I remember hiding campaign features when kingmaker is disabled. Can you also hide the setting along with it?

So I took a look: the template's context for settings is narrowed using a with block that excludes showCampaign, the visibility flag.
I would need to unravel the context narrowing - if that's okay, I can do it, but otherwise I'm not sure how to get the flag to the partial's context to correctly hide the pack setting.
EDIT: I guess the other option would be cloning the flag into the settings structure so it can be referenced even with the narrowing.

Decided to go the clone route.

You can always use @root. to get the root one, as well as ../ to go one step up, if that works better with less changes.


Update remaining bayes to beaconlabs

yep, it's only a 2 line change

hopefully this will fix the badge issues for wafflio and circleCI, and if not I'll keep looking into those


Cannot Set Value from Parent

I have a "Send Transaction" scene where we want the user to drag a slider (to the left) in order to confirm that they would like to send the transaction.
Unfortunately, from what I can tell it seems that it is not possible to set the state from the parent component. Once someone slides left to confirm, the slider should move back to the right side (like a 'reset').
Here is my parent component:
<ScrollView>
         <View style={[styles.pendingSymbolArea]}>
            {this.props.sendConfirmation.pending &&
              <ActivityIndicator style={[{ flex: 1, alignSelf: 'center' }, b()]} size={'small'}/>
            }
          </View>
          <ABSlider setValue={this.setValue} onSlidingComplete={this.signBroadcastAndSave} sliderDisabled={false} onValueChange={this.onSlidingValueChange} value={this.state.sliderValue} />
        </ScrollView>
    )
  }

  onSlidingValueChange = value => {
    this.props.dispatch(updateSliderValue(value))
  }

  setValue = (val) => {
    this.setState({sliderValue: val})
  }

  signBroadcastAndSave = () => {
    // this.setState({sliderValue: 10})
    this.props.dispatch(updateSliderValue(10))
    const { transaction } = this.props
    this.props.dispatch(updateSpendPending(true))
    this.props.signBroadcastAndSave(transaction)
  }

And here is my child component:
import { Container, Content } from 'native-base'
var Slider = require('react-native-slider')

class ABSlider extends Component {
  constructor (props) {
    super(props)
    console.log('inside ABSlider, this.props is: ', this.props)
    this.state = {
      sliderDisabled: this.props.sliderDisabled,
      onSlidingComplete: this.props.onSlidingComplete,
      value: this.props.value
    }
  }

  onSlidingComplete = (value) => {
    console.log('onSlidingComplete')
    if(value <= 1) {
      this.props.onSlidingComplete()
    } else {
      this.setState({ value: 10 })
    }
  };

  onValueChange = value => {
    console.log('inside abSlider->onValueChange, value is: ', value)
    this.setState({value})
  }

  setValue = value => {
    console.log('inside abSlider->setValue, value is: ', value)
    this.setState({value: value})
  }

  render() {
    console.log('rendering slider, this.props is: ', this.props, ' , and this.state is: ', this.state)
    return (
      <View style={styles.container}>
        <Slider
          disabled={this.props.sliderDisabled}
          onValueChange={this.onValueChange}
          onSlidingComplete={this.onSlidingComplete}
          minimumValue={0}
          maximumValue={10}
          style={styles.slider}
          trackStyle={styles.track}
          thumbStyle={styles.thumb}
          minimumTrackTintColor='transparent'
          maximumTrackTintColor='transparent'
          thumbTouchSize={{width: 160, height: 160}}
          value={this.state.value}
        />
        <Text style={styles.textOverlay}>Slide To Confirm</Text>
      </View>
    )
  }
}

export default connect(state => ({

}))(ABSlider)

Any help would be appreciated. And this is just for using state... it becomes even more of an issue when I try to hook the reset into a Redux action (ASYNC success or failure of transaction send). Thanks a bunch!

I am having a similar issue, with a different use case whereby i want to effect the value state from a different component so on and so forth.
In your case though i can think of the idea of going to node_modules/react-native-slider/src/Slider.js and editing the file to make the state.value change from 0 to 1 a certain amount of time after sliding it. Of course this would mean the slider isnt not going to be reset upon a confirmation but instead would be reset after the time allocated whether or not your use case was satisfied properly.

ive been doing my own research to find my own solution and i think i came across the answer to the solution. Its simply an event dispatcher made by facebook.
https://facebook.github.io/flux/
I have yet to implement into my own project i dont know whether you need to pass the same flux dispatcher instance down through each object or if you can just declare it in each component (i think you can just declare it in both components from my experience with c# dispatchers) but its definitely a solution to your problem (and mine!).

@nuttylord I am already using Redux, which is an implementation of Flux, but to no avail.


[order] move nested import entries closer to the main import entry

I want to keep next and next/* imports together
import Core from "next";
import Image from "next/image";
import Link from "next/link"
import Auth from "next-auth";

But the plugin forces me to break them with next-* imports
  import Core from "next";
+ import Auth from "next-auth";
  import Image from "next/image";
  import Link from "next/link"
- import Auth from "next-auth";

Same issue for the relative imports, the plugin wants me to change the order this way
  import e1 from "../businesses";
+ import e3 from "../businesses-users";
  import e2 from "../businesses/components";
- import e3 from "../businesses-users";

Hey, I was going through the codebase and I believe I have a basic understanding about required changes for the particular issue. Would like to give it a try if the issue is up for grabs.

Go for it! Anything with "help wanted" that doesn't already have a PR associated, please feel free to submit one :-)


Copy changes: change 'click' to 'hit' for keyboard input.

Here's a couple small UX changes to copy in fastlane setup.

Thanks :+1:


How to implement Microphone on FreeRTOS

Hi everyone,
I need your help for a project I'm trying to carry out, based on STM32CubeIDE and using FreeRTOS.
I have an STM32L475 board and I would like to create a translator that, starting from the voice recorded through the board's microphone, converts the voice to text (using some online API).
Unfortunately I couldn't find much online.
Have any of you ever managed to make the microphone on this board work and make it work for this purpose?
Thank you in advance

Hi @git-cerbero,
you are almost in the right spot, we do support such service with aws called Lex https://aws.amazon.com/lex/, that connects an iot device to the cloud.
Please check it out
I will be closing the issue, but if you have any further questions please reopen the issue
Regards,
Alfred

Hi @git-cerbero :
It is interesting what you want to do.
In case you have technical questions about using TCP and FreeRTOS drivers, there is the FreeRTOS forum.

Hi,
@alfred2g , thank you for pointing out Lex, I wasn't aware of it.
Do you know if there are some projects for the board that I have and from which I could take inspiration?
@htibosch , thank you and I just opened a thread on the freertos forum.
I found a github repository that uses my board. https://github.com/janjongboom/b-l475e-iot01a-audio-mbed
The problem is that I can't implement it in my project, where I use FreeRTOS. This is because I have some errors due to the fact that mbedos is used.
Do you have any indications to give me in order to integrate this project into a FreeRTOS project?
Have a nice day.


[SPARK-7322][SQL] Window functions in DataFrame

This closes #6104.

Merged build triggered.

Merged build started.

Test build #33314 has started for   PR 6343 at commit dc448fe.

The new APIs is much better now, except some small issues, but should be easy to solve.

Test build #33314 has finished for   PR 6343 at commit dc448fe.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/33314/
Test PASSed.

Merged build triggered.

Merged build started.

Test build #33329 has started for   PR 6343 at commit 026d587.

@davies what do you think the Python API should look like? What's the best way to have a static method on a class (i.e. the ones on Window)

Also Python doesn't have Long.MinValue. What would you recommend?

Test build #33329 has finished for   PR 6343 at commit 026d587.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/33329/
Test PASSed.

Merged build finished. Test PASSed.

Merging this and I will create a separate ticket for Python.


[HUDI-1445] Refactor AbstractHoodieLogRecordScanner to use Builder

What is the purpose of the pull request
Refactor the AbstractHoodieLogRecordScanner to use Builder.
Brief change log

Add builder for AbstractHoodieLogRecordScanner, HoodieMergedLogRecordScanner and HoodieUnMergedLogRecordScanner
Modify the tests

Verify this pull request
Existing tests
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #2313 (417883f) into master (56866a1) will decrease coverage by 43.20%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master    #2313       +/-   ##
=============================================
- Coverage     53.56%   10.35%   -43.21%
+ Complexity     2774       48     -2726
=============================================
  Files           348       51      -297
  Lines         16117     1786    -14331
  Branches       1641      213     -1428
=============================================
- Hits           8633      185     -8448
+ Misses         6785     1588     -5197
+ Partials        699       13      -686

Flag
Coverage Δ
Complexity Δ

hudicli
?
?

hudiclient
?
?

hudicommon
?
?

hudihadoopmr
?
?

hudispark
?
?

huditimelineservice
?
?

hudiutilities
10.35% <ø> (-59.71%)
0.00 <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Thanks so much for the reminder, i have fixed the conflicts.


bug: closed chrome browser, test passes while chrome is still open

 CHECK #78: The Google Chrome browser is currently closed.... PASSED!

Thanks @kiaraRobles.
I think that using this command instead should work better, will apply it ASAP:
ps ax | grep -c 'Google Chrome.app'

@kiaraRobles could you grab the develop branch and run it and see if it's detecting Chrome properly now?
https://github.com/kristovatlas/osx-config-check/tree/develop


partial controller not supported

The following code will throw
Microsoft.AspNet.Mvc.Infrastructure.AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:
Top.SaaS.Contracts.Api.Controllers.ContractController.GetApply
Top.SaaS.Contracts.Api.Controllers.ContractController.GetApply
at Microsoft.AspNet.Mvc.Infrastructure.DefaultActionSelector.SelectAsync(RouteContext context)
POSTMANT GET http://localhost:5000/api/contract/apply/1
[Route("api/[controller]")]
    public partial class ContractController : Controller {
        [HttpGet("apply/{id}")]
        public async Task<ContractApplyDetailModel> GetApply(int id) {
            var query = new ContractQuery(_unitOfWork, _apiUrls, _mapper);
            return await query.GetApplyAsync(id);
        }
}

[Route("api/[controller]")]
    public partial class ContractController : Controller {
        [HttpGet("{id}")]
        public async Task<ContractModel> Get(int id) {
            var query = new ContractQuery(_unitOfWork, _apiUrls, _mapper);
            return await query.GetAsync(id);
        }
}

Partial classes are just a C# compiler feature. It's actually a single class at runtime. You don't need the [Route] attribute declared twice on the same controller.

@davidfowl Makes sense. Thanks for the answer!


static website hero section

Description:

Created a hero section of the project section

Changes Made:

i added a picture on the right side of this section
worked on project.html and project.css

Related Issue:

Fixes #[40]

Screenshots (if applicable):

Attach screenshots, if applicable, to showcase the newly implemented feature or bug fix.

@masha-a-m @dohoudaniel i have sent my pull request hope you have received it thank you.

Hi @2023rahabu.
Your PR will be merged with your team's PR.
Thank you.


pythonw.exe needs  KIVY_NO_CONSOLELOG to be set on windows

I think it could be handled by kivy.
an easy fix could be to auto set KIVY_NO_CONSOLELOG if sys.executable is "pythonw.exe" on windows.

Changing the default value of KIVY_NO_CONSOLELOG based on how python is started will lead to API inconsistencies, so we should not do that.

Running a kivy app with pythonw.exe will currently just do nothing - it crashes because pythonw.exe does not provide sys.stdout / sys.stdin, which kivy needs for logging and can't handle if it's not there. I can't imagine that this is the desired behavior.
So currently, to support running on pythonw.exe, your apps needs to do something like below before importing kivy:
import os
if sys.executable.endswith("pythonw.exe"):
    os.environ["KIVY_NO_CONSOLELOG"] = "true"

And that's basically what OP proposed kivy could do itself.
Another way to do it is to have a look at sys.stdout when initializing kivy's logging. If that's set to None, just internally behave the same way as if KIVY_NO_CONSOLELOG was set in env, without actually setting it so. This way, redirections like done in IPython qtconsole would work nicely with it, where stdout exists while still running on pythonw.exe.


Using pre-release version of charming action

We need to use pre-release, since this charm is using metadata.yaml defined in charmcraft.yaml.

This promote workflow was successfully used here as you can see in charmhub.


Broken unit test: {'driver': [{'provider': [{'name': ['unallowed value None',

See https://travis-ci.com/ansible/molecule/jobs/196973204#L1232. Saw this on latest CI run of the Hetzner driver PR while rebasing. Remined me of https://github.com/ansible/molecule/pull/1714#pullrequestreview-230537350. Not sure of cause ...
Anyone got time for this?

=================================== FAILURES ===================================
_ test_driver_provider_name_not_nullable_when_vagrant_driver[_model_driver_provider_name_n...] _
_config = {'dependency': {'name': 'galaxy'}, 'driver': {'name': 'vagrant', 'provider': {'name': None}}, 'lint': {'name': 'yamllint'}, 'platforms': [{'image': 'centos:latest', 'name': 'instance'}], ...}
@pytest.mark.parametrize(
'_config',
['_model_driver_provider_name_not_nullable_when_vagrant_section_data'],
indirect=True)
def test_driver_provider_name_not_nullable_when_vagrant_driver(_config):
x = {
'driver': [{
'provider': [{
'name': ['unallowed value None', 'null value not allowed']
}]
}]
}

  assert x == schema_v2.validate(_config)

E       AssertionError: assert {'driver': [{...allowed']}]}]} == {'driver': [{'...allowed']}]}]}
E         Differing items:
E         {'driver': [{'provider': [{'name': ['unallowed value None', 'null value not allowed']}]}]} != {'driver': [{'provider': [{'name': ['null value not allowed']}]}]}
E         Full diff:
E         - {'driver': [{'provider': [{'name': ['unallowed value None',
E         ?                                               ----------- ^
E         + {'driver': [{'provider': [{'name': ['null value not allowed']}]}]}
E         ?                                      + +++++++++ +++        ^^^^^^
E         -                                     'null value not allowed']}]}]}

The behaviour of this test was already changed twice.
Here https://github.com/ansible/molecule/commit/cd2ea98325bd1a418371eb8a24b0e2a1b5952f05#diff-d3601755c38e1ab64638083914501041
And here https://github.com/ansible/molecule/commit/bd69c6d9af6bc9683fd3eda74f30d9060de878e7#diff-d3601755c38e1ab64638083914501041
There should be more descriptions of this particular unit test as it seems very unstable.
I don't know what is the correct behaviour. The 2 error messages or the one ?
As a personal opinion, there should be only 1 error message "null value not allowed".
Why ? Because 'None' is only a particular case of a more general issue. I don't think 'turlututu' is allowed either, nor 'coincoin'. That means, there should be another logic somewhere to handle all unallowed values and not 'None' specifically.

Thanks for investigating @micheelengronne! That is much appreciated.
Following your history tracking, I see that the test was changed when cerberus (schema validation that this tool uses right now ...) was bumped to 1.2. Now I see that Cerberus has made a 1.3 release (see https://pypi.org/project/Cerberus/#history) and now we have this failing test. So, I think this is about Cerberus and the way it is outputting schema validation error messages.
I do not have time to chase this up but whoever cares enough might try to validate my guesses here and perhaps follow up with a ticket on the Cerberus repository. For a more concrete "now" solution for Molecule, I think we should add an upper bound for the minor versions of Cerberus.

Done in 0277957d544c75ffd361a350ba2796694ec84640.


Fixes for #290 and #457

Simple fixes.

Coverage remained the same at 41.128% when pulling d35492cd14bae437c3df3ab63ec20cb1eb8b29b4 on CtrlSequence:bugfix/290+457 into a85f1dae4ff5b921f5e36ec55f04c5f6baf68e11 on newsboat:master.

Thanks, and congratulations on your first contribution to Newsboat! ;)


Explicit Substitutions in the context

I'm currently working on moving substitutions to the context, the main goal is compiler performance, but I also believe that it will lead to simpler code to maintain overtime.
Performance
It is not clear to me that this will improve performance in an abstract way, as it seems to be equivalent to just having it on the term tree.
But in practice performance is likely to get way better, allocating substitutions during propagation is definitely slow and will make the GC triggers way more often, even thought it will be mostly minor collections. This design will still allocate, but only when a substitution is introduced.
Lookup's, Stack and Heap
Bound variables use de-bruijin indices, so lookup will be always O(1) by using a mutable stack. Free variables use de-bruijin levels, so lookup will also be O(1) by using a heap, which is bounded by how nested is the deepest term generated.
My belief is that this will make it waaay more cache friendly for reasonable terms, while in theory it can be worse for really big terms with sparse access, most terms are reasonably small and even big terms such as the natural numbers will have more or less linear acccess.
This may be also way less efficient in memory in theory, in practice for the same reasons mentioned above, it will probably use less memory overall. In the future if the demand for really big terms increases, the typer may have 2 modes, where variables above certain threshold are indexed in different ways, maybe by propagating the substitutions.
Composition
As all the substitutions will be in the scope, substitution composition can be done in a way more natural way while hopefully preserving PSN and MC, due to explicit substitutions at a distance.
Lazy composition such as path compression can also be done if the context stores the order that each substitution was registered, as a substitution cannot escape it's scope.
Cleaning
Another performance feature of having it in the context is that by simply tagging which substitutions were used it, irrelevant substitutions can be ignored in the future. It is important to preserve all substitutions whenever a term has holes on it, to preserve all the important properties of explicit substitutions at a distance.
Higher Order Unification
Additionally this seems like it will make higher order unification way easier, as substitutions can be preserved in the context and then inserted back. This needs to be carefully done, but this design more or less should work.

Test example to be careful when putting the substitutions in the context.
\+3[close +3][open \+3]

A naive implementation will just loop forever.

Couple insights, yes ES is about modeling and composing environments, but this cannot be done in a naive mutable way due to substitutions in substitutions, circles like the one mentioned above can happen if the substitutions are not used aka not linear, this is true even if only de-bruijin indices / levels are being used.
BUT, most substitutions happen on the first level, so a simple optimization is to make the first level a mutable stack and whenever a substitution in a substitution happens it splits in a readonly mutable stack + immutable stack. The same can also be done for the heap, even thought it is slightly harder overall to be done properly.
Locally nameless makes it especially easy here due to having only a single operation on unbounded variables(open), and as entering a binder introduces an open, it pushes everything further away, similar to a cons in ES.

As of #172 substitutions are limited and only accumulated on holes, this should change in the future, additionally I should study about substitution composition.
In a practical side, explicit substitutions at a distance seems like the way to go, but it is low priority right now.

I learned a lot since those, mostly the Linear Substitution Calculus seems to provide all the foundational theory here and the naive implementation, likely works.
The LSC currently lacks a canonical de-bruijin version, so the implementation in Teika will be lacking, but the idea still works.
The core insight is that the non-determinism from LSC makes sense, as it means LSC actually describe all the systems no matter the specific order that we choose to implement, making it waaay more robust.
https://mat.unb.br/~ayala/TCgroup/beniamino2012/rewriting.pdf
https://hal.science/hal-01967532/document
Also related to elaboration, substitutions do not "describe the context", THEY ARE THE CONTEXT. Meaning that the following two rules gives some insight in the problem.
-------------------------------------------------
Γ |- M[x := N] : A[x := N] === Γ, x := N |- M : A

Γ |- M ⇒ L<(x : A) -> B>  Γ |- N ⇐ L<A>
--------------------------------------- // apply at a distance
Γ |- M N ⇒ L<B[x := N]>


Updated accentuation, words and grammar errors.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

@viavn Thank you for  creating this PR.  However, since it was created, the underlying document has changed.  Can you please review and resolve the current merge conflicts?  It could be the changes to the underlying document are so significant that your changes are no longer relevant.  If the latter is the case, it might be easier to just close this PR and create a new PR with any changes you still feel are important to make.
If you need any assistance or have questions about resolving the merge conflicts, please reply back or contact someone in the Contributors Room on Gitter.
Thank you.

Congrats @viavn on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 📝


"User friendly" enums

Basically a follow up of #416:
We've briefly discussed this before: Enums are a great way to enumerate options, but a lot of our users aren't familiar with them. The issue with enums is also that you need to import the relevant enums from the right namespace. A pragmatic solution is to dynamically force inputs to enums, thereby checking them as well.
This gives decent errors:
from enum import Enum

class Color(Enum):
    RED = 0
    GREEN = 1
    BLUE = 2

color = Color("YELLOW")

ValueError: 'YELLOW' is not a valid Color

Ideally, it wouldn't tell you that it's wrong, but what the right entries are. This is especially helpful with typos.
from enum import Enum
from typing import Union, Type, TypeVar

E = TypeVar('E', bound='FlexibleEnum')

def _show_options(options: Enum) -> str:
    return "\n * ".join(map(str, options.__members__))

class FlexibleEnum(Enum):
    @classmethod
    def from_value(cls: Type[E], value: Union[E, str]) -> E:
        if isinstance(value, cls):
            return value
        elif isinstance(value, str):
            try:
                return cls.__members__[value]
            except KeyError:
                pass

        raise ValueError(
            # Use __repr__() so strings are shown with quotes.
            f"{value.__repr__()} is not a valid {cls.__name__}. "
            f"Valid options are:\n * {_show_options(cls)}"
        )

class Color(FlexibleEnum):
    RED = 1
    GREEN = 2
    BLUE = 3

Color.from_value("YELLOW")

Color.from_value("YELLOW")
ValueError: 'YELLOW' is not a valid Color. Valid options are:
 * RED
 * GREEN
 * BLUE

Another advantage is that regular enums accept integer values.
E.g. one of the current enums:
class ALLOCATION_OPTION(Enum):
    stage_to_riv_bot = 0
    first_active_to_elevation = -1
    stage_to_riv_bot_drn_above = 1
    at_elevation = 2
    at_first_active = 9  # Not an iMOD 5.6 option

In general, I don't think we want user facing functions to support something like .allocate(option=0). A default Enum will support ALLOCATION_OPTION(0).
But with the FlexibleEnum.from_value(), it won't (which is good):
Color.from_value(1)

ValueError: 1 is not a valid Color. Valid options are:
 * RED
 * GREEN
 * BLUE

So my suggestion is to replace the Enums with these FlexibleEnums (or a better name), and preferable the same for all strings literals that we support. Then inside of the function:
def f(arg, option: str | ThisOptionEnum):
     option = ThisOptionEnum.from_value(option)
     ...

This ensures the option is validated and that a clear error message listing the available valid options is printed.

I like the idea.
In the first code snippet you define the Color class as class Color(Enum).  You assign a color as:
color = Color("YELLOW")
which throws an exception. However a valid value also throws an exception:
color = Color("RED")
What i gather from the python documentation calling the class like that is called the function-call syntax for creating an enum. Its an alternative way to the class defintition you use. It isn't used to create a specific enum member
https://docs.python.org/3/library/enum.html

Preferably the new Enum should be a drop in replacement of the original enum.
It would be nice that when someone uses it like Color.Yellow it would give your error message.

I do like your from_value method as well. Its similar to C# Enum.Parse method to create an Enum from a string.
I think i would it a bit differently in the code:
 option = option if isinstance(option, Color) else Color.Parse(option)

You're right: I got my first example mixed up, what I should/could have written is:
class Color(Enum):
    RED = "RED"
    GREEN = "GREEN"
    BLUE = "BLUE"

This does accept Color("RED"), but the duplication feels rather silly here.
This works:
class Color(Enum):
    RED = 0
    GREEN = 1
    BLUE = 2

Color(0)  # -> Color.RED

But is kind of anti-feature for our usage.

It would be nice that when someone uses it like Color.Yellow it would give your error message.

This is doable, although not that easy. It needs a metaclass.
Adding a parse method is a good idea.
Here's basic implementation:
from enum import Enum, EnumMeta
from typing import Any, Type, TypeVar, Union

E = TypeVar("E", bound="FlexibleEnum")

def _show_options(options: Type[E]) -> str:
    return "\n * ".join(map(str, options.__members__))

class AttributeErrorMeta(EnumMeta):
    def __getattr__(cls, name: str) -> Any:
        try:
            return cls.__members__[name]
        except KeyError:
            raise AttributeError(
                f"{name} is not a valid {cls.__name__}. "
                f"Valid options are:\n * {_show_options(cls)}"
            )

class FlexibleEnum(Enum, metaclass=AttributeErrorMeta):
    @classmethod
    def parse(cls: Type[E], value: str) -> E:
        try:
            return cls.__members__[value]
        except KeyError:
            raise ValueError(
                # Use __repr__() so strings are shown with quotes.
                f"{value.__repr__()} is not a valid {cls.__name__}. "
                f"Valid options are:\n * {_show_options(cls)}"
            )

Nice!
I just tested this:
# Existing value
Color.RED
<Color.RED: 0>

# Non-existing value
Color.YELLOW
Traceback (most recent call last):
KeyError: 'YELLOW'

During handling of the above exception, another exception occurred:

AttributeError: YELLOW is not a valid Color. Valid options are:
 * RED
 * GREEN
 * BLUE

Which gives a clear error message.
I think it is fine that a metaclass is needed to get this output.
Its a small addition to a class that wont change much.
It is also something that can be well tested using unit tests

FYI, I've included an implementation in pandamesh here:
https://github.com/Deltares/pandamesh/blob/main/pandamesh/enum_base.py
I've maintained the from_value method there because it saves on a lot of duplication in the places where it's used.

I was also struggling with rendering the enums docs in an appropriate manner, I needed a custom template in the end:
https://github.com/Deltares/pandamesh/blob/main/docs/_templates/enums.rst
This is included in the index:
.. autosummary::
   :toctree: api/
   :template: enums.rst

    DelaunayAlgorithm


Stopping at red light OP get confused because of a motorbike

Describe the bug
OP wasnt able to detect a motorcyclist/motorbike correctly at set of traffic lights
How to reproduce or log data
Looking at segment 18e8ac91b805db11|2021-05-14--19-09-11--50

OP is slowing the car down
For second the radar detecting another object and stop tracking the bike
Car on engaged doesnt feel like it keeping a safe braking distance
For some reason vision/radar has conflict because of a pole on the siding of the road behind the traffic light

Expected behavior
OP should be able to see the difference between undriveable object and exposed human riding a motorbike/motorcycle without human policy override at last second.
Device/Version information (please complete the following information):

Device: [comma two]
Dongle ID: [18e8ac91b805db11]
Route: [18e8ac91b805db11|2021-05-14--19-09-11--49]
Timestamp: [Fri, 14 May, 2021 @ 19:58:45]
Version: [release2]
Car make/model: Toyota corolla hybrid accent sport 2019 - australia delivered

Additional context
This google maps in the daylight. In Australia these signs are called Narrow marker signs.
https://www.google.com.au/maps/@-27.3457235,153.0125702,3a,75y,122.51h,81.47t/data=!3m6!1e1!3m4!1sWBf7PQd3BRXuOZ_-huwAWg!2e0!7i16384!8i8192

[ ] @pd0wm do you think this bug or something that could be resolved end to end vision planning is matured? And radar becomes optional?

If not a bug then close 😃

Don't think openpilot got confused about the pole. The model placed the motorcycle much farther away, and fused it with the radar points from the cars in the intersection. It detect the motorcycle correctly around the time where you disengaged.
@HaraldSchafer any thoughts?

What seen in the gui/hud version. It was locking on something on the left like the pole

You're probably referring to this. It picked up one of the cars crossing the intersection behind the pole.

For a vehicle to be correctly detected both these things need to be true:

The segnet needs to correctly identify the vehicle for all cases that look similar to this
The driving model needs to be able to see the vehicle is there if the ground truth is there

Both the segnet and driving model struggle in scenes like this. This will gradually improve as the models gradually improve, I don't think there's anything else we can do about it. We've begun working on revamping longitudinal policy, but tbh I think this case will be hard for a while.


min android sdk support

ionic is android 4.0
what about F7?

Full support is 4.4+ or 4.0 + Crosswalk for cordova apps


Comment panel not updating with onDidChangeCommentThreads event

Issue Type: Bug

Register a WorkspaceCommentProvider and DocumentCommentProvider
In DocumentCommentProvider.createNewCommentThread fire WorkspaceCommentProvider.onDidChangeCommentThreads event with the newly added thread in added property in the event.

Expected:
The comment panel is updated. This works in stable VSCode 1.30.0.
Actual:
The comment panel is NOT updated. It looks like an exception is thrown by the event handler, though I couldn't get the details of it from attached VSCode debugger.
VS Code version: Code - Insiders 1.31.0-insider (edf1090b8546ad0d17f30bf6f8075613e37e1b37, 2018-12-17T10:06:30.031Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (8 x 3408)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
31.92GB (4.48GB free)

Process Argv
--folder-uri file:///c%3A/src/cascade1/vscode/extension

Screen Reader
no

VM
0%

cc @RMacfarlane

cc @lostintangent
Here is the data in the event:
{added: [vscodeThread], changed: [], removed: []}

vscodeThread = {
	threadId: "1",
	resource: t,
	range: e,
	comments: Array(1)
}
comments: Array(1)
0: {
	commentId: "1/0", body: e, userName: "Ilya Biryukov", …}
	body: e {value: "Comment text"}
	canDelete: true
	canEdit: true
	commentId: "1/0"
	userName: "Ilya Biryukov"}
range: e {_start: e, _end: e}
resource: t {scheme: "file", authority: "", path: "/c:/tmp/node/1/app.js" }
threadId: "1"
}

Ping?

@RMacfarlane Do you think you can fix this bug in April?

@IlyaBiryukov Yeah, I'll look at this this week.
But, as an fyi, we are introducing a new version of the proposed commenting API and plan to deprecate the old proposal in the coming months. More info here: https://github.com/Microsoft/vscode/issues/68020

@RMacfarlane Is the new API ready to be used? Maybe the issue is already fixed with the new API.

Yes, it's available in the proposed.d.ts in the current VS Code Insiders. The GitHub Pull Request extension has just adopted it, there's also sample extension for it here: https://github.com/Microsoft/vscode-extension-samples/tree/master/comment-sample

Comment panel is updating just fine with the new API. I'm going to close this issue then.


Insights - Authentication methods registration details inaccurate

We've had MFA enabled for a number of our users for a couple months now.  I've used the "Insights - Authentication methods registration details" report to identify users who have not yet registered for MFA.
There are users in this list that are marked as not registered for MFA, yet it is clear from sign-in logs that they are enrolled for MFA, and being challenged, and successfully passing the challenge.  For example, against their sign-ins, there are statuses such as "MFA requirement satisfied by claim in the token", "MFA completed in Azure AD", "Phone call (Alternate authentication phone) +XX XXXXXXXX98","Mobile app notification +XX XXXXXXXX56" etc.
The report says they're not registered, and no authentication methods are on record.  But sign-in logs say otherwise.  There's an inconsistency here.

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

ID: 3dbb0624-9d6c-aedf-d999-f7d3ca99c183
Version Independent ID: bb4234de-65b9-b60c-d1f7-bef9a865d940
Content: Authentication methods usage & insights reporting (preview) - Azure Active Directory
Content Source: articles/active-directory/authentication/howto-authentication-methods-usage-insights.md
Service: active-directory
Sub-service: authentication
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@maxxxie74 Thank you for your feedback . We will investigate and update the thread further.

@maxxxie74 The feature is currently in preview and I believe your details require further detailed investigation. In some other cases we have found inconsistencies however this is a unique one where a sign-in log is generated for MFA despite the user not registered for MFA . Please send us an email at azcommunity[at]microsoft[dot]com and we will help you with alternative support options to troubleshot more no this one.
Thank you .


Correct 'three' to 'four' in README.md

Addresses https://github.com/jupyterlab/extension-template/issues/14

CI failure was fixed in https://github.com/jupyterlab/extension-template/pull/13


Pr/v1.1 backport 18 07 30

#4945

Required #4768 to cleanly apply

#4998

Did not cleanly apply - @nebril please review

#5019
#5021
#5024
#5029

This change is

test-me-please

CI failure:
12:31:42 pkg/client/config.go:20:2: cannot find package "github.com/cilium/cilium/pkg/api" in any of:
12:31:42 	/go/src/github.com/cilium/cilium/vendor/github.com/cilium/cilium/pkg/api (vendor tree)
12:31:42 	/usr/local/go/src/github.com/cilium/cilium/pkg/api (from $GOROOT)
12:31:42 	/go/src/github.com/cilium/cilium/pkg/api (from $GOPATH)

test-me-please


esphome: patch pillow version

Description of changes
fixes #272334
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

2 packages built:

esphome
esphome.dist

@mweinelt so do we want backporting or this fix?

I'm okay with backporting, as mentioned elsewhere.
Aside: Fetching a mutable reference as a patch is not great.

for backporting: do we also want to backport 6000c3c94cc92c1570f52fe61406a295fc11ef39 as well ?
Agreed, that fetching a commit would be better. Thanks for hinting.

for backporting: do we also want to backport 6000c3c as well ?

Yes.

today I learned: cherry-pick -x. Thanks


Server-side rendering

Should be nice to see how the server-side rendering is handled

I also want this. But presumably it would mainly require server support, so maybe the best place to discuss this is at: https://github.com/gothinkster/realworld/issues/423


[zdf] expand valid-url pattern for channels

The webpage also creates URLs which include additional text that defines
the sorting order on the page like "aktuellste" (most current) and
"meist-gesehen" (most seen), e.g.:
http://www.zdf.de/ZDFmediathek/kanaluebersicht/aktuellste/332
http://www.zdf.de/ZDFmediathek/kanaluebersicht/meist-gesehen/332

Cherry-picked in e41604227ce14ded0b87385a17490bfa65d35fde, thanks.


SetOp (e.g. union|intersect|except [all])

[x] https://github.com/risingwavelabs/risingwave/issues/6392
[ ] Support INTERSECT
[ ] Support EXCEPT

Just curious, by SetOp, are you referring to this?

I'm working on the dbt adapter for RisingWave #7577. The EXCEPT operator, generated by dbt for testing the equality of two tables, is a requirement to pass the adapter tests.

EXCEPT is non-trivial but I guess the complexity is acceptable.
cc. @TennyZhuang @chenzl25

EXCEPT is non-trivial but I guess the complexity is acceptable.
cc. @TennyZhuang @chenzl25

I think except can be implemented by a left anti join, while intersect can be implemented by a left semi join.

The all version of intersect and except is more complicated. We need to support a table function replicate_row and then use a rewrite rule to transform them to existing operators.
https://github.com/apache/flink/blob/master/flink-table/flink-table-planner/src/ma[…]link/table/planner/plan/rules/logical/RewriteMinusAllRule.scala
https://github.com/apache/flink/blob/master/flink-table/flink-table-planner/src/ma[…]/table/planner/plan/rules/logical/RewriteIntersectAllRule.scala


Updated TALKS in README.md

Added March 22 & April 19 talks to "Upcoming" Talks
Signed-off-by: Stacey Potter<EMAIL_ADDRESS>

duplicate of #71


Windows distros missing from quickemu GUI

After selection the create new machine option on the GUI, it brings up a list of distros to download and install(as it should).
However, within this list, there are now distros entirely missing from the download list that were once there. Namely, Windows. There may be others, but this was the only one I'm aware of.

**NOTE: The quickget command line still seems to work fine for installing it, so it appears to just be a quickGUI thing it seems.

LSB Version:	core-11.1.0ubuntu2-noarch:printing-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.6 LTS
Release:	20.04
Codename:	focal

Can confirm this issue is present in 1.2.8-1 under Arch Linux. (Mac OS X is also missing.)

Can confirm this is still a problem, running Kubuntu 22.04.3 on my main device.

This is a bug in quickget, not in quickgui. It should be moved back to the quickemu repository. Specifically, it's caused by lines 193-196, in which the quickget list_csv function prints out an entry for windows for each value in the language array. Windows language support was removed in quickemu commit 008478d, which 'fixed' downloading windows ISOs by using a third-party source (which has since been changed). The language array is left blank though, so quickget list_csv does not print out any entries for windows.
My pull request on the quickemu repository (https://github.com/quickemu-project/quickemu/pull/886) re-implements language support for windows. This fixes the issue, as is evidenced by my testing in a Linux Mint VM.

@flexiondotorg Thank you for the update!


Solution

You should get the next result:

I deployed it based on yours source code, the only thing I've changed is allowed hosts.


Building OpenBLAS on RISC-V

I'm trying to compile OpenBLAS on a sifive u74-mc architecture, but I'm seeing that it is still not supported architecture. What can I try to do in order to compile it?

Please build with TARGET=RISCV64_GENERIC


fix: Revision records tree not loading

Pull Request Checklist

Code Style

[ ] Code is following code style guidelines.
[ ] Followed in new code.
[ ] Corrected in existing code whenever possible.
[ ] Spelling and English grammar errors have been eliminated.
[ ] Attribute and variable names make sense.
[ ] Stub files created or updated.
[ ] New code is readable.
[ ] Execute 'make maintain' before committing changes and fix any issues.
[ ] Code is not overly complicated; refactor if it is.
[ ] Debugging, including print(), statements have been removed.

Tests

[ ] At least one test for all newly created functions/methods?
[ ] Tests capture key use cases.
[ ] Enough edge cases covered for comfort.
[ ] Code coverage has not decreased.

Documentation

[ ] Update api documentation to reflect the changes made.
[ ] Update the user documentation to reflect the changes made.

Chores

[ ] Problem areas outside the scope of this PR have an # ISSUE: comment
decorating the code block.  These # ISSUE: comments are automatically
converted to issues on successful merge.  Alternatively, you can manually
raise an issue for each problem area you identify.
[ ] TODO and FIXME statements have been have been converted to # ISSUE
: comments or removed in their entirety.
[ ] # ISSUE: comments have been removed for those issues this PR
addresses.
[ ] Update the features section of README.md for newly added work stream modules.

All PR checks pass.

[ ] Execute 'make format', 'make stylecheck', 'make typecheck', and 'make
lint' before committing changes and fix any issues.
[x] Failing static checks are only applicable to code outside the scope of
this PR.

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
Closing #551

Closes #551


Tutorial / example for stream/byte array for object detection

I have really difficulties to convert this great tutorial:
https://docs.microsoft.com/fi-fi/dotnet/machine-learning/tutorials/object-detection-onnx
To consume streams or byte arrays like it uses files from file system now.
Think it is possible via InMemoryImageData?
It is not easy task to convert because "scoring", model.Transform, etc needs filesystem.
So it would be great to step by step tutorial for streams/byte arrays.
Because think this is very common use case and I even think it is possible.

This issue was moved to dotnet/docs#18991


Windows kubelet defaults are mistakenly applied to Linux agents

Is this a request for help?: No
Is this an ISSUE or FEATURE REQUEST?: Issue
What version of acs-engine?: v0.18.3
Orchestrator and version (e.g. Kubernetes, DC/OS, Swarm)
Kubernetes v1.10.3
What happened:
Windows default kubelet parameters are currently copied from Linux defaults. I need to correct some things like --cloud-config="/etc/kubernetes/azure.json" to --cloud-config="c:\\k\\azure.json"
This section appears to be creating a map with Windows-specific values.
https://github.com/Azure/acs-engine/blob/132003a5b9dbb25fe2d947325c788c03652698f5/pkg/acsengine/defaults-kubelet.go#L29
staticWindowsKubeletConfig := make(map[string]string)
	for key, val := range staticLinuxKubeletConfig {
		staticWindowsKubeletConfig[key] = val
	}

But then later if any Windows nodes are configured https://github.com/Azure/acs-engine/blob/132003a5b9dbb25fe2d947325c788c03652698f5/pkg/acsengine/defaults-kubelet.go#L74
They're eventually applied to the master profile. This will break the kubelet on Linux.
https://github.com/Azure/acs-engine/blob/132003a5b9dbb25fe2d947325c788c03652698f5/pkg/acsengine/defaults-kubelet.go#L110
This leads to a failed deployment:
Deployment failed. Correlation ID: 33e33bb8-0084-4067-81cf-7c27e4c93ecc. {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "VMExtensionProvisioningError",
        "message": "VM has reported a failure when processing extension 'cse-master-0'. Error message: \"Enable failed: failed to execute command: command te
rminated with exit status=30\n[stdout]\n\n[stderr]\n\"."
      }
    ]
  }
}

I checked the k8s master, and here's /etc/default/kubelet
KUBELET_CONFIG=--address=<IP_ADDRESS> --allow-privileged=true --anonymous-auth=false --authorization-mode=Webhook --azu
re-container-registry-config=c:\k\azure.json --cadvisor-port=0 --cgroups-per-qos=false --client-ca-file=/etc/kuber
netes/certs/ca.crt --cloud-config=c:\k\azure.json --cloud-provider=azure --cluster-dns=<IP_ADDRESS> --cluster-domain=
cluster.local --enforce-node-allocatable="" --event-qps=0 --eviction-hard=memory.available<100Mi,nodefs.available<
10%,nodefs.inodesFree<5% --feature-gates= --image-gc-high-threshold=85 --image-gc-low-threshold=80 --image-pull-pr
ogress-deadline=30m --keep-terminated-pod-volumes=false --kubeconfig=c:\k\config --max-pods=30 --network-plugin=cn
i --node-status-update-frequency=10s --non-masquerade-cidr=<IP_ADDRESS>/12 --pod-infra-container-image=kubletwin/pau
se --pod-manifest-path=/etc/kubernetes/manifests --pod-max-pids=100

Where you can see the Windows path --cloud-config=c:\k\azure.json
Anything else we need to know:
This is one step towards fixing #2627

I guess broadly speaking - I'd like to see separate kubelet defaults for each VM deployment:

Windows agent
Linux agent
Linux master

Finally resuming work on this one :)


Chain Sync Client: instantiate with header and BlockSize

The Block Fetch logic wants to know the size of a block when we only have a header. If we instantiate the Chain Sync Client with the header and the BlockSize, we will have enough information.
Note that adding the block size to the header is not enough, as we still have to deal with blocks from the existing (real-world) chain.

Ideally present for system-level performance testing. Needed for mainnet, as it could be a security risk.

Fixing this means having to change the ChainSync protocol instantiation, breaking compatibility with already deployed nodes. So this should be done sooner rather than later (if it is not yet too late?).
If we don't fix it, the accounting for in flight bytes done by the BlockFetch client will be wrong, as we currently hardcode the size of each block to 2000.
@dcoutts Do you agree that we should do this ASAP? And is it still ok to make such breaking changes?

Duncan's response:

I think we have to do one [compatibility break] for other reasons in the network code anyway. Lets review with the network team and try to do them at the same time, or use the versioning scheme.

Hmm, this is more invasive than I thought, as the ChainSyncServer will need to be able to return a header and the block size. The ImmutableDB will need to be modified to support this change. Even the implementation of the Reader has to be modified (other than simply forwarding the block size from the ImmutableDB): when returning the headers from the in-memory chain fragment (the last k blocks), we'll either need to keep their block sizes in memory too or retrieve them from the VolatileDB.


[Swift 4] Update Bit Set

Checklist

[x] I've looked at the contribution guidelines.
[x] This pull request is complete and ready for review.

Description
Update Bit Set to Swift 4
#507

:+1:


[docs] Add short note about dynamic subclassing and KVO

This PR adds short documentation on dynamic subclassing and KVO. This documentation is based on an article here: https://www.mikeash.com/pyblog/friday-qa-2009-01-23.html

Resolves SR-14199.

@varungandhi-apple Could you please take a look at this PR once you have time? :)

Wow, thanks for the PR. I was not expecting someone to come in and take that task. Will leave some comments inline.

@swift-ci smoke test and merge

@swift-ci smoke test and merge


[BUG] Copy to Clipboard doesn't work

Environment
Self-Hosted (Docker)
Version
2.0.9
Describe the problem
Export config to clipboard doesn't work (button "Copy to Clipboard"). Message in the console:
vue.runtime.esm.js:1897 TypeError: Cannot read properties of undefined (reading 'writeText')
    at r.copyConfigToClipboard (ExportConfigMenu.vue:83:27)
    at click (Button.vue?df23:1:384)
    at ne (vue.runtime.esm.js:1863:26)
    at HTMLButtonElement.i (vue.runtime.esm.js:2188:14)
    at HTMLButtonElement.Qs.o._wrapper (vue.runtime.esm.js:6961:25)

Additional info
No response
Please tick the boxes

[X] You are using a supported version of Dashy (check the first two digits of the version number)
[X] You've checked that this issue hasn't already been raised
[X] You've checked the docs and troubleshooting guide
[X] You agree to the code of conduct

Hiya @wtld 👋 Sorry about that
Are you running the app over HTTPS? Copying to the clipboard requires the app to be running in a secure origin / aka have valid HTTPS cert. This is explained in a bit more detail here.
As a workaround, you could either:

Highlight the text and copy / Ctrl + C
Or setup SSL - here's a guide on doing so

From my end, I will add an error boundary in, to check if clipboard access is available in the users context, and display a more meaningful message if not :)

Thank you for the quick reply. I don't use ssl so that's the reason.


Dadac integration alt

Proposed changes
Optimization of ADP procedure and explicit parallelization of many tasks through openmp.
Types of changes
In the last year (or so)  I have been working on my implementation of ADP due to the fact the original one, provided in dadapy was not able to scale well for my use case. Together  with the help of @alexdepremia and @lucatornatore I developed a very small library in C (dadaC) which implemented the ADP procedure with the following optimizations:

In the first heuristic, in the second part where candidate centers are asked to not be part of the neighborhood of a point of higher density the loop on the centers has been removed allowing the procedure to scale better at a cost of a O(n) in memory to keep track of the changes.
In the third heuristic merges between the clusters can be computed ahead of time then sorted in increasing density ordered and processed in this way. The motivation for this optimization is that at the beginning of the procedure it is possible to compute all the borders that will lead to a merging, and later then in the process the number of "merging candidates" can only decrease. The only thing to carefully take care of is the labeling of the clusters and the topology of the borders, and to check for each one of them if later on they still satisfy the merging condition. This optimization is particularly useful since there is no need to explore at each iteration the entire topology of the borders

The implementation has been tested against the one in dadapy and preserves a 1 to 1 match of the results in terms of cluster labels, border indices and densities. A detailed discussion, tests, and benchmarks can be found in the repository of my implementation https://github.com/lykos98/dadaC .
Integration in the library requires minimal modifications of the code to allow the implementation in C to interface with yours, actually it requires to add dadaC as dependency, since dadaC requires to build a small .so file that is then used by an interface in python built with ctypes. I kindly ask you if this can be in line with your development,  and I am open to modify my implementation to comply with your conventions if needed.
Thank you for your attention,
let me know your opinion.
F

Wow!!
Thank you @lykos98, I had a look at your dadaC repo, at the benchmarks, and at you your PR. It all seems excellent work to me. I was considering asking you to contribute the entire dadaC codebase in dadapy, but probably is better to keep them separate as you originally designed.
I would ask you to make the tests pass, then I will have a closer look as soon as I have time before merging but it should not take much

Goodafternoon,
I fixed the issue on the tests and run them in my fork, everything seems fine.  The issue was linked to a leftover, I overlooked in the diff.
I think that ideally the codebase of dadac should be included but when I tried to perform that kind of integration it was not easy to deal with the inclusion of the .so file needed for dadac to run. In the next future moreover, I think I will also ship dadac as a proper package with precompiled binaries.
Thank you!
F

Codecov Report
Attention: 8 lines in your changes are missing coverage. Please review.

Comparison is base (bfbdb86) 80.36% compared to head (8ef4e4f) 79.13%.
Report is 50 commits behind head on main.

Files
Patch %
Lines

dadapy/clustering.py
85.18%
8 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #107      +/-   ##
==========================================
- Coverage   80.36%   79.13%   -1.24%
==========================================
  Files          15       15
  Lines        2491     2535      +44
==========================================
+ Hits         2002     2006       +4
- Misses        489      529      +40

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Allow configuration of data repository location, BIPM version, etc.

This addresses #57 and #58. I have added a "config" submodule, which replaces defaults.py for configuring things like the BIPM and JPL ephemeris versions used in checks. The intended use case is for data repositories like the NG20 repository to include a file called pint_pal_project.yaml in the root of the repository that specifies these settings, and then notebooks, etc., will call pint_pal.set_data_root(), passing in the path to the root of the data repository. This will cause PINT Pal to read in the pint_pal_project.yaml file, and also inform it of the path to the data repository so that it can be used in resolving tim-directory, par-directory, and similar paths specified in the per-pulsar YAML files.

OK, tests are passing locally now (you can't see them here because PR #62 hasn't been merged yet). The configuration variables live in pint_pal.config, and the default values are loaded from defaults.yaml. When pint_pal.set_data_root() is called, it will look for a file in the provided directory called pint_pal_project.yaml and load the corresponding settings from there (some can be omitted, and it will fall back on the default values).
A couple of somewhat weird things about this solution are:

Because of the way global variables behave with respect to imports, you can't import the config variables directly (such as from pint_pal.config import LATEST_BIPM and then expect them to change when you call pint_pal.set_data_root(). Instead you should do import pint_pal.config and use pint_pal.config.LATEST_BIPM (from pint_pal import config and config.LATEST_BIPM) also works. I have changed existing places where they are used to do it this way.
The tim_directory and par_directory attributes of a TimingConfiguration are now somewhat "magic": If you assign a relative path to them and then read them, you'll find that they contain the corresponding absolute path. I think this is mostly a good thing.

Code looks good but would be helpful to test out more use cases (running from different directories, etc.). Ross said he'll wait til PR #63 is merged in.

Just tried running a notebook from outside the main directory with this -- it worked just fine! I've added a couple more things just for convenience. There is now a function reset_data_root() that allows you to undo the effect of set_data_root(), which I realized wasn't straightforward. And I've tweaked set_data_root() and the TimingConfiguration constructor to allow you to use ~ as an abbreviation for your home directory in paths.

There's now a related MR on the NG20 repository to add the pint_pal_project.yaml file.


Code updates

Added copyright headers, added unit tests, added get*Identity implementation to appIDAuthorizationManager

Coverage increased (+5.3%) to 33.78% when pulling 5ecdc694942c1ca301c97f86df5b5825a716dfdf on feature/unit-tests-13-03 into 09ae8d05c0c9bfd56d6dc03cfa9def2ec2966693 on development.

Coverage increased (+5.3%) to 33.78% when pulling 827e59facbdfa0ad3243c079d68ed93c01742906 on feature/unit-tests-13-03 into 09ae8d05c0c9bfd56d6dc03cfa9def2ec2966693 on development.

Coverage increased (+5.3%) to 33.731% when pulling e28394961127979f5eb7b5e92255af250c316588 on feature/unit-tests-13-03 into 09ae8d05c0c9bfd56d6dc03cfa9def2ec2966693 on development.


Preloader

I would like to work on this issue !!

@kumarishalini6 this issue is already open. See issue number https://github.com/QAZIMAAZARSHAD/Movie-Streaming-Website/issues/7.
Before opening any issue make sure no other similar issue is already open.


viking: 1.6.2 -> 1.7

Motivation for this change
Viking 1.7 - released 2019-01-21
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-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)
[x] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build viking

Thanks!


[TfLite] unresolved TfLiteGPUDelegateV2Create with Visual Studio

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
2.13
Custom code
No
OS platform and distribution
Windows 10 Pro
Mobile device
No response
Python version
3.11.4
Bazel version
No response
GCC/compiler version
Microsoft Visual Studio 2022 C++ compiler
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
I built TfLite with -DTFLITE_ENABLE_GPU=ON.
I tried to test TfLite with GPU, but the minimal-working C++ example for the GPU from https://www.tensorflow.org/lite/android/delegates/gpu_native does not work under Windows 10 with Visual Studio 2022.
I receive the linker error error LNK2001: unresolved external symbol __imp_TfLiteGpuDelegateV2Create.
I ran dumpbin on tensorflow-lite.lib and it says a static fuction TfLiteGPUDelegateV2Create does exist.
I tried a different Windows 10 machine with Visual Studio 2019, but I receive the same linker error.
I got the example working under Ubuntu Linux 23.04 with gcc12 using the same build commands (except from replacing the Windows specifics with Linux specifics of course).
Standalone code to reproduce the issue
Build commands (in Command Prompt):
git clone https://github.com/tensorflow/tensorflow tensorflow_src
mkdir tflite_release_x64
cd tflite_release_x64
cmake -G "Visual Studio 17" -A x64 -DTFLITE_ENABLE_GPU=ON ..\tensorflow_src\tensorflow\lite
cmake --build . -j 16 --config Release

C++ code (https://www.tensorflow.org/lite/android/delegates/gpu_native):
#include "tensorflow/lite/model.h"
#include "tensorflow/lite/interpreter.h"
#include "tensorflow/lite/kernels/register.h"
#include "tensorflow/lite/delegates/gpu/delegate.h"
#include <iostream>

using namespace tflite;

int main() {
	// Set up interpreter.
	auto model = FlatBufferModel::BuildFromFile("C:/Users/bartp/source/lite-model_deeplabv3_1_metadata_2.tflite");
	if (!model) return false;
	ops::builtin::BuiltinOpResolver op_resolver;
	std::unique_ptr<Interpreter> interpreter;
	InterpreterBuilder(*model, op_resolver)(&interpreter);

	auto* delegate = TfLiteGpuDelegateV2Create(/*default options=*/nullptr);

	std::cout << "Done\n";
	return 0;
}

Relevant log output
1>------ Build started: Project: MweTfLite2.13Gpu, Configuration: Release x64 ------
1>Main.cpp
1>Main.obj : error LNK2001: unresolved external symbol __imp_TfLiteGpuDelegateV2Create
1>C:\Users\bartp\source\MweTfLite2.13Gpu\x64\Release\MweTfLite2.13Gpu.exe : fatal error LNK1120: 1 unresolved externals

This issue originally reported by @misterBart has been moved to this dedicated repository for LiteRT to enhance issue tracking and prioritization. To ensure continuity, we have created this new issue on your behalf.
We appreciate your understanding and look forward to your continued involvement.

Original Issue: https://github.com/tensorflow/tensorflow/issues/61442


MSID: 91645 Version: 1 DOI: 2<IP_ADDRESS>3292

"msas": "Biochemistry and Chemical Biology", "Cell Biology"
"msid": "91645"
"preprintDoi": "10.1101/2<IP_ADDRESS>3292"
"Reviewed Preprint posted": "2023-10-04"
"Sent for peer review": "2023-08-17"
"Posted to bioRxiv": "2023-08-17" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>3292v6/")
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=91645)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/91645/v1)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>3292)
[x] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/91645/v1/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/91645)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/91645

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/91645

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/91645/v1/91645-v1.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/91645)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

Carl Laflamme doesn't have corresponding email, looking at PDF this maybe because there is no asterisk for this?

Nicely done Rebecca. We'll need an xsl to fix this one.

(We also have version 5 loaded instead of version 6 which is at s3://transfers-elife/biorxiv_Current_Content/August_2023/19_Aug_23_Batch_1708/b075cc9b-6ceb-1014-a94d-c6100c741f0a.meca)

Looks like no xsl is needed for version 6 which has the link in the XML:
<contrib contrib-type="author" corresp="yes">
<contrib-id contrib-id-type="orcid">http://orcid.org/0000-0001-5906-025X</contrib-id>
<name><surname>Laflamme</surname><given-names>Carl</given-names></name>
<xref ref-type="aff" rid="a1">1</xref>
<xref ref-type="corresp" rid="cor1">*</xref>
</contrib>

Version 6 has been loaded - could you check this one again please @rkcook312?

Thanks @fred-atherden, this one is OK now.


⚠ Bofrost.at has degraded performance

In f68f344, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2096 ms

Resolved: Bofrost.at performance has improved in 6aacc77 after 9 minutes.


Add some missing attributes

Add some inline & crate attributes.

Thank god we have CI set up lmao


Update dv_lib to lowRISC/opentitan@1d17b122

Update code from subdir hw/dv/sv/dv_lib in upstream repository
https://github.com/lowRISC/opentitan to revision
1d17b1225d324c81da522c69317335a83edd5ddb

[dv] Add excl for rstmgr, pwrmgr and fix top-level csr test (Weicai
Yang)
[dv] Allow dv_lib-based sequences to have different RSP/REQ types
(Rupert Swarbrick)
[dv] Support WO, RO type for mem (Weicai Yang)
[dv,sw] SW -> DV tb self-checking mechanism - SV (Srikrishna Iyer)
[dv/top] Fix csr rw test (Cindy Chen)

Signed-off-by: Rupert Swarbrick<EMAIL_ADDRESS>

This PR is to allow sequences with different RSP/REQ types: I've got a bugfix in the core agent which requires the driver to respond back to the sequence and it feels much cleaner to respond with a "was this an error" bit than adding a field to the request sequence item.

Wow, that was quick. Thanks, Udi!


If the backend sends a no-cache header - respect that.

This is necessary, because the extension will not send the specific cache headers if the request is marked as uncached.
Without these headers, the cache invalidation doesnt work due to missing X-Site header and others.

Hi Daniel, thanks for submitting.
The configuration is actually just copied from the Symfony package, however I think it makes sense to add such configuration to help people.
But you need to add it to both versions of the varnish configuration (v3 + v4).
Additionally in our configuration we do a bit more for "no-cache" requests.
	# Respect force-reload, and clear cache accordingly. This means that a ctrl-reload will actually purge
	# the cache for this URL.
	if (req.http.Cache-Control ~ "no-cache") {
		set beresp.ttl = 0s;
		#Make sure ESI includes are processed!
		set beresp.do_esi = true;
		set beresp.http.X-Cacheable = "NO:force-reload";
		#Make sure that We remove alle cache headers, so the Browser does not cache it for us!
		remove beresp.http.Cache-Control;
		remove beresp.http.Expires;
		remove beresp.http.Last-Modified;
		remove beresp.http.ETag;
		remove beresp.http.Pragma;

		return (deliver);
	}

additionally we have this in "vcl_hit"
sub vcl_hit {
	# General hit vcl
	if (req.http.Cache-Control ~ "no-cache") {
		set obj.ttl = 0s;
		return (pass);
	}
}

You can find the whole configuration at https://github.com/mocdk/vagrant-moc/blob/master/templates/varnish.vcl.j2

gonna close this as it old, feel free to reopen


Active Directory primary authentication support

While comments are appreciated, this is a staged set of changes, so feedback will be addressed in a future set of commits
This feature introduces the concept of a "primary authentication scheme" which is
used for authentication of the site and the primary identity for the link; the "secondary"
scheme is then used for authorization when linking and managing accounts.
A new configuration property, PRIMARY_AUTHENTICATION_SCHEME, is added, and at this time it supports "aad" or "github".
This is an initial commit which is part of a number of parallel changes happening to
enable this, so even after this is merged in, it should not be considered a stable feature.
The default primary authentication is GitHub, to be compatible with the original design
of this management portal.
The driving reason for this, which is in the v4.x release, is to allow for the use of the
site in its new scenario at Microsoft, where we want to revolve the design around
Active Directory identity first, instead of GitHub.
Note that this does introduce a unique situation in which, with the v3 portal, you could
actually have multiple GitHub accounts configured and setup with a single corporate
identity. We are making a policy decision for now to instead center around one and only
one social coding identity, but from a coding perspective, it would be easy enough for
someone to come along and implement the ability to add a GitHub account selector in
the scenario where they are using AAD primary authentication. It would also take mild
refactoring on reading the account information consistently from the open source user
context objects instead of the session object.
Other general changes you may find in this rather convoluted PR:

Introduction of ES6 into areas with high but constrained churcn
Code formatting iteration, namely moving closer to a   two-space indentation story over the prior 4
Improved error handling, especially in application startup failures

Hi @jeffwilcox, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;


[BUG] - BalancedTx contains UnsignedTx field type from Experimental API, forcing users to use the latter

External
Other
Summary
Pretty much what the title states. I found this while upgrading to 10.1 for the Chang#2. makeTransactionBodyAutoBalance now uses UnsignedTx which forces API users to use the API in the Experimental namespace (i.e. forces IsBabbageBasedEra although it takes ShelleyBasedEra as parameter etc.).
Compare my previous simple code
signTxWithSKey :: IsShelleyBasedEra era => SKey -> TxBody era -> Tx era
signTxWithSKey sk txb = makeSignedTransaction [mkSKeyWitness sk txb] txb

with the migrated one with a lot of manual wrapping/unwrapping to retain previous signature as much as possible (i.e. return cardano-api Tx instead of the ledger one):
signTxWithSKey :: forall era. IsBabbageBasedEra era => SKey -> UnsignedTx era -> Tx era
signTxWithSKey sk (UnsignedTx tx) =
  let
    bbe = babbageEraOnwards @era
    txb = obtainCommonConstraints (babbageEraOnwardsToEra bbe) $ getTxBody $ ShelleyTx shelleyBasedEra tx
  in makeSignedTransaction [mkSKeyWitness sk txb] txb

Expected behavior
Non-experimental API should not force users to rely on Experimental API. There should be a clear distinction between these two since the latter is described as "it is subject to dramatic changes so use with caution".

Although UnsignedTx era is unlikely to change (despite being confusingly placed in the Experimental namespace), we did not anticipate such a significant change in the code. We have decided to revert the change and introduce the new API separately.

Thank you!


TVP issue with ResultSet when column is varchar(max) and string value is longer than 4000

Driver throws error
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Table-valued parameter 0 (""), row 1, column 1: Data type 0xE7 has an invalid data length or metadata length.

when TVP is used with ResultSet, column is varchar(max), and value length is at least 4001.
It works fine when column is char(8000), varchar(8000), or nvarchar(max).
tryTVP_RS_varcharMax_4001_Issue.txt

fixed by #250


Integrate "Thanks" package to Installer

Expected Behavior
On the end of the install process, we would like to ask users to like us on Github.
Current Behavior
This functionality was integrated just in install.sh
System GA

➤ Galymzhan Begimov commented:
https://git.awescode.com/awes-io/installer/merge_requests/2 ( https://git.awescode.com/awes-io/installer/merge_requests/2 )

➤ Galymzhan Begimov commented:
Do we need to add “Thanks” package to awes-io/awes-io repo, now it’s only present in awes-io/demo

➤ Galymzhan Begimov commented:
https://git.awescode.com/awes-io/awes-io/merge_requests/9 ( https://git.awescode.com/awes-io/awes-io/merge_requests/9 )


Components are not pure

Hi, I notice that all the components are not pure and will calculate its props every time it get rendered. This is not efficient, especially for such basic layout components which are used widely and the props seem not to change often.

Feel free to send a PR.


Add in support for auth.okta to grafana.ini parser.

Description
Enables support fot the auth.okta section of the grafana.ini parser.
Relevant issues/tickets
https://github.com/integr8ly/grafana-operator/issues/378
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[ ] This change requires a documentation update
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added a test case that will be used to verify my changes
[ ] Verified independently on a cluster by reviewer

Verification steps
Use a CRD with with the auth.okta enabled and validate it is rendered in the grafana.ini configmap.
apiVersion: integreatly.org/v1alpha1
kind: Grafana
metadata:
  name: grafana
  namespace: grafana
spec:
  deployment:
    nodeSelector:
      nodegroup: kube-addons
  ingress:
    enabled: true
    ingressClassName: nginx-private
    hostname: grafana.foo.net
    path: /
    annotations:
      kubernetes.io/ingress.class: nginx-private
      cert-manager.io/cluster-issuer: vault
      external-dns/private-record: 'true'
    tlsEnabled: true
    tlsSecretName: grafana-tls
    termination: edge
  config:
    alerting:
      enabled: false
    analytics:
      check_for_updates: false
      reporting_enabled: false
    auth.okta:
      enabled: true
      allow_sign_up: true
      client_id: $__file{/etc/grafana-secrets/auth_okta/client_id}
      client_secret: $__file{/etc/grafana-secrets/auth_okta/client_secret}
      scopes: openid profile email groups
      auth_url: https://foo.com/oauth2/v1/authorize
      token_url: https://foo.com/oauth2/v1/token
      api_url: https://foo.com/oauth2/v1/userinfo
      allowed_domains: foo.com
      allowed_groups: k8s-eng-svcs k8s-eng-svcs-admins
      role_attribute_path: contains(groups[*], 'k8s-eng-svcs-admins') && 'Admin' ||
        contains(groups[*], 'k8s-eng-svcs-admins') && 'Editor' || 'Viewer'
    log:
      level: warn
      mode: console
    security:
      disable_gravatar: true
    server:
      root_url: https://grafana.foo.net
  secrets:
  - auth-okta-secret

CI failing on unrelated issues, merging manually


SecAuditLogParts and PUT requests

Hi,
For SecAuditLogParts, we can configure the I  which supposedly will log request bodies in all cases except when multipart/form-data encoding is used in POST request. The thing is that when PUT requests are used, they aren't covered by the I. It looks like in order to prevent disk space issues, one has to either remove the  I completely or even set the SecRequestBodyAccess to off. But the goal is to  log request bodies in all other cases. Would it be possible to adjust the  I setting to cover PUT requests or offer an alternative setting? Or maybe I'm mistaken and there already is an alternative setting/workaround? Thanks for any help :)

@GitHubUser4234 Which version of ModSecurity you are using? Please provide as much detail as possible so the community can better assist you.

Sure, that would be ModSecurity 2.9.0 with Apache 2.2 on Redhat 6.9, thanks a lot!

Hi @GitHubUser4234
In version 2.x there's are some limitations where PUT bodies are not inspected, which would explain why you're not being able to see the content with the "I" section of SecAuditLogParts.
This was also discussed at https://github.com/SpiderLabs/ModSecurity/issues/939, but it should be already supported on the new version of (lib)ModSecurity (3.x) so I suggest you should try it out to see if it works for you.

@victorhora thanks for the reply, however I think there was a misunderstanding. It's not that the content with the "I" section of SecAuditLogParts cannot be seen, it's that they CAN be seen. Supposedly they should only be logged with a "C" section of SecAuditLogParts but skipped with an "I" to prevent disk space issues. So unfortunately, the issue doesn't look resolved.

@victorhora Would you please reopen the issue so the community would be able to see this, thanks

@GitHubUser4234 thanks for your feedback.
I would suggest that you test with a more recent version (i.e. 2.9.2) as I see that you are running ModSecurity 2.9.0. Or better yet, you might want to check against the current master as there's a number of recent fixes there.
If the issue still exists we can reopen the issue and investigate further.
Thanks!

I would suggest that you test with a more recent version (i.e. 2.9.2) as I see that you are running ModSecurity 2.9.0. Or better yet, you might want to check against the current master as there's a number of recent fixes there.

Unfortunately newer versions of ModSecurity are not provided by Redhat yet and we are required to stick to what Redhat has to offer. So as there doesn't seem to be an alternative setting/workaround for now, it looks like removing the "I" section would be the least evil in order to prevent disk space problems for large file uploads using PUT. When a new version is available through Redhat, I might revisit this issue.


Fixes alignment of radio button for thumbnail in file manager.

Fixes #928
Fixes position of radio button for thumbnail option in file manager.
@projecthydra-labs/hyrax-code-reviewers

Thoughts on this, @jcoyne @ggeisler @hackmastera? LGTM, but stylesheets are not my strong suit.

Screenshots for things like this would be helpful for those of us not running the app all the time...

@ggeisler there are before and after screenshots in issue #928. Thx.

@andjsmit Sure, thanks for pointing me to them. I guess my point, though, is when a PR involves a change to the UI it is helpful for reviewers (at least those who are more interested in the effect on the UI, rather than the changes to the underlying code) to be able see screenshots in the PR itself (i.e., here, for this PR) so we can offer an opinion on how things look without having to actually pull and run your branch locally. (My local dev environment is active with another project I'm working on so doing that is not trivial.)
Looking at #928 I'm not really clear what's going on. Do the last screenshots in the comment thread reflect what is in this PR? If so, I like the reorganization and think things look much cleaner.
This might be beside the point of #928 but in one of those screenshots I see two radio buttons selected. If you are using radio buttons only one should be selectable at a time. If the user can select both, or neither, at the same time, you should use checkboxes instead of radio buttons. (I haven't paid much attention to the File Manager feature yet so if my comments don't make sense, please ignore them and go with whatever the others on this thread want to do.)

@ggeisler I believe they should be radio buttons, but the zoomed screenshot is making it difficult to see why. The file manager displays a bunch of files within a work, and for each file you can set it as the thumb or the representative media. So you don't have to choose between the two options for a file. Make sense?

@ggeisler So like @mjgiarlo said, the radio buttons work more in a horizontal way. With multiple files one and only one Thumbnail can be selected and one and only one Representative Media is selected. Both radio buttons were originally in the code. It was just that the Thumbnail one was showing up at the top (in chrome) or outside the box in Firefox.

@andjsmit @mjgiarlo Okay, thanks for the explanation. As @mjgiarlo said, the fuller context wasn't clear to me from the screenshot in the other ticket.
The bottom version still feels odd to me, where page1.jp2 has both the radio buttons for Thumbnail and Representative Media selected, but you guys understand what's going on better than I.

@ggeisler having a separate thumbnail and representative media makes more sense for an audio or video object, where you want the representative media to be a sound or video and you want the thumbnail to be cover art or a screen grab.

@jcoyne Yeah, I get that part. It's just the fact that you can select two radio buttons (or select none) that appear to be in the same group that I think is off. With radio buttons you should only be able to select one in a related group of choices.

@ggeisler So you are saying, we shouldn't interleave two groups of radio buttons because that's visually indistinguishable from many groups of two radio buttons.

@jcoyne Yeah, I guess visually it just appears that the radio groups are per "page" (the blocks that look like independent "cards") in this case; the visual separation of the cards makes it less obvious that the groups span the cards.
Anyway, I'm not trying to stop this from being merged into the app, just wanted to make sure we were using radio buttons appropriately. It seems like we are, it's just a little less than ideal visually. But maybe it's perfectly fine in practice.

Thanks, @ggeisler. Should we write up a new "design needed" issue for aligning the file manager design with the rest of the site?

@ggeisler Oh, that's my fault. It looks silly here, but it works well in practice (users seem to know what's happening immediately.) In our case we actually have two sets of radio buttons too: some are per FileSet, and then there's the thumbnail/representative selector.

@mjgiarlo I think we can just go with this and wait and see if it surfaces as anything that needs more design and/or development. @tpendragon says it works well in practice so that's good enough for me! Again, I think some of my concerns were due to seeing a more limited view of what was going on; not seeing things in the full context.


Item dropping mispredicts

Probably 1/4 of the time when you drop an item you can see it flicker for a frame. It's probably some specific transform ordering code or the likes in engine but not entirely sure.
I'm also not entirely sure when it started but bisecting it shouldn't be hard.

The issue appears to have something to do with interpolation or pickup animations when dropping items near the centre of grids. Sometimes it appears to be trying to lerp towards the grid, other times it seems to be animating a drop starting from the grid?
See the video in https://github.com/space-wizards/RobustToolbox/pull/3963

Somehow related #15664 .
Can confirm the client is doing the dropping/inserting reconciliation dance a few time before actually dropping the item.


MTD TotalSales

Describe the problem
These measures generate the same amounts
The 1st is the sum measure I created before introducing Bravo
The 2nd is the measure created by Bravo

TotalSales = SUM('Invoice Detail'[Sale Price])
MTD TotalSales =
IF (
[_ShowValueForDates],
CALCULATE (
[TotalSales],
DATESMTD ( 'Date'[Date] )
)
)

Bravo version
0.9.8139.22766
Tabular model
Power BI Dataset
Power BI
Version: 2.104.702.0 64-bit (April 2022)
Steps to reproduce the behavior
No response
Additional context
No response
Screenshots

Anything else ?
No response

I added a DayofMonth column to the date table and filtered to <= DAY(TODAY) to get what I would expect.
This is a very helpful tool for getting started and taking time intelligence to the next level, thank you!

I do not understand whether you are reporting an issue or not.
If you are reporting an issue, please submit an example where we can reproduce the problem. The measures works as expected in our tests.

Reviewing the issue, I understand that the goal was to get the month-to-today, which is not the month-to-date that uses the date selected in the report. I close the issue because it seems out of scope. Please reopen if there are additional considerations.


Active window watching mechanism implemented

It's necessary to fix the T235186 TestCafe bug
/cc @miherlosev @LavrovArtem @inikulin
@VasilyStrelyaev please check the note in the src/client/sandboxes/event/active-window.js file

lgtm

FPR

I think need test's coveradge for the following scenarious:
1)initially active is iframe #1 window then activate the iframe #2 window
2)initially active is iframe window then activate the top window (activate by clicking on shadow ui element).

I think we need tests that cover the following scenarious:
initially active is iframe...

The top window is active always while the page is loading and our scripts initializing. What the reason of testing scenarios when an iframe is active at test start?

(activate by clicking on shadow ui element)
This tests - unit tests for the active-window module. The Shadow UI has no relation to this

ok, we have discussed it personally. We'll add two tests:

for the 'active-window' module to test the scenario focus iframe1 -> focus iframe2
for the focus-blur module to check that activeWindow.set is not called when an iframe is focused and focus called for the shadow ui element

What's going on here?

PR closed due to wrong merging


Update box2d with torque fix version

Description
Box2d_flame had a bug with torque modification that is fixed in 0.4.6
The box2d_flame PR (https://github.com/flame-engine/box2d.dart/pull/8) needs to be merged first, and a new version published.
Fixes #374
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:
If something is unclear, please submit the PR anyways and ask about what you thought was unclear.

[x] This branch is based on develop
[x] This PR is targeted to merge into develop (not master)
[x] I have added an entry under [next] in CHANGELOG.md
[x] I have formatted my code with flutter format
[x] I have made corresponding changes to the documentation
[x] I have added examples for new features in doc/examples
[ ] The continuous integration (CI) is passing

LGTM but something broke

It was just the new box2d release that wasn't published when the CI run, it re-ran now and passed.


migrate from highcharts to chart.js to be able to freely distribute budgeteer

currently, budgeteer uses wicked-charts, which uses Highcharts, which is not freely distibutable.
Migrate from wicked-charts to https://github.com/pingunaut/wicket-chartjs to be able to freely redistribute it.

This issue is solved in #183

Please check the dashboard-view. The generated HTML still contains a script-element referencing "js/highcharts/hightcharts.js".