Files without headers doesn't work

System Information (please complete the following information):

Model Builder Version: BugBash
Visual Studio Version

Describe the bug
Columns and info about files without headers are not shown correctly.
To Reproduce
Steps to reproduce the behavior:

Go to 'Sentiment Analysis'
Upload a txt file without header (
sentiment-yelp-test.txt
)
See error

Expected behavior

The data preview should show info in all the columns
The headers in data preview and "Columns to Predict"  drop down should have column names such as "Column0" .. "Column2" .. "ColumnN-1"
Training should finish and I can generate and consume the code.

Screenshots

Additional context
Add any other context about the problem here.

See this as reference

Either we can add support for special char like . or / in column field so it can preview the data in a correct way, or we can use it as a way to detect whether it has header or not and then use column# as header. Which is prefer?
My vote is for the first one, for the following reason:

simple solution, less than ten lines of code (estimated) needed to be add
user friendly, User see what they see, the raw data, they can decide whether they need to add header field or not

Any other ideas? @greazer @rustd @JakeRadMSFT @tbombach

We have other bugs tracking user input for "Has header" and separators. This is not a regression.


Committee type safety

This makes Committee structs type-safe by ensuring that the list of underlying validators in an epoch is immutable. This is required for the following PRs that we will then later push:

Replace Public Keys in certificate with Bitmaps.
Replace with vector of signatures with Aggregated Signatures

@huitseeker Do we still want this PR for committee's type safety?

@punwai if by this you mean making authorities a read-only field (i.e. private with a public getter), yes! But it's a small subset of this PR in the current state.

Closing for now


new approach to attendance analysis using only react material UI need…

…s small debugging front end wise and backend

@AnishaRan feel free to delete the stuff in the other PR and also that branch and let's focus just on this one.
@AnishaRan and @NSel1727 I tried implementing a new strategy for the analytics using just material UI react charts, so far the server did not crash on my end, yet I didn't test on the frontend, however, I wrote the code up, could one of you if you have the time check this and see if it works, and then I can focus just on editing how it looks?
thank you both for helping with this!


nixos/udisks2: add mountAtMedia option

Motivation for this change
Relevant information is here:
https://wiki.archlinux.org/title/udisks#Mount_to_/media_(udisks2)
Things done

Built on platform(s)

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

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

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

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@ofborg eval

What is your current opinion about this @aanderse ?

Sorry @bb2020 I haven't had time to give this PR the thought it deserves.

That being said, I vote against this.
No one will die if her 2tb external storage can't be mounted under /media, and as stated by the patch it is more complicated to manage /media.
Also, it doesn't separate the mount points per user.

Fair points. However this won't be the default behavior. Actually ACL controlled mount folder is harder to manage if multiple users are trying to access the storage.

It isn't a big deal for the user to add this snippet to their own udev rules... but it also isn't a big deal to add this option.... 🤔
Honestly my biggest holdup at this point is the name of the option 😅 I feel like it could be more descriptive but I can't think of anything.
So accept the PR or not... @AndersonTorres final answer from you?

Thanks everyone for reviewing.

Thanks for reviewing, everyone.


fix babel unicode

fix: new Babel version introduced unicode problem
refactor: solve caching problem in teardown

close this PR, because the #117 will be used


.predict or .execute in usePrediction

discussion about differences here – https://github.com/tensorflow/tfjs/issues/1411
Main takeaway points:

usePrediction must use .execute by default
.predict must be used if a prediction config interface is provided
.predict should be choosable via boolean.

closed by #16


applications.audio.luppp: new package (at version 1.2.0)

Motivation for this change
This packages an interesting audio application called Luppp
Things done

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

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

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

Merged to master in c26dbef830a2bc10a0cee7f77936af83116597df

@prusnak Thanks for this, I've been meaning to package this application :smile:


Support artifact_paths inside containers

This mounts any artifact paths you specify into the container so that files written there will make it back to the host for upload.

Neat idea! I think the code still has dist/* hard coded.

Yeah, was just resurrecting a very old branch @toolmantim, I still don't have a good way of making this work. I think I'm going to take a different approach and try and volume mount in the artifact_paths

I never figured out a good way to do this.


Cannot handle YAMLish values wrapped to next line

I've got the following tap output from tape:
TAP version 13
# setup
# http over http, tunnel=true
ok 1 should be equivalent
# http over http, tunnel=false
ok 2 should be equivalent
# http over http, tunnel=default
ok 3 should be equivalent
# http over https, tunnel=true
not ok 4 should be equivalent
  ---
    operator: deepEqual
    expected:
      [ 'https connect to localhost:6767', 'http response', '200 http ok' ]
    actual:
      [ 'err tunneling socket could not be established, cause=UNABLE_TO_VERIFY_LEAF_SIGNATURE' ]
    at: Request._callback (/node/somedir/test-tunnel.js:LINE:COL)
  ...
# http over https, tunnel=false
ok 5 should be equivalent
# http over https, tunnel=default
ok 6 should be equivalent
# cleanup

1..6
# tests 6
# pass  5
# fail  1

When parsing this, TapConsumer emits the following in a data event:
{ id: 4,
  ok: false,
  name: ' should be equivalent',
  operator: 'deepEqual',
  expected: { '[ \'https connect to localhost': '6767\', \'http response\', \'200 http ok\' ]' },
  actual: { '[ \'err tunneling socket could not be established, cause=UNABLE_TO_VERIFY_LEAF_SIGNATURE\' ]': '' },
  at: 'Request._callback (/node/somedir/test-tunnel.js:LINE:COL)' }

Also see substack/tape#140.

Patch welcome.

Currently in the process of some heavy refactoring.  In the process, swapping out the yamlish module for js-yaml, which is far superior, and does not exhibit this bug.

:+1:
Here's a failing test when you're ready for it, js-yaml may actually parse those values instead of sending them as strings though: test-yamlish-wrapped.js

True, and I think that's actually the correct behavior, given that yaml.
js-yaml would dump that data structure like this though:
> console.error(require('js-yaml').safeDump({ id: 4,
...   ok: false,
...   name: ' should be equivalent',
...   operator: 'deepEqual',
...   expected: { '[ \'https connect to localhost': '6767\', \'http response\', \'200 http ok\' ]' },
...   actual: { '[ \'err tunneling socket could not be established, cause=UNABLE_TO_VERIFY_LEAF_SIGNATURE\' ]': '' },
...   at: 'Request._callback (/node/somedir/test-tunnel.js:LINE:COL)' }))
id: 4
ok: false
name: " should be equivalent"
operator: deepEqual
expected:
  "[ 'https connect to localhost": "6767', 'http response', '200 http ok' ]"
actual:
  "[ 'err tunneling socket could not be established, cause=UNABLE_TO_VERIFY_LEAF_SIGNATURE' ]": ""
at: "Request._callback (/node/somedir/test-tunnel.js:LINE:COL)"

I'd personally prefer to see | or |- used for multi-line strings (depending on whether or not they have a trailing \n), but that's addressed in https://github.com/nodeca/js-yaml/issues/66

Fixed on 1.x


search min characters

How do I get the search to start when I type a minimum of 3 characters? Or more. I didn't find anything like min-length.

+1 this is an one... 👍

I solved like :
if(query.length > 2) {
          this.customers = await this.customerList(query)
}

+1

Hi everyone,
Just wanted to offer a somewhat hacky solution for this. You can set @results="showResults" on the autocomplete component and then add a method called showResults with this inside it, just change the .length condition to check for the min chars you want. I used jquery but it could easily be done with vanilla js as well.
this.$nextTick(()=>{
                    if($('.autocomplete__inputs input[type=text]').val().length===0){
                        $('.autocomplete__results').hide()
                    }
                    else
                        $('.autocomplete__results').show()
                })

+1

Hi,
Very nice library. Would be even nicer if the minimum input would be configurable.
Another hacky solution is making the endpoint dynamic. The loading icon is still visible. And you could extend this by making 3 dynamic and show a message when the input length is below this number. My purpose is limiting the api calls by the way so this works for me (for now):
        `:source="endpoint"`

then add the method
        ```

endpoint: function(input) {
            if (input.length < 3) {

                return false;

            }

            return 'https://{{Your_Endpoint}}?key={{Your_Api_Key}}&q=' + input
        },

Finally hide the error message (in my case I put it in the styles block of my single file component:

.autocomplete__results__item--error {
    display: none;
}


TypeError: Cannot read property 'filepicker' of undefined

TypeError: Cannot read property 'filepicker' of undefined error comes while using at angular nativescript please have a look and give me the suggestion .
https://play.nativescript.org/?template=play-ng&id=kM8Uhb&v=2

A couple of issues with typing. Did a cleanup on my PR.

@ann11 you can't use this plugin in play. Try to clean platform directory in your local project. It should work.

Same issue in local directory actually with angular it has issue

I'm having this issue too


chore: use base64 url safe encoding for noise

Relevant RFC PR:
https://github.com/vacp2p/rfc/pull/575

@fryorcraken I double checked and noise examples do not require any changes to correlate to this PR


conventional json schema not working

Issue
Expected behavior
schema of this type should work
"value": {
            "description": "an array",
            "type": "array"
        },

Actual behavior
we get this error Cannot read property '$ref' of undefined
Steps to reproduce the behavior
try to build types with an array with no items specified

In this case, I suggest we add the Unknown type right into the items property.
Putting a { type: 'any' } object here https://github.com/nfroidure/schema2dts/blob/master/src/index.ts#L1045-L1047 if the array is empty should work.


Internal server error when exporting RDF

Export delivers internal server error after some time (Saone project)

Error message?

Fixed after reading the doc


Color piano not found in chrome web store

Hi I am new to GitHub but I am following Sir Michael Deal (mudcube) 's project Color piano theory, from around 2013 when I first got a computer. It has been about 8 years and still I use Color piano frequently.
The app is not appearing on the Chrome Web Store. Please do the needful so that the app appears again on chrome web store.
Ps. 1. I want to contact Sir Michel Deal (mudcube). How to contact him?
Ps. 2. I am looking for mobile app version for Color Piano app. Is thete any way I can install colour piano in my android mobile phone? Many Thanks and regards.

I haven't seen mudcube around very much, hence why I forked the repo at  https://github.com/mscuthbert/midicube  -- you might be able to get the color piano to work in android mobile in that version.

Thank yoy so much im desparately looking for android app
On Sat, 28 Jan 2023, 05:20 Michael Scott Asato Cuthbert, <
@.***> wrote:

I haven't seen mudcube around very much, hence why I forked the repo at
https://github.com/mscuthbert/midicube -- you might be able to get the
color piano to work in android mobile in that version.
—
Reply to this email directly, view it on GitHub
https://github.com/mudcube/MIDI.js/issues/261#issuecomment-1407197922,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUDDX6LHHYAYJRVHWYYXLTLWURNLTANCNFSM447MNYIA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Default privileges support schemas

WIP because it is dependent on PR 1298 since schema privileges require the schema parameter to be applying to all schemas (schemas can't be nested, so it doesn't make sense to set privileges for new schemas created "within the public schema" or something).
This would also benefit from acceptance tests once I know how to make them work.

Any advice on getting the tests which rely on specific versions working?

I think the issue was simply that the check in the module was using versioncmp(..., '10.0') rather than versioncmp(..., '10') - can you confirm that the latter is correct?

Marked as not WIP.

Hi, aware you are pretty busy - if you are able to have another look at this soon that would be great.

I'm away until next week.


[Runtime] Include partial errors in oneOf/anyOf decoding errors

Motivation
The runtime changes to address https://github.com/apple/swift-openapi-generator/issues/275.
This makes debugging of decoding of oneOf/anyOf much easier, as the individual errors aren't dropped on the floor anymore.
Modifications
Added SPI that allows the generated code to collect and report partial errors when a oneOf/anyOf fails to decode (that includes trying multiple subschemas, which themselves emit errors when they're not the right match).
Result
Easier debugging of oneOf/anyOf decoding issues.
Test Plan
Tested manually as part of the generator changes, we don't generally test exact error strings.

API breakage is red with:

1 breaking change detected in OpenAPIRuntime:
💔 API breakage: func DecodingError.verifyAtLeastOneSchemaIsNotNil(_:type:codingPath:) is now with @_spi
** ERROR: ❌ Breaking API changes detected.

This method was never meant to be API, it was (by mistake) missing the SPI annotation, so adding that here. While it's technically an API-break, nobody should have been using this method.


Added Spec Benchmarks

Run make checkout to clone/pull the spec2000 repo and make spec to build the tests. The following spec2000 benchmarks currently build and successfully run on Dromajo.

164.gizp
175.vpr
181.mcf
186.crafty
197.parser
256.bzip2

Is the periodic dump stuff in here or should we merge that too?

Is the periodic dump stuff in here or should we merge that too?

No it's here - #420

Wow! Good set of benchmarks!
On Thu, Apr 2, 2020 at 8:56 PM Farzam Gilani<EMAIL_ADDRESS>wrote:

Is the periodic dump stuff in here or should we merge that too?
No it's here - #420
https://github.com/black-parrot/black-parrot/pull/420
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/black-parrot/black-parrot/pull/419#issuecomment-608215399,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEFG5ACQ43SQEKCBQ5WTW5DRKVM6JANCNFSM4L3J2YSQ
.


exe_flags=%evt.arg.flags usage among our rules

Motivation
In many rules, we have this output field exe_flags=%evt.arg.flags. The name exe_flags suggests we are trying to extract some flags relative to the executable, but if we take a closer look we are getting the flags of the open family syscalls.
Let's take the Read sensitive file untrusted rule as an example. The events used in this rule are (open,openat,openat2), so evt.arg.flags returns the flags used to open the file (e.g. O_RDONLY), is this what we want? Looking at the field name exe_flags I would say no :thinking:
Example exe_flags=O_RDONLY
11:45:57.319603569: Warning Sensitive file opened for reading by non-trusted program (file=/etc/pam.d/other gparent=gnome-terminal- ggparent=systemd gggparent=systemd evt_type=openat user=root user_uid=0 user_loginuid=1000 process=sudo proc_exepath=/usr/bin/sudo parent=zsh command=sudo cat /etc/shadow terminal=34822 exe_flags=O_RDONLY container_id=host container_name=host)

Probably this is the result of a copy and paste from Run shell untrusted rule
If this is true probably we want to remove this output field from these rules

i realized this is a sort of "default" for all rules, but not sure this is what we want :thinking:

This PR https://github.com/falcosecurity/rules/pull/215 removes all the cases where exe_flags=%evt.arg.flags is always evaluated to <NA> but i think we should remove all cases apart the ones where the events involved are execve or execveat WDYT?

Also cross-linked it to https://github.com/falcosecurity/rules/issues/176 where there was an open item to not name it exe_flags, but flags instead.
But on a separate note if Falco cannot gracefully handle something not being present we should not do it.
And I start realizing that seeing NA fields causes panic among adopters, so having done thsi for consistency was teh worng choice.


Allow Generators to yield pipelines without schedules

Schedules are optional in pipelines. This PR allows None to be passed as the schedule when yielding pipelines from a Generator class.
Changes proposed in this pull request:

The source spec parser checks if there's a schedule before adding it to the pipeline details
A SCHEDULE_NONE static property to provide an explicit name when constructing generators

Yes, I know, the generator API leaves much to be desired. I've been planning to change that for some time.
If you're already at it, let's do it in a more future proof way.
Right now the generator should yield tuples of (pipeline_id, schedule, steps) and constructs
                        pipeline_details = {
                            'schedule': {'crontab': schedule},
                            'pipeline': steps
                        }

I suggest that the generator will yield tuples of (pipeline_id, pipeline_details) directly - so that the optional schedule can simply be omitted in the generator, and future properties would also be supported without modifying this code (e.g. pipeline dependencies).


Metrics/ParameterLists should have a different behavior for named hash parameters

Hi there,
Metrics/ParameterLists is limiting the number of parameters in a method. This is very good.
Ruby 2.0 introduces "named hash parameters", For example def my_method(a:, b:, c:). It offers a stricter alternative to passing a loose hash.
While rubocop does not enforce any limit on the size of hash arguments when calling a method, it does enforce a limit to the named hash arguments when defining a method. This is not very consistent.
What is the recommended approach? Use a old-fashioned hash? Disable this cop temporarily?
Should we consider altering this cop's behaviour?

I'm not sure if I understand your question, but let me try to provide some answers. We'll see if they correspond to what you meant.
First of all, if a method takes too many arguments, it's the definition that's wrong. The caller can only call the method as it is, it's no use RuboCop reporting the calls as offenses.
If you've defined a method with too many arguments (according to Metrics/ParameterLists) you can either:

set a higher Metrics/ParameterLists: Max in .rubocop_todo.yml
disable locally with # rubocop:disable Metrics/ParameterLists, or
rewrite the method so it takes fewer arguments, perhaps grouping some of them together in a new class

The last one is the recommended approach, generally speaking.

Perhaps @sdeframond is referring to the CountKeywordArguments option of the cop? I'm not totally sure about this.

@bbatsov aaah, that's right. This option would do the trick. Thank you so much!


Add scraped taps to website

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/49
Originally created by @tayloramurphy on 2021-05-17 15:37:23

I was doing this all last week and realized I didn't have a good tracking issue :face_palm:
Spreadsheet where I'm keeping track of the work: https://docs.google.com/spreadsheets/d/1Oz3-oA-o4V3WF8OUnOd0mgrhcjg3rasV99FBrEnBx28/edit#gid=1357846864
Previous MRs !16 and !17

View 3 previous comments from the original issue on GitLab


using ng-model equivalent with collapsible

I'm a newbie to Angular2 and materialize, so apologies if i'm missing the obvious.
What I'm looking for is a way to do two-way binding on the currently expanded section of a collapsible accordion view.
That, I want to set up my component to contain a parameter that 1) contains an index of the currently expanded section, and 2) when modified, expands the specified section (I want the first section to be automatically expanded). If there's a more correct way to do this in Angular2, please let me know as well.
BTW, I looked at materializeParams, but the documentation is lacking IMO. I could not make heads or tails of "The Materialize attribute directive also allows specifying parameters to be passed to the function, but providing a materializeParams attribute returning an array of params".
Thanks in advance!

@scottschafer IMO you should try to get away from 2-way data binding and use the actions to trigger the onOpen and onClose to update your data model.
You can look at the code example to understand how to use the params. For your convenience I've also added sample code in the collapsible app example: https://github.com/InfomediaLtd/angular2-materialize/blob/master/app/components/collapsible.ts.
Here's the code to illustrate how you'd have a default open section (Add "active" to the header of the section you want to open) and trigger code when a section opens or closes (call your init functions):
@Component({
    selector: "collapsible",
    template: `

filter_dramaFirst

Lorem ipsum dolor sit amet.

placeSecond

Lorem ipsum dolor sit amet.

whatshotThird

Lorem ipsum dolor sit amet.

    `
})
export class Collapsible {
    params = [
      {
        onOpen: (el) => {
          console.log("Collapsible open", el);
        },
        onClose: (el) => {
          console.log("Collapsible close", el);
        }
      }
    ];
}

@scottschafer if you have ideas how to improve the docs PRs are very much welcome! :)


[Question] How to run play wright java code into Docker

Hi There,
Can someone guide that on how to run playwright Java code in Docker? I understand that we have to use WebSocket, here is my code:
`playwright = Playwright.create() ;
playwright.chromium().connect("ws://<IP_ADDRESS>:3000/chromium", new BrowserType.ConnectOptions());
browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setArgs(Arrays.asList("--ipc=host","--no sandbox","--disable-dev-shm-usage")).setChromiumSandbox(false));
context = browser.newContext(new Browser.NewContextOptions());
page = context.newPage();`

I am trying to run docker using the following command, anything I am missing, please correct.
docker run -it --rm --ipc=host mcr.microsoft.com/playwright/java:focal /bin/bash
I am on a Mac machine, Docker. Above run docker command runs in docker without localhost/port number

Closing as duplicate of https://github.com/microsoft/playwright/issues/6726#issuecomment-847310121


fix(tabs): should respect hidden property and filter out tab content that's not selected

Closes IBM/carbon-components-react#2028
The hidden property was being ignored by the Tabs component.  I made a change to respect that property and actually hide the TabContent
Changelog
Changed

Added a filter step to check the hidden property of Tabs and stop any non-selected Tab Content from rendering

Hi @scottdickerson thank you for reporting the issue and your attempt to fix it! It appears that the UA stylesheet for [hidden], which has a very weak selector priority by definition, is overridden by our reset style. That said, would you try fixing it in application-side CSS or carbon-components CSS? Thanks!

Actually from a component perspective we really want to skip the React component render for optimization so I can’t fix from just a css perspective

Thank you for elaborating @scottdickerson! If you want to avoid react-render would you do:
(!avoidRender && (
  <Tabs>
    <Tab label="tab1">tab1 content</Tab>
    <Tab label="tab2">tab2 content</Tab>
  </Tabs>
}

hey @asudoh here's my usecase.  Inside the tab I have my tabContent component... And I typically don't want my tabContent to do anything unless it's actually visible (especially like fire expensive server calls, render components, etc).  However, currently the tabContent renders whether the tab is selected or not.  This forces the componentDidMount method of tabContent to fire (which would be ideally where I would put my loading behavior).  I assumed (maybe incorrectly) that the Tabs "hidden" prop was intended to hide the child content if the Tab wasn't currently selected.  But that's basically what I'm trying to accomplish.  Theres an internal slack going on about this discussion.  While it's certainly possible to pass these extra props through to the child content myself and then decide whether to load or not, it would be nicer if this kind of "lazy loading" was build into the Tabs proper through a property.

IIUC what @scottdickerson is talking about, cDM of <TabContent> is not something consuming application should use. In case <TabContent> being rendered regardless of selection really is the concern, we can provide custom rendering API for <TabContent>.

stalebot no! ⚡
@scottdickerson 👋

@scottdickerson @dakahn My apologies for not updating here. The series of investigations to better support the use case (not rendering tab content unless it's select) has found that letting application decide what to do there would be the best solution. #2142 addresses that. I appreciate the contributions you have been making BTW!

this is the perfect fix thanks @asudoh


Add Ansible playbook for fully-automated failover to MySQL slave

Basically, it would need to:

STOP SLAVE; on the slave (mode=stopslave with Ansible's mysql_replication module).
RESET SLAVE ALL; on the slave (mode=resetslaveall with Ansible's mysql_replication module).
Update the Drupal settings.php files to use the slave's (now duplicate master) IP address.

Note that for point 3 above, there are some other options that could be investigated... we could (for utmost HA purposes) have another DB balancer Pi in front of the database that would provide for a virtual IP... or we could route DB traffic through HAProxy on the balancer Pi—but this would add a whole lot of complexity, when we're looking for a more simple solution for the 80% case. I don't think we need 5 nines... 3 or 4 would do :)
See related: https://www.acquia.com/blog/mysql-ha-architecture-drupal (some really good advice in that post, especially the one-liners at the end!
Another interesting thing to consider (might be, again, too much effort for what it's worth): "You can skip replicating temporary tables (Drupal cache, forms, etc) to cut down on replication bandwidth"; might be nice if configuration is easy enough.

AutoSlave is also an interesting solution in the Drupal/app space for automated HA failover capabilities... but I'd rather trust the failover logic/timing/etc. to the infrastructure than to some application code and scripting. Thus it would be ideal to route all requests through a proxy, even though it adds complexity to the stack :P
Sadly, Nginx only offers TCP balancing via Nginx Plus (or is it now in the OSS version too?). Varnish only supports HTTP, not TCP, so HAProxy on the existing balancer seems the most likely/viable solution short of dedicating an additional Pi to the task, or buying an expensive router for the network backplane (instead of a nice, cheap, dumb 1 Gbps switch).

...and of course, if we route MySQL traffic through the balancer, that can sap up some of the already-precious 100 Mbps of bandwidth (~94 IRL) we get out of the weak onboard LAN.


fix: bullet-list changes in the readme

:tada: This PR is included in version 1.0.0-alpha.12 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Plan Q4 content strategy work

Problem statement
Key content strategy tasks have been IDed for Q4, and now we need to plan/prioritize in more detail.
What you need to know
Acceptance criteria

[ ] Plans created and reviewed with PM and design lead

To do

[ ] ...

@chris-kuryak we can talk about it when we meet tomorrow but I added a draft in the design planning mural and here is a screenshot as well of what it is right now

Reviewed and aligned


Dummy atmosphere module

It would be interesting to include a simple "dummy" atmosphere module, which is entirely transparent. All radiation from the surface would be directly radiated to space, and all incoming flux would be absorbed by the surface. Therefore, the surface should reach the planetary equilibrium temperature at some time evolution (unless the planet solidifies before that)
This would provide a platform for establishing how much the atmosphere is slowing the cooling of the planet, even though it isn't itself physical. It would also be helpful for debugging PROTEUS.

Completed.


Conflict between Clear event and Save event

What is the current behavior?
why click on the clear button would fire save event? It creates unwanted behavior.
also related to this:
if we use color on save event something like this:
color.toRGBA().toString(0)

when clicking on the clear button it would throw an error in console.log because after clicking on the clear button it would fire save event and because the color is null it would throw an error in this situation and every code in the clear event gets ignored and won't run.
Please provide the steps to reproduce and create a JSFiddle.
in this example, I added an alert to "save event". after clicking on the clear button, an alert is shown. it is an undesired behavior
  .on('save', (color, instance) => {
    alert()
  }).on('clear', instance => {
  })

Please provide the steps to reproduce and create a JSFiddle.
Click on clear button would throw an error because the clear button is calling save but the color is null now.
Meanwhile in this mode, if we have some code on the clear event, they won't run.
  .on('save', (color, instance) => {
    console.log('Event: "save"', color.toRGBA().toString(0));
  }).on('clear', instance => {
    console.log('Event: "clear"');
  })

What is the expected behavior?
clear button should not fire save event. we may encounter other problems later.
also if we use color.toRGBA() on save event it should not throw an error after clicking on clear button, also codes on the clear event in this situation should run.
temporary fix to this issue is using instance._color.toRGBA() on save event if we want to use the clear button as well. but firing save event is still the main problem.
Your environment:
Version (see Pickr.version): latest - 1.8.2
Used bundle (es5 or normal one): both
Used theme (default is classic): all themes
Browser-version:  chrome 96 / firefox 94 / safari 15
Operating-system:  macOS Monterey 12.0.1

sorry, I didn't realize some of my sentences were removed on this topic. I updated sentences in "What is the current behavior?"

Hey :) Thank your for investing some time into this issue, the reason behind fireing the save event with null on clear is that you're technically changing the color (e.g. saving something) which in this case is "nothing" e.g. null. Since this'd be a breaking change and this project is about to get deprecated in a month I'll consider this an improvement and mark it as such.

Hey :) Thank your for investing some time into this issue, the reason behind fireing the save event with null on clear is that you're technically changing the color (e.g. saving something) which in this case is "nothing" e.g. null. Since this'd be a breaking change and this project is about to get deprecated in a month I'll consider this an improvement and mark it as such.

Having the same problem please fix this before archiving project.


Examine RPC support

We might not have full RPC functionality for everything that the wallet supports.
If this is true, we should add it.
Even if we do have support, we should make sure that we output a meaningful error message if someone tries to call something that we do not support.

A small change which will output the name of functions that do not exist is here:
https://github.com/shane-kerr/Mintcoin-Desktop-Wallet/tree/improve-rpc

An audit by Enlil reveals:
MORE (12)
checkwallet
getcheckpoint
gethashespersec
getnewpubkey
getwork
getworkex
makekeypair
repairwallet
resendtx
reservebalance
sendalert
validatepubkey

MISSED (39)
abandontransaction
addnode
clearbanned
createmultisig
decodescript
disconnectnode
dumpwallet
estimatefee
estimatepriority
estimatesmartfee
estimatesmartpriority
fundrawtransaction
generate
getaddednodeinfo
getbestblockhash
getblockchaininfo
getblockheader
getchaintips
getmempoolinfo
getnettotals
getnetworkhashps
getnetworkinfo
getrawchangeaddress
gettxout
gettxoutproof
gettxoutsetinfo
getunconfirmedbalance
getwalletinfo
importaddress
importpubkey
importwallet
listbanned
listlockunspent
lockunspent
ping
prioritisetransaction
setban
verifychain
verifytxoutproof


IIntervalCollection.change disallow undefined endpoint

Description
IIntervalCollection.change allows one of the endpoints to be undefined. This means that it should stay wherever it is. But this can unintentionally result in the end being before start (especially in conjunction with remote edits). For compat, ops are still allowed to leave an endpoint unspecified.
There doesn't seem to be any usages of this functionality anyway.
Breaking Changes
Usages of the change method that passed in undefined endpoint should now specify the current endpoint position.
Reviewer Guidance
I updated the skipped fuzz tests and verified that they all fail with assert 0x54e or RedBlackTree.nodeRemove "Cannot read properties of undefined (reading 'left')". Let me know if there's anything else I should verify to ensure it's the known bugs.

Should this change also include IInterval.modify? It seems to have a similar API.

Should this change also include IInterval.modify? It seems to have a similar API.

I would like to, but I can't because of compat: there may be ops (at rest or clients on older versions) that have an undefined endpoint.

Should this change also include IInterval.modify? It seems to have a similar API.

I would like to, but I can't because of compat: there may be ops (at rest or clients on older versions) that have an undefined endpoint. I suppose I could set the endpoint to the existing value if I see such an op, so IInterval.modify wouldn't allow undefined directly, but I'm not sure if that adds any value.

One nice thing about doing your second suggestion is I think it would eventually let us simplify the pending state tracking and change implementation--right now it gets a fair bit of extra complexity from allowing individual changes.
We are making a behavioral change by doing this, in that it changes the semantics of how some concurrent ops are interpreted, but it seems unlikely anyone will notice.


Make title filter capitalize words inside parens

Updated to simplify the code.

What about the other brackets? { [ <

What about the other brackets? { [ <

Good point, @davidism. I've updated the PR to handle those brackets as well, along with some performance optimizations.

Thanks!


Task Failed: Download Link (linker-idk)

Describe the bug
When running conveyor make windows-app, the process stops with the message:
Task failed: Download Link (linker-idk)

SSL Handshake: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Sun Cert Path Builder: unable to find valid certification path to requested target

To Reproduce
Steps to reproduce the behavior:

conveyor generate compose com.example.my-project
cd my-project
./gradlew jar
conveyor make windows-app

Expected behavior
A Windows exe file
Desktop (please complete the following information):

OS: macOS 13.4.1

Additional context
I check manually in my command line, and I can run jlink without problems

Hmm that's a new one. It's possible the site hosting the JDK used for jlinking had a temporary SSL messup? Otherwise there may be something odd about your system's certificate store. If you run conveyor --show-log do you see anything interesting at the bottom?

Yes, it was a certificate issue in my machine. I tried from another machine, and it worked. Thank you.


Fix IndexError in predict_output_derivatives and predict_variances

predict_output_derivatives and predict_variances hat missing check_2d_array calls which ensure that the numpy array is converted to a 2d array.
To prevent that again, check_2d_array was refactored to ensure_2d_array, to reflect that the function does break the
Command-Query-Responsibility-Segregation and does not return the same array in case the dimension is not 2.

See #262

See #262


Submit font-highlight-color feature analysis document

In renaming my branch, I've achieved the "squashing" of all commits into a single document, but have lost our commentary trail.  I'll leave the previous branch in place for now if you want to review the older comments, and will close that pull request later.

I put the "print" in because without it, I get just the index number, while with it, I get the more descriptive text from the enumeration.

f.highlight
5
print f.highlight
PINK (5)

I wanted the example to match actual program behavior.

Ok David, this looks really good. Just a couple tweaks at the top and we're good to go.
I'll get a branch going on the main repo we can start merging these commits into and let you know the details once I have it done.
Next we can move along to the acceptance tests.
Have you had a chance to look at any of those and have any ideas? I'm inclined to think the ones for this will be almost exactly like some others that are there; so they should be cut-and-pasteable for the most part.
I'm thinking we can just add a couple Scenario Outlines to this existing test:
https://github.com/python-openxml/python-docx/blob/master/features/txt-font-props.feature
So it would go something like:
@wip
Scenario Outline: Get font highlight color
Given a font having  highlighting
Then font.highlight_color is
Examples: highlight_color values
  | color        | value        |
  | inherited    | None         |
  | default      | AUTO         |
  | yellow       | YELLOW       |
  | bright green | BRIGHT_GREEN |

and then another for setting font highlight color. Might as well insert them at the top so we don't have to scroll down to see them; order is basically arbitrary.
Note the @wip decorator. This causes this acceptance test to be skipped by the integration testing procedure. It's expected to fail until you get the implementation done. The @wip comes off once those are done.
Best,
Steve
On Feb 3, 2016, at 2:47 PM, David Woods <notifications<EMAIL_ADDRESS>wrote:
In renaming my branch, I've achieved the "squashing" of all commits into a single document, but have lost our commentary trail. I'll leave the previous branch in place for now if you want to review the older comments, and will close that pull request later.

You can view, comment on, or merge this pull request online at:
https://github.com/python-openxml/python-docx/pull/257
Commit Summary

Update font-color-highlight analysis document

File Changes

A docs/dev/analysis/features/text/font-highlight-color.rsthttps://github.com/python-openxml/python-docx/pull/257/files#diff-0 (187)

Patch Links:

https://github.com/python-openxml/python-docx/pull/257.patch
https://github.com/python-openxml/python-docx/pull/257.diff

—
Reply to this email directly or view it on GitHubhttps://github.com/python-openxml/python-docx/pull/257.

Ok, I'm cool with that :)
Best,
Steve
On Feb 3, 2016, at 3:12 PM, David Woods <notifications<EMAIL_ADDRESS>wrote:
I put the "print" in because without it, I get just the index number, while with it, I get the more descriptive text from the enumeration.
f.highlight
5
print f.highlight
PINK (5)
I wanted the example to match actual program behavior.
—
Reply to this email directly or view it on GitHubhttps://github.com/python-openxml/python-docx/pull/257#issuecomment-179522960.

good idea, thanks for letting me know David :)
Best,
Steve
On Feb 3, 2016, at 2:47 PM, David Woods <notifications<EMAIL_ADDRESS>wrote:
In renaming my branch, I've achieved the "squashing" of all commits into a single document, but have lost our commentary trail. I'll leave the previous branch in place for now if you want to review the older comments, and will close that pull request later.

You can view, comment on, or merge this pull request online at:
https://github.com/python-openxml/python-docx/pull/257
Commit Summary

Update font-color-highlight analysis document

File Changes

A docs/dev/analysis/features/text/font-highlight-color.rsthttps://github.com/python-openxml/python-docx/pull/257/files#diff-0 (187)

Patch Links:

https://github.com/python-openxml/python-docx/pull/257.patch
https://github.com/python-openxml/python-docx/pull/257.diff

—
Reply to this email directly or view it on GitHubhttps://github.com/python-openxml/python-docx/pull/257.

For acceptance testing, please take a look at:
https://github.com/DKWoods/python-docx/commit/b0203848b42d2133140e467af6b1c7ebd869971b
This modified tests/text/test_font.py to add tests for getting and setting font highlight.  I haven't changed it to reflect the change from WD_COLORINDEX to WD_COLOR_INDEX yet, not the change of the property to highlight_color, but should give you a good idea where I think I need to head.
It tests getting and setting all allowed highlight colors, as well as changing and removing highlight colors.  I should be able to make the WD_COLOR_INDEX change and the highlight_color change tomorrow morning.

Hi David -- these are unit tests, rather than acceptance tests. python-docx has a two-level test strategy, basically unit and integration levels. The acceptance tests are an integration test, exercising the capability from the API all the way down and back and using actual Word files instead of the stubs and so forth that make sense at the unit (isolated) level.
In general, the acceptance tests drive the unit tests; in the sense that the unit test to be developed is determined by where the acceptance test currently errors out. So the acceptance tests come very early, right after analysis and before implementation.
That said, these look good. I can take a closer look when we get to that stage. In the final commit sequence these would show up in separate commits, each with the code that makes that test pass.
Let me know if you need more :)

Btw, it just occurred to me. The acceptance test(s) basically exercise the protocol in the analysis document. So once the protocol is resolved, the acceptance test is to a large degree just implementing that in Cucumber (the acceptance testing language) to verify the API works as designed, end-to-end. Then the unit tests exercise the bits and pieces in isolated chunks. You really need both to establish reasonable assurance things are working the way you intended, and still working after future changes.
This last bit is an important motivator for having tests, even if you know exactly how to build a working implementation without them. They constitute your assurance that no one else will break your code going forward because no commits will be merged if they don't pass all the tests, including yours :)

I've now added the Acceptance Tests

I've now checked in code changes for the implementation of feature/highlight, including unit tests.  There seems to be a bit of weirdness with docx/enum/text.py.  My copy doesn't show your recent changes, despite synching the repositories, but I don't think I did anything that would affect that on your end.

Nothing you do on your side can affect the main repo because you don't have write privileges to that one, so no worries there :)
But you would have had to separately started tracking the feature/highlight branch on the main repo. I believe it would show up on your side as 'python-openxml/feature/highlight'.
This command would show it as such if it were there:
$ git branch -r  # list remote branches

If it doesn't appear, this will get it:
$ git fetch <remote> feature/highlight

This would require you have the python-oxml repo defined as a remote, then you substitute that name (probably 'python-openxml') for . This git command lists your defined remotes:
$ git remote

I expect 'origin' on your machine points to the DKWoods repo. If your repo is a direct clone of the python-oxml version then 'origin' would point to the main repo and you'd have a 'DKWoods' remote.
Let me know if you need more :)

Feature completed and merged into develop. Font.highlight_color will be included in the next release.


omit_rows.py program is not robust

The way we wrote this algorithm without Pandas, does not hold true when there is a line break within a cell. We noticed this issue with ampscz_pps01_baseline.csv.
So the suggestion is to verify line number using vim. If line number+2 matches reported lines, omit_rows.py could be used. Otherwise, the problematic lines need to be removed manually through vim. For files with line breaks, identifying the problematic lines through vim is also a difficult task.
FIX: use pandas to read, write NDA compatible CSV file.

We circumvented this issue by removing within-cell line breaks for some data structures. Example tbi01:
https://github.com/AMP-SCZ/utility/commit/358ae98cf588abf51cfdda07b1616fd38b2c2288


Fix Android build

Android builds failed after all the cast_to refactoring

The changes look fine, but having two commits with such short names is both overkill on the number of commits and underkill on their explicitness :)
Could you rebase to squash the two commits, and maybe edit the resulting commit log to something more meaningful like Fix refactored Object::cast_to in NO_SAFE_CAST branch?

Commits look good. I thought I has build with NO_SAFE_CAST but clearly I don't know how scons works. What's more worrying though: why didn't Travis catch this?

What's more worrying though: why didn't Travis catch this?

Travis doesn't build for Android or for Javascript (both required toolchains are completely overkill for CI sadly), which are the two platforms defining NO_SAFE_CAST.

What's more worrying to me: why didn't anyone report the build issue? :p

Uch, yeah, never mind. sleepytime 🥇


Proposal: Return function instead of undefined.

Now if I trying to call zundo funcs (undo/redo/clear) when undo / redo history is empty, zundo will return undefined instead of undo, redo, clear funcs.
I have 6 different stores and now I have to wrap each call with if (get().undo) get().undo() for each zundo funcs.
It's not an issue but looks a little dirty. What if zundo would return a function regardless of the content of the history?

That's a good catch. Would you be able to post a code snippet so I can be certain I understand the context?
Thanks.

I'll do it later today.

Sounds good. Thanks!

Hey! Sorry for the delay, but I'm too busy this week.
I will show an example with a bug this weekend.

Sounds good. I'm busy as well so this weekend will be great. Thanks!

This is no longer an issue in v2. Thanks for the great suggestion!


Rework on the example, include cuFFT and bug correction for CUDA-aware MPI/nccl

Hi Guys I have put all the work on cuFFT and CUDA-aware MPI together and I have also merged with the latest version of the main. A substantial change is the rework of the examples now only 4 are available: halo, 2dtest, fft_physical in Z and fft_physical in Z. All of them works also on GPU however only 3 (the 2 fft and the transpose) have been really modified to work on GPU.
i tested them using gnu 12 with mpich(mac) and openmpi with both generic and FFTW. For the GPU i tested NVHPC 22.7 with also NCCL. I would suggest for you to have a good look since changes might me quite large.

Thank you ! I will try to look at it deeply shortly. Please update

[ ] the Makefile, I think it does not cover the cufft back-end yet
[ ] the README to describe the GPU / NCCL preprocessor variables and the new optional dependency (cuFFT)
[ ] please add error checks on each call to cuda functions

Cheers

The back-end for the cuFFT works. I have a direct path in the Makefile that i have to make more general. The remaining is with the compiler flags as well as the NCCL. For all these libs only the INC is needed

Using the nvidia compiler, is it possible to automatic compile the code with cufft and the GPU / NCCL flags ?

Yes I am writing how to do this in the README. Just use the following
make CMP=nvhpc FFT=cufft PARAMOD=gpu CUFFT_PATH=/work4/scd/scarf562/eb-amd/software/NVHPC/22.7/Linux_x86_64/22.7/compilers

CUDA-aware mpi and NCCL are activated by the FLAGS _GPU and _NCCL

I have tried to build the code with the provided make command but it keeps failing. See this for instance.
I will try to fix it shortly, or will remove the GPU build from the automatic tests

A few extra minor comments.
I am not sure removing the IO tests is sharp because they are fixed and used in https://github.com/xcompact3d/2decomp-fft/pull/20. And the IO branch, when ready, will be merged. However, the tests are present there. Thus, even if we remove them here, we can restore them later. To be discussed.
In the test fft_physical_in_x, the following calling sequence is performed : decomp_2d_fft_init, test complex FFT, decomp_2d_fft_finalize, decomp_2d_fft_init, test real-complex and complex-real FFT, decomp_2d_fft_finalize. In my opinion, the expected usage for the 2decomp is decomp_2d_fft_init at the beginning of the program and decomp_2d_fft_finalize at the end. I am not sure it is sharp to test a program performing several fft_init / fft_finalize.


cosign sign: the error message of passing mis-ordered CA chain is not clear (misleading).

Description
I met this error when trying cosign sign.
$ COSIGN_PASSWORD="" ./cosign sign --upload=true --tlog-upload=false --certificate-chain staging_ca_bundle.pem --key import-cosign.key --cert cert --timestamp-server-url https://tsa.enforce.dev/api/v1/timestamp haskell@sha256:f33e8cb119fd5b436c39a3f45000bf732bce8e2ac71553ac5d307c10d01418ba

Error: signing [haskell@sha256:f33e8cb119fd5b436c39a3f45000bf732bce8e2ac71553ac5d307c10d01418ba]: getting signer: unable to validate certificate chain: cert verification failed: x509: certificate signed by unknown authority. Check your TUF root (see cosign initialize) or set a custom root with env var SIGSTORE_ROOT_FILE
main.go:74: error during command execution: signing [haskell@sha256:f33e8cb119fd5b436c39a3f45000bf732bce8e2ac71553ac5d307c10d01418ba]: getting signer: unable to validate certificate chain: cert verification failed: x509: certificate signed by unknown authority. Check your TUF root (see cosign initialize) or set a custom root with env var SIGSTORE_ROOT_FILE

The root cause is that I did not permutate the CA cert chain following the instruction:
$ ./cosign sign --help | grep root
      --certificate-chain string                                                                 path to a list of CA X.509 certificates in PEM format which will be needed when building the certificate chain for the signing certificate. Must start with the parent intermediate CA certificate of the signing certificate and end with the root certificate. Included in the OCI Signature

staging_ca_bundle.pem includes 13 self-signed root CA certs for different environments. There is no intermediate CA. The code signing cert is directly signed by one of the root CAs and that CA cert is in the second place in staging_ca_bundle.pem (1 cert above and 11 certs below). After I delete other root CA certs or put that cert to the bottom, it works.
The error message is a little bit misleading because cosign sign does not load SIGSTORE_ROOT_FILE anywhere (only loaded in cosign verify).
More info: https://sigstore.slack.com/archives/C01PZKDL4DP/p1682632649714239
/cc @znewman01 @haydentherapper
Version
GitVersion:    v2.0.2-10-gef1b2a02
GitCommit:     ef1b2a02076550980c5e3a5cd8b95f1ad72b52c0
GitTreeState:  clean
BuildDate:     2023-04-27T21:35:22Z
GoVersion:     go1.19.3
Compiler:      gc
Platform:      darwin/amd64

The longer-term fix is to clarify how --certificate-chain and friends work. It will probably happen as part of this issue: https://github.com/sigstore/cosign/issues/2472
The error message should get fixed regardless! It mentions $SIGSTORE_TRUST_ROOT but comes from a part of the code that doesn't use $SIGSTORE_TRUST_ROOT. And then we could be more specific about what failed. For instance, if the error was "validating certificate chain (from --certificate-chain) failed because ..." this would be much easier to debug.

The root cause is that --certificate-chain is not a bundle, it's the chain to verify --certificate. The chain should be compromised of PEM-encoded certificates starting with the intermediate and ending with the root. See the help text, path to a list of CA X.509 certificates in PEM format which will be needed when building the certificate chain for the signing certificate. Must start with the parent intermediate CA certificate of the signing certificate and end with the root certificate. Included in the OCI Signature
On verification, you can specify SIGSTORE_ROOT_FILE pointing to a bundle to N roots and intermediates, and it will properly split up the certs accordingly.
The error message is because it was picking the wrong root to verify the provided certificate (which it does on signing, to make sure the chain is valid).


Revert "Tempus-467, 468, 655"

Reverts hashmapinc/Tempus#668
Reverting this code because of the following errors:-
error  Unable to resolve path to module 'well-log-viewer/node_modules/d3/build/d3'  import/no-unresolved
This is because  the module is imported inside the well-log-viewer, import should be used on the main node_modules of the application. Please correct this.

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


v0.2

Coverage increased (+0.02%) to 87.697% when pulling 21c8206ff03c8beaeacff06a7d807304597e4974 on develop into 2a0c832a50fca3b3509d131d5901a30e2299bbc9 on master.

Coverage increased (+0.02%) to 87.697% when pulling 21c8206ff03c8beaeacff06a7d807304597e4974 on develop into 2a0c832a50fca3b3509d131d5901a30e2299bbc9 on master.


Stepper step routes

Feature request:
Bind Stepper steps to child routes similar to Tabs and Navigation.
This might roughly look like
.routing.ts
export const routes: Routes = [
{
  path: 'steps',
  component: MyStepperComponent,
  children: [
  {
    path: 'step1',
    component: FirstStepComponent,
    children: [],
  },
  {
    path: 'step2',
    component: SecondStepComponent,
    children: [],
  }
}];

my-stepper.component.html
<mat-horizontal-stepper>
  <mat-step [routerLink]="step1">
  </mat-step>
  <mat-step [routerLink]="step2">
  </mat-step>
  <router-outlet></router-outlet>
</mat-horizontal-stepper>

What is the expected behavior?

When I switch between steps, route url is updated.
When I navigate to a specific stepper step route, the step is selected.

What is the current behavior?
Not possible out of the box
What is the use-case or motivation for changing an existing behavior?
Child routes for each individual step of stepper

Is there a workaround at the moment?

Would really need this as well.

will be really nice to have this feature.

👍 +1

👍 +1

+1, not easy to adapt this

Need to build a breadcrumbs and thought the stepper might be a great option. Now looking how would you bind the routes to the steps. Anyone succeed doing that?

Has anyone figured this out yet?

@Alex-Samari
it's not an elegant solution, but I've come up with a workaround for now
template:
// register to step changes
<mat-horizontal-stepper (selectionChange)="selectionChanged($event)">
	// show each step dynamically
	<mat-step *ngFor="let step of steps"
			  [label]="step.title">
		// hide the router outlet if it isn't the current step
		<router-outlet *ngIf="i === selectedStep"></router-outlet>
	</mat-step>
</mat-horizontal-stepper>

component:
...

// dynamic source of steps
public steps: { template: string, title: string }[];

// keep track of the current step so as to hide offscreen router outlets
public selectedStep: number = 0;

// handle step routing
selectionChanged(event: any) {
	this.selectedStep = event.selectedIndex;
	let step = this.steps[event.selectedIndex];
	this.router.navigateByUrl(step.template);
	}
...

because the Material Stepper component doesn't remove the non-active steps from the DOM, you'll have (n-1) extra router outlets being rendered offscreen, hence the *ngIf on the router outlet
my situation calls for a dynamic number of steps, but of course you could hard-code the steps as @cubidobusinesssolutions uses for example

@tmerle-invsqr
This is more than elegant! Also @cubidobusinesssolutions could also use NgFor and define the templates in the ts file for a much more cleaner code. I think you just turned my 300 line component into a less than 100 lines component :)
One question though: you have *ngIf="i === selectedStep" on your router outlet. What does "i" stand for? Can you update the ts file ?
Thanks again!

One question though. How do you load the form groups from the separate components you're loading? Can I see the rest of your ts file?

@Alex-Samari
My scenario doesn't actually use form groups, but I would suggest either

create a service to handle sharing the form groups between components
use ngrx store to share form groups between components
if you're on Angular 7.2 or greater, create the form groups prior to route navigation and pass them using NavigationExtras

Like I said, I'm not using form groups (at least none of my current templates use them), but I'm using a combination of (2) and (3) with route resolvers.

Each route corresponds to a component (template)
Each component takes data from an array of urls (the url array is dynamic and can change at runtime)
Each component's resolver is responsible for fetching data from the urls, extracting it in the format that the component expects, and updating the ngrx store with the data

I simplified some of the code in the original example, but I'll include it below in its unmodified state.
first, the component that contains the MatStepper:
export class WorkflowComponent implements AfterViewInit {

	public workflow$: Observable<Workflow>;
	public selectedStep: number = 0;

	@ViewChild(MatHorizontalStepper) stepper: MatHorizontalStepper;

	constructor(
		store: Store<AppState>,
		private route: ActivatedRoute,
		private router: Router
	) {
		this.workflow$ = store.pipe(select(workflowSelector));
	}

	ngAfterViewInit() {
		// when new data arrives, check to see if we need to reload the first step's route
		this.route.data.pipe(
			// make sure there isn't a child route loaded
			filter(() => this.router.routerState.snapshot.url.endsWith(WorkflowResolver.route)),
			// get the current workflow
			switchMap(() => this.workflow$),
			filter(workflow => !!workflow)
		).subscribe(workflow => {
			// get first step of workflow
			let page = workflow.pages[0];
			// load first step's route
			this.router.navigateByUrl(`${WorkflowResolver.route}/${page.template}`, { state: { urls: page.onload } });
			// reset the Stepper in case we weren't already at the initial step
			setTimeout(() => this.stepper.reset());
		});
	}

	/**
	 * load child route for selected step
	 *
	 * @param event contains the index of the currently selected step
	 */
	selectionChanged(event: StepperSelectionEvent) {
		setTimeout(() => this.selectedStep = event.selectedIndex);
		this.workflow$.pipe(take(1)).subscribe(({ pages }) => {
			let page = pages[event.selectedIndex];
			this.router.navigateByUrl(`${WorkflowResolver.route}/${page.template}`, { state: { urls: page.onload } });
		});
	}

}

then, in the resolver for one of the templates:
this is where you could use a shared service instead of ngrx, or skip the resolver entirely and resolve the data directly in the component
export class MasterDetailResolver extends BaseResolver implements Resolve<any> {

	static route: string = "MasterDetail";

	constructor(
		private store: Store<AppState>,
		router: Router
	) {
		super(router);
	}

	resolve(
		route: ActivatedRouteSnapshot,
		state: RouterStateSnapshot
	): Observable<any> {
		let urls = this.getUrls("master_detail_urls", state.url.endsWith(route.url[0].path));

		this.store.dispatch(new MasterRequested({ urls }));

		return of(undefined);
	}
}

export class BaseResolver {
	constructor(
		protected router: Router
	) { }

	/**
	 * gets an array of urls that were passed to the path, using localStorage as a backup
	 * in case the path is a parent or the page is being reloaded
	 *
	 * @param key the localStorage key to cache this path's data under
	 * @param useExtras indicates that this path is the one currently being navigated to;
	 * should be false for parent paths, as `getCurrentNavigation()` only gets data for youngest path in route
	 */
	getUrls(key: string, useExtras: boolean): string[] {
		let nav = this.router.getCurrentNavigation();

		let urls =
			// attempt to get data from current navigation extras
			(useExtras && nav.extras.state && nav.extras.state.urls) ||
			// or from localstorage
			JSON.parse(localStorage.getItem(key));

		// put data in localstorage in case we need it later
		localStorage.setItem(key, JSON.stringify(urls));

		return urls;
	}
}

I'll let you use your imagination where the ngrx configuration is concerned, but I think the above code covers most of what you need to start sharing data between the MatStepper component and child routes.
Additionally, I edited the original comment to include the let i = index bit in the *ngFor statement. Accidentally got stripped out during my simplification.
Hope that helps!

@tmerle-invsqr
Wow! Thanks for the detailed explanation. I'm still not very comfortable with my routing skills in Angular so I figured out a way to use viewChild in order to load the components. My biggest issue was that it was giving me an error saying cannot read property "formGroup" of null but I fixed that using a ternary expression on my steps object (I added the form group as a key value pair in the array of step objects similar to what you have defined above) to only set the formGroup if the formComponent has been loaded. Of course it's not as elegant of a solution as what you have done and I will definitely come back to this when I learn more about Routing.
Thanks again!
-Alex

The workaround is a nice attempt but I can't get it to work? I think its because I have a parent router-outlet in the path and the ngIf is preventing the route navigator doing its thing. Any parent route selected items lose their active status and the child routes stop working when their child route is removed/ or added back from/to the DOM with the ngIf - that's my guess as it works initially when first selecting the child routes via the stepper.
Is there any progress on this request being implemented with the mat-stepper?

@SteveHindmarsh
I didn't understand your question. What are you trying to do exactly? I figured out a "proper" way to achieve what OP is trying to do. I can help you with that if that's what you mean

@tmerle-invsqr, a little add to your solution:
In template:
<custom-stepper-component (selectionChange)="selectionChanged($event)">
  <mat-step *ngFor="let step of steps; let i = index" [label]="step">
	<router-outlet *ngIf="i === selectedStep"></router-outlet>
  </mat-step>
</custom-stepper-component>

In routes module file:
const routes:  Routes  = [
  { path:  'project-add-wizard',
    component:  ProjectAddWizardComponent,
    children: [
      {path: 'step1', component: ProjectAddWizardStep1Component},
      {path: 'step2', component: ProjectAddWizardStep2Component},
      {path: 'step3', component: ProjectAddWizardStep3Component}
    ]
  }];

In controller:
ngOnInit() {
    this.steps = this.route.snapshot.routeConfig.children.map(child => { return child.path });
    let step = this.steps[0];
    this.router.navigate([step], { relativeTo: this.route });
  }

selectionChanged(event: any) {
    this.selectedStep = event.selectedIndex;
    this.router.navigate([this.steps[this.selectedStep]],{relativeTo:this.route});
  }

In this way we are using as source of steps the same children defined in the route module, and not need for router.navigateByUrl(). :-D

here is how I do:
export class XXXComponent implements OnInit {

    @ViewChild('stepper', {
        static: true
    }) stepper: MatStepper;

    constructor(
        private _location: Location
    )  {}

    ngOnInit() {
         if (this._location.isCurrentPathEqualTo('/xxpage-step0') {
            this.stepper.selectedIndex = 1;
        }
        if (this._location.isCurrentPathEqualTo('/xxpage-step1') {
            this.stepper.selectedIndex = 1;
        }
    }
}

@1011178l :
The thing about your solution is that when you add a lot of children steps you will have to modify both: the routes module file and the XXXComponent file. In @armbp1972 solution (that in fact is myself but with another account), in the component controller, in ngOnInit() all the possible child routes are captured from  the ActivatedRoute passed by to the controller when it's created.
The advantage is that you only need to modify one file when adding children (the routes module).
In fact in my solution you can see that the array of steps is used forward bellow ( in the method "selectionChanged"). The use of that is for triggering the change in the route, and so in the component been shown, from inside the same step.
You can see the full implementation of a custom component I'm working in, based on this idea (thanks to @cubidobusinesssolutions & @tmerle-invsqr for the start ideas) at [https://github.com/abpprkonsalting/angular-drag-stepper]. Hope it can help you. :-D

I'm just wondering what value it brings to assign a route to each step in the stepper. Maybe I'm missing something..
I would utilize the stepper in an onboarding proces and to split it up into different routes does not make so much sense for me, because if you're onboarding a new client / user you would always start in the beginning and have the user go through all steps until reaching the final step. Do you have a scenario where it would make sense?

Maybe you should create a second stepper component that extends the base component. e.g.

This would be really useful in integrating w/ the browser's back and forward actions. Currently a weak point of my app is that if a user presses back, unless I have a script warning them, they could lose their work by using their browser's back button.


refmt incorrect for let _ = foo

$ echo "let _ = foo" | refmt -parse ml -print re -use-stdin true -is-interface-pp false
foo;

The expected result is:
let _ = foo;

This matters since the expected form can be used to silence warning 32 while the current output does not.

But doesn't it treat them the same? Are they both not representing the same thing?

The execute the same by default but their intent is different. The _ is explicitly saying "I don't care about the result of this evaluation" while the ; says "this really should return unit."
The difference is more pronounced if strict sequences are enabled since that enforces a unit return type in the ; case.

At the top level too?

For 1; no error, 1;2 error.  So it works in OCaml but only if there's only one top level expression.

Another angle on this: I hit it trying ppx_compare, which generates functions such as compare_t and adds let _ = compare_t so that warning 32 does not fire if the generated code is not used.  The result of refmt, removing the let _, disables this and results in warning 32 firing anyhow.

Ah, I realize this problem was only when formatting from ml. In that case, I wondered why ppx_compare would even effect this since ppx operates on the raw tree. It must be because Cristiano upgraded Infer to 4.03 and is using a more hacky approach to reformatting, but now with Fred's 4.03/4.04+ support, you shouldn't hit it anymore I believe.

this still exists...

@jaredly I can't repro the original report:
$ echo "let _ = foo" | refmt --parse ml
let _ = foo;

Did I misunderstand?


Support gRPC exception handler for client-side

Motivation:
This PR attempts to support GrpcExceptionHandlerFunction for gRPC client side
Modifications:

Add GrpcClientBuilder.exceptionHandler which accepts a GrpcExceptionHandlerFunction
Modify all GrpcStatus.fromThrowable(Throwable) calls to use GrpcStatus.fromThrowable(GrpcStatusFunction, RequestContext, Throwable, Metadata) instead

Result:

Closes #5347

Let me go ahead and merge this 🙇  Thanks for the review all


Automatically use container if volumes are mounted on project based service

Describe the bug
By default Tye loads C# projects directly on the host unless there is a need for a container. If another service uses replicas or uses a dockerfile or a docker image, Tye mounts the projects as a volume to a container used as proxy.
Unfortunately, if the Tye configuration file specifies an additional mount, that is ignored when the project is executed on the proxy.
The volume is correctly loaded when specifying --docker.
I noticed the issue because I am doing local development and I saw that my local override to AWS keys is being ignored and my project couldn't find my fake keys (required to access the local installation of DynamoDB).
To Reproduce
Here is a simple example:
name: my-secret-project

services:

- name: api
  project: src/API/API.csproj
  bindings:
    - protocol: http
      port: 5001
  volumes:
    - source: ./.fakeawscredentials
      target: /root/.aws/credentials
  tags:
    - api

- name: dynamodb
  image: amazon/dynamodb-local
  args: -jar DynamoDBLocal.jar -sharedDb -dbPath /home/dynamodblocal/data/
  bindings:
    - containerPort: 8000
      port: 5021
      protocol: http
  volumes:
    - source: ./data/dynamodb
      target: /home/dynamodblocal/data
  tags:
    - dynamodb

The configuration file has a simple ASP.NET Core application. In the root of the solution I have the fake AWS profile that I want to use to use fake AWS credentials.
[Dev]
aws_access_key_id=************
aws_secret_access_key=************
region=eu-north-1

Here are the commands I ran to validate the faulty behavior.
# no need for proxy
$ dotnet tye run --tags api

# proxy needed
$ dotnet tye run
$ docker exec <container id> ls -al /root
total 24
drwx------ 1 root root 4096 Aug 23 16:29 .
drwxr-xr-x 1 root root 4096 Dec 12 15:35 ..
-rw-r--r-- 1 root root  571 Apr 10  2021 .bashrc
drwxr-xr-x 1 root root 4096 Aug 23 16:28 .dotnet
drwxr-xr-x 3 root root 4096 Aug 23 16:29 .nuget
-rw-r--r-- 1 root root  161 Jul  9  2019 .profile

# project loaded in a container
$ dotnet tye run --docker
$ docker exec <container id> ls -al /root
total 28
drwx------ 1 root root 4096 Dec 12 15:41 .
drwxr-xr-x 1 root root 4096 Dec 12 15:41 ..
drwxr-xr-x 3 root root 4096 Dec 12 15:41 .aspnet
drwxr-xr-x 3 root root 4096 Dec 12 15:41 .aws
-rw-r--r-- 1 root root  571 Apr 10  2021 .bashrc
drwxr-xr-x 3 root root 4096 Dec 12 15:41 .microsoft
-rw-r--r-- 1 root root  161 Jul  9  2019 .profile

Further technical details
$ tye --version
0.11.0-alpha.22111.1+3edef5428949c518c078844d6438e5ba86fce600

Just so I'm clear, are you expecting tye to detect the volume mount and switch to a container for the service?

That would be the icing on the cake.
The intent of my issue is that once it was detected the need for a proxy, the proxy should mount the specified volumes other than the project folder.

I realized the description of the bug wasn't clear enough so I reformulated as follows

By default Tye loads C# projects directly on the host unless there is a need for a container. If another service uses replicas or uses a dockerfile or a docker image, Tye mounts the projects as a volume to a container used as proxy.

Yea, this has nothing do with proxy containers. Tye should detect the volume mount and treat this like a container scenario.

Can you still attach the debugger to a project ran into a container? (Never tried myself)

Not easily. I haven’t looked into what it would take to make that easy

In this specific case, I think it would be easier to express those as secrets that flow into the project service.


NETOBSERV-1545: Expose a counter of BPF drops

Description
cilium doesn't seem to have a way to read globals from ebpf program I will keep this PR as draft till we have a way to read global from userspace
https://cilium.slack.com/archives/C027KBX679U/p1711370379468299
so perCPU array map will be used to hold the global counter and userspace will read, aggregate and update the metrics
Dependencies

n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[ ] Will this change affect NetObserv / Network Observability operator? If not, you can ignore the rest of this checklist.
[ ] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[ ] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

/ok-to-test

/ok-to-test

Codecov Report
Attention: Patch coverage is 0% with 18 lines in your changes are missing coverage. Please review.

Project coverage is 33.88%. Comparing base (3a12ba2) to head (c0b7a79).
 Consider uploading reports for the commit a2ba1b4 to get more accurate results

Files
Patch %
Lines

pkg/ebpf/tracer.go
0.00%
16 Missing :warning:

pkg/ebpf/bpf_x86_bpfel.go
0.00%
1 Missing :warning:

pkg/ebpf/tracer_legacy.go
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #304      +/-   ##
==========================================
- Coverage   34.04%   33.88%   -0.16%
==========================================
  Files          47       47
  Lines        3836     3854      +18
==========================================
  Hits         1306     1306
- Misses       2444     2462      +18
  Partials       86       86

Flag
Coverage Δ

unittests
33.88% <0.00%> (-0.16%)
:arrow_down:

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

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

/approve


Add option to bind key that shows visual bubble

Currently visual bubble is visible after pressing b or B. It should be possible to set this in options.

I want to take this issue.


[TSCUtility] Correct semantic version parsing and comparison

This PR is similar to apple/swift-package-manager#3486, and likely conflicts with #212.
parsing
The semantic versioning specification 2.0.0 states that pre-release identifiers must be positioned after the version core, and build metadata identifiers after pre-release identifiers. It also states that both pre-release and build metadata identifiers can contain "-" (hyphens), while at the same time "-" is used to indicate where pre-release identifiers begin.
In the old (currently shipped) implementation, if a version core was appended with build metadata identifiers that contain "-", the first "-" would be mistaken as an indication of pre-release identifiers thereafter. Then, the position of the first "-" would be treated as where the version core ends, resulting in a false negative after it was found that the version core (plus a part of the build metadata identifiers) contained non-numeric characters.
For example: the semantic version 1.2.3+some-meta.data is a well-formed, with 1.2.3 being the version core and some-meta.data the build metadata identifiers. However, the old implementation of Version.init?(_ versionString: String) would incorrectly treat 1.2.3+some as the version core and meta.data the pre-release identifiers.
The new implementation fixes this problem by restricting the search area for "-" to the substring before the first "+".
The initialiser wherein the parsing takes place has been renamed from init?(string: String) to init?(_ versionString: String) which calls init(versionString: String) throws. The old initialiser is not removed but marked as deprecated for source compatibility with SwiftPM. With the new initialiser name, Version now conforms to LosslessStringConvertible.
In addition, the logic for breaking up the version core into numeric identifiers has been rewritten to be more understandable.
comparison
Version already conforms to Comparable, but Comparable does not provide a default implementation for ==, so the compiler synthesises one composed of member-wise comparisons. This leads to a false false when 2 semantic versions differ by only their build metadata identifiers, contradicting SemVer 2.0.0's comparison rules.
This PR adds an implementation of == to Version that returns true iff one version is neither greater nor less than the other. One consequence, though, is that now two versions that differ by only their build metadata identifiers are not allowed in the same set, and one assertion in the tests is inverted accordingly.
Also, because Version declares conformance to Hashable, this PR adds a custom hash(into:) that aligns with the custom ==.

When given an invalid version string, most Version initialisers crash instead of creating a dummy version 0.0.0 like what they do in SwiftPM. How do I write tests to check that invalid strings do result in fatalerror without actually crashing the tests?

When given an invalid version string, most Version initialisers crash instead of creating a dummy version 0.0.0 like what they do in SwiftPM. How do I write tests to check that invalid strings do result in fatalerror without actually crashing the tests?

the way to do this with Swift would be a throwing or failable initializer, fatalError is designed for more sever assertion like situation when the program must stop running due to risk of memory corruption etc

the way to do this with Swift would be a throwing or failable initializer, fatalError is designed for more severe assertion like situation when the program must stop running due to risk of memory corruption etc

I agree that fatalError doesn't seem right in Version's initializers. Instead of changing them to throwing or failable, which is going to affect their call sites in SwiftPM, what do you think of having them creating 0.0.0 dummy versions, like SwiftPM's Version initialisers do?
Also, should I change them as part of this PR, or in a follow-up PR?

what do you think of having them creating 0.0.0 dummy versions, like SwiftPM's Version initialisers do?

IMO returning dummy versions is not ideal, and a throwable or optional feels safer. that said, I dont have the history on why SwiftPM does that. @abertelrud @neonichu wdyt?

Also, should I change them as part of this PR, or in a follow-up PR?

personally, I always prefer smaller PRs where possible

what do you think of having them creating 0.0.0 dummy versions, like SwiftPM's Version initialisers do?

IMO returning dummy versions is not ideal, and a throwable or optional feels safer. that said, I dont have the history on why SwiftPM does that. @abertelrud @neonichu wdyt?

Creating dummy versions (or any kind of value, really) on error is a surprise to me, and seems wrong.  So if SwiftPM is doing that it should probably change (in a separate PR to keep each one as focused as possible), instead throwing an error if there is a problem.  The caller can then always decide to substitute a default value after reporting the error, if that's appropriate.

Sorry for the late response.

So if SwiftPM is doing that it should probably change (in a separate PR to keep each one as focused as possible), instead throwing an error if there is a problem.

Would a failable initializer be better than a throwing one? I don't remember where I read it (I can't find it in any documentation or the API design guidelines), but I remember reading that failable initializers should be used where the reason of the failure is clear. For example, init?(string:). And throwing initializers should be used where there are many reasons why it can fail.

@swift-ci please test

Regarding the fatalError in one of TSC's Version.init and dummy version 0.0.0 in one of SwiftPM's, I just checked them again with fresh eyes.
Both of them happen in init(stringLiteral value: String), which is a requirement of ExpressibleByStringLiteral. Because the requirement is non-throwing and now-failable, neither throwing nor failable initializers can satisfy it. This leaves fatalError and dummy version as the only solutions.
I don't know if it was even correct to make Version be ExpressibleByStringLiteral to begin with, since it only works with specifically formatted strings. However, the correctness probably doesn't matter much now, because it doesn't seem possible to either remove or replace the conformance, because doing so is a big source break.
I also don't know which is the better choice between fatalError and dummy version. On one hand, it's (probably) better to crash than to create invalid output from invalid input; on the other hand, SwiftPM (probably), like the compiler, shouldn't crash even when the input is invalid. However, regardless of which one is better, I think TSC and SwiftPM should be consistent and use the same one.

I don't know if it was even correct to make Version be ExpressibleByStringLiteral to begin with, since it only works with specifically formatted strings.

Not entirely sure, but I am assuming this was done to be able to use literal strings for versions in a package manifest which does seem desirable. That said, it should be possible to express that in a different way today, e.g. possibly an enum with a case for an invalid version?

@WowbaggersLiquidLunch Apart from the question of how this API should potentially look like, I think for the purpose of this PR we can leave it as-is and you could write all your tests around the fallible initializer that also exists. What do you think?

Sorry for the late response!

Not entirely sure, but I am assuming this was done to be able to use literal strings for versions in a package manifest which does seem desirable.

Yes I think this is exactly why SwiftPM's Version is ExpressibleByStringLiteral. However, I don't think TSC's Version is used in the manifest.

That said, it should be possible to express that in a different way today, e.g. possibly an enum with a case for an invalid version?

I haven't thought of it. It does seem like a possible solution though.

Apart from the question of how this API should potentially look like, I think for the purpose of this PR we can leave it as-is

I agree. What this API should look like should be its own PR. Would it be better if I move this discussion to the forums?

you could write all your tests around the fallible initializer that also exists.

This prompted me to check the tests again, and I think init?(_) is missing some tests for invalid inputs. I'm going to add those tests.

@swift-ci please smoke test

@neonichu Do you think this can be merged at this point, given that it's blocking #212?

@swift-ci please test

Sorry for the new force-push. Just fixed a few more typos and squashed it with one of the commits. No more changes to this PR unless requested.

@swift-ci please test


[REQUEST] Remove Empty Tabs

If MAIN button is empty it should disapear

Yeah, I agree with this one. Hopefully, it's possible.


ERROR install degit

can anyone help me, why is my DEGIT like this?👋✋

There is a old PR about this: https://github.com/Rich-Harris/degit/pull/179
But it has not yet been merged.
Essentially the --help does not work. Otherwise the degit works fine (apart from gitlab).
This project isn't 100% actively maintained. If you want to checkout a fork that has that PR and others merged (gitlab functionality fixed):
https://github.com/tiged/tiged

Thank you!👍👍


Package up gallery for better version control

Right now the jump-start-gallery is a submodule, and each user must update it manually. But there is no indication of whether changes are breaking, or how to incorporate them. It would be far better for the gallery (and related scripts) to be published to npm, so they could be a dependency for users rather than a submodule.

Working on branch npm-package in both jump-start-gallery and jump-start.
TODO:

[ ] Why does jump-start dev work, but npm run dev  -> jump-start dev gives the typescript/babel error?
[ ] Add build command
[ ] Add storybook command
[ ] Add build-storybook command
[ ] Add update-readme command
[ ] Add update-screenshots command

Maybe packing up a full-on NextJS app is not the right approach. I keep hitting issues with typescript, babel, swc, env variables, etc.
Another approach would be to rewrite the gallery app to be a static site that just loads in the starters data. The static site would be exported in the jump-start-tools package. Then, the jump-start build command could:

Create a starters.json file for the given jump-start repo
Drop that into the static site

A downside is that there would be no more "dev" mode. You'd have to rebuild starters.json and refresh the static site to see any changes appear. Potentially that could be helped by using NextJS's output: standalone option, which outputs a server.js file that is essentially next start. Though I'm not sure that would include hot reloading anyway.

I've been exploring vite instead, and I think it's going to work. I need to rewrite the gallery. But importantly I've successfully tested that a jump-start command can start the vite server from within node_modules, referencing the starters in the jump-start repo.
Sidenote: This terminology is super confusing ...


Homebridge syntax error

I am busy with the Homebridge config.json file. Every time I get an error message (config.json syntax error) what am I doing wrong and can someone help me? This is the following script
{
"mdns": {
"interface": "<IP_ADDRESS>"
},
"bridge": {
"name": "homebridge",
"username": "22:34:56:78:9A:BC",
"port": 41813,
"pin": "031-45-154"
},
"description": "piet",
"platforms": [
{
"platform": "config",
"name": "config",
"port": 8080,
"sudo": false
}
],
"accessories": [
{
"name": "Woonkamer",
"apiroute": "http://<IP_ADDRESS>",
"accessory": "Daikin-Local"
},
{
"name": "Slaapkamer-1",
"apiroute": "http://<IP_ADDRESS>",
"accessory": "Daikin-Local"
},
{
"name": "slaapkamer-2",
"apiroute": "http://<IP_ADDRESS>",
"accessory": "Daikin-Local"
}
],
"platforms":[
{
"platform": "Tahoma",
"name": "My TaHoma Box",
        "user"<EMAIL_ADDRESS>        "password": "MyPassw0rd",
    }
]

}

You have two platforms section in the JSON file,
1 adding the config platform at line 12, then again at line 34 adding Tahoma.
Take another look at the sample configuration files, you can only add all platforms in the platform section and accessories later e.t.c.
Presumably you have an iPhone because you're going down the homebridge path, give this app a go. He makes life super easy in an IOS App to configure Homebridge.
https://linkdhome.com/articles/2019/5/1/set-up-homebridge-easily-with-an-app
https://apps.apple.com/au/app/homebridge-for-raspberrypi/id1123183713


V0.12.0.x ds coincontrol

When DS inputs are selected in coincontrol:

spend exactly these inputs
allow to spend more than 0.1 as a fee (note: still will respect non-ds fee limits)

nice!


[SP-2589] - Backport of PDI-14999 - 'Split Field to Rows' step fails with NullPointerException after import into repository (5.4 Suite)

manually handle null value of delimiter property
(cherry-picked from 47560270a85b39b4767f4db9d19998c182063e6b)

@brosander, review it please. This is a backport of https://github.com/pentaho/pentaho-kettle/pull/2282

http://<IP_ADDRESS>:8080/job/wingman/18/

Base build failed with return code 1

Base build failed with return code 1

Build Commands:
Build:

ant -Dpentaho.coding.standards.version=1.0.4 -Djunit.jvmargs=-XX:PermSize=256m -f engine/build.xml clean-all resolve jacoco publish-local

Cleanup:
rm -r ~/.ivy2/local || echo no publish local to remove
Changed files:
engine/src/org/pentaho/di/trans/steps/splitfieldtorows/SplitFieldToRows.java
engine/test-src/org/pentaho/di/trans/steps/splitfieldtorows/SplitFieldToRowsTest.java
Unit test coverage change:
org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta:

Instruction Change : -.08%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta:

Instruction Change :  + .07%

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta:

Instruction Change :  + .18%

org.pentaho.di.trans.steps.splitfieldtorows.SplitFieldToRows:

Branch Change :  + 5.26%
Complexity Change :  + 12.50%
Instruction Change :  + 13.99%
Line Change :  + 16.67%
Method Change :  + 60.00%

org.pentaho.di.trans.steps.splitfieldtorows.SplitFieldToRowsData:

Complexity Change :  + 100.00%
Instruction Change :  + 100.00%
Line Change :  + 100.00%
Method Change :  + 100.00%

org.pentaho.di.trans.steps.splitfieldtorows.SplitFieldToRowsMeta:

Complexity Change :  + 17.65%
Instruction Change :  + 3.25%
Line Change :  + 7.69%
Method Change :  + 23.08%

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta:

Instruction Change : -.17%

@brosander, review it please


Build failed with MSVC_BATCH and spaces in path

When target dir path has spaces and MSVC_BATCH set to true  - cl.exe failed.
Actually it is cl.exe "feature" - Target dir needs to end with slash, not backslash.
In SCons code msvc_output_flag function return '/Fo${TARGET.dir}' + os.sep
Should be '/Fo${TARGET.dir}/'
Here is confirmation https://social.msdn.microsoft.com/Forums/vstudio/en-US/c5992cfc-083a-4472-bf1d-e3151cae2f32/clexe-how-to-setup-path-for-objects-dir-fo-which-contains-spaces?forum=vcgeneral

Can you bring this issue to the scons users mailing list? We prefer that such are discussed there before a bug is filed.
This get's more eyes on the issue, provides workarounds, prevents duplicate bugs, and also invalid bugs from getting files.

Can you create an example to reproduce this? Preferrable a single SConstruct? and/or zip file with a couple source files and an SConstruct?


Nuget package includes all source code

The NuGet package should only contain the compiled assemblies.  Version 1.33.7 of the NuGet package includes the compiled assemblies as well as all of the source code; that is it includes both the \lib and \src directories.  The \src directory should not be included in the NuGet package.  If people want the source code, that's what GitHub is for.

Addressed by #391