Chapter 7 of Statistical Rethinking 2nd Edition

As promised (#67) here's a first stab at Chp_07. It turned out to be a bit more of a beast than I expected, and there are a few things that aren't quite right - any corrections/pointers appreciated. You said you might be able to help, @aloctavodia?
I've stolen quite a few bits from Chapter 6 of the 1st Edition (these are cited).
There are a few comments throughout where I hit trouble, but the main ones are:

[x] Code 7.3-7.10 I've use MCMC here, Chapter 6 of the 1st Edition used OLS. As a result the credible intervals on Figure 7.3 are much larger here than in the book, and following LPPD estimates are quite different from numbers in the book (in absolute, not relative magnitude).
[x] Code 7.18 The uncertainties here are much larger than in the book (they also were in 1st Ed). I assume this is a MCMC vs. OLS problem again?
[x] Code 7.27-7.30 Can't work out how to reproduce the book results using the arviz.waic function. Mainly because I'm not sure how outputs of arviz.waic and rethinking's WAIC function are different. Neither documentation is particularly informative about what the functions actually calculate. A barrier in arviz.waic is that setting pointwise=True doesn't seem to return a pointwise result (returns identical if set to False) as it does in WAIC, which makes a lot of the book examples impossible. Could probably work out how to do it manually, but feels like I shouldn't have to! What have I missed?!
[ ] Code 7.31 My solution here is ugly. Couldn't find an obvious way to calculate pairwise dSE using arviz as a single number.
[x] Code 7.43 Is also blocked by my confusion over the behaviour of setting pairwise=True in arviz.waic.

Thanks for the comments @aloctavodia. I've dealt with most of them, as well as re-done the back end of the notebook... it seems I was working from a book draft, and the final version contained quite different examples!
Just awaiting clarification on your the dataset_dict in your suggestion above, then I'll get it into merge-able state.

OK @aloctavodia, I think I've taken care of your suggestions. Apart from the several issues that you'll probably find that need correcting, I think this is ready to merge :smile:

LGTM, I will add a semicolon at the end of the last line of matplotlib functions to avoid the ouputs. Regarding the computation of the pairwise dse. I think we can revisit it after we decide what to do in ArviZ.

Ah! Keep forgetting about that. Just fixed it, @aloctavodia.


Notification webhook support customized request body

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
New Notification
🔖 Feature description
Currently, we use FlashDuty (a SAAS similar to PagerDuty) to handle on-call notifications, including making phone calls. However, the webhook should pass the request body to FlashDuty.
✔ Solution
Notification support customized request body when use webhook.
❓ Alternatives
No response
📝 Additional Context
No response

already exist in 1.23.0


IAM 439

IAM-439: background check for components health

feat: add instrumentation to deep health check
fix: fixed deep health check instrumentation
fix: updated deep health check unit test
feat: refactored deep health check instrumentation
fix: fixed lack of code coverage in status unit tests
fix: drop MetricInterface and adjust interface methods
fix: add set methods for each metric
fix: move monitoring to service layer
fix: adjust wiring of status pkg
fix: add components check endpoint
feat: add healthcheck package for background tasks
fix: use check statuses in the service layer

PR based on branch v2/IAM-387 and pending review of that we will decide if this goes ahead in its form of the one based on v1/IAM-387 or something else
NEEDS TO BE REBASED

reason to keep the Ready methods on the status package is because nobody else care about the functionality, we could embed them into the internal/kratos and internal/hydra but that would require a (needed) refactoring of how we use the clients
in terms of scope, fair point, at the same time this is a PR that needs to be rebases on 2 different branches (see your IAM-387-**** and one of the vX/IAM-387) and has only 3 commits relative to the functionality
Plus it s a mere +300-150ish changes so wouldn't go smaller than that


@( Bug calendar pop up

Describe the bug
The calendar is not popping up when you do @( it is set to this in the app
I even changed it to (@reminder and it still does not pop up the calendar
Expected Behavior
Calendar for date and time should pop ip
Steps to reproduce
Type the characters associated to the request such as (@
Nothing comes up
Running latest iOS
Operating system
iOS

Let me know if you need any other details


Inconsistent state when dispatching an action inside a subscription

Hi,
I noticed something weird. Tried to make the example as simple as possible, that's why it is so silly (the production code where we have a similar issue is much more complicated).
Reducer
export type State = string[];
const initialState = [];
export function reducer(state = initialState, action: Action): State {
	switch (action.type) {
		case "FIRST":
		case "FIRST_COMPLETE":
		case "SECOND":
		case "SECOND_COMPLETE": {
			console.log(`REDUCER: ${action.type}`);
			return state.concat(action.type);
		}
		default: {
			return state;
		}
	}
}

Effect
	@Effect()
	a$: Observable<Action> = this.actions$
		.ofType("FIRST", "SECOND")
		.map(action => {
			console.log(`EFFECT: ${action.type}`);
			return { type: `${action.type}_COMPLETE` };
		});;

Subscription
    let did = false; // dirty way to make sure we dispatch first once

    store.select("order")
      .do(() => {
        if (!did) {
          did = true;
          store.dispatch({ type: "FIRST" });
        }
      })
      .subscribe((data: any) => {
        console.log("SUBSCRIBER: ", data);
      });

    store.dispatch({ type: "SECOND" });

Output
REDUCER: FIRST // coming from the do
SUBSCRIBER:  ["FIRST"]
EFFECT: FIRST
REDUCER: FIRST_COMPLETE // coming from the first effect
SUBSCRIBER:  ["FIRST", "FIRST_COMPLETE"]
SUBSCRIBER:  [] // THIS SHOULD HAVE BEEN THE FIRST OR SKIPPED
REDUCER: SECOND
SUBSCRIBER:  ["FIRST", "FIRST_COMPLETE", "SECOND"]
EFFECT: SECOND
REDUCER: SECOND_COMPLETE
SUBSCRIBER:  ["FIRST", "FIRST_COMPLETE", "SECOND", "SECOND_COMPLETE"]

So the issue is that if you dispatch an action inside the subscription, that will change the state synchronously, the subscriber is called first with the new state, but then it will be called with the old state, because that is in the queue already (I assume). I understand that this is probably an RxJS issue and the example above is a bad code/pattern, but still, I think this is not the expected behavior and since it is related to store and effect logic, first I wanted to report the issue here.
Thanks,
Peter

I kept investigating, and reported another issue that seems to be the root cause of the problem:
https://github.com/ReactiveX/rxjs/issues/2155

There is another wrong order (probably the root cause is the same). This is actually what we have encountered and as a quick fix, we added a setTimeout 0 before dispatching the SECOND action. Now I am trying to find the correct solution. :)
Reducer and effect are the same.
Subscrtiption
store
      .select("order")
      .subscribe((data: string[]) => {
        if (data.length === 2) {
          this.store.dispatch({ type: "SECOND" });
        }
        console.log("SUBSCRIBER: ", data);
      });

    this.store.dispatch({ type: "FIRST" });

Output
SUBSCRIBER:  []
REDUCER: FIRST
SUBSCRIBER:  ["FIRST"]
EFFECT: FIRST
REDUCER: FIRST_COMPLETE
EFFECT: SECOND **the effect is running before the reducer, so the state is the previous state here**
SUBSCRIBER:  ["FIRST", "FIRST_COMPLETE"]
REDUCER: SECOND
SUBSCRIBER:  ["FIRST", "FIRST_COMPLETE", "SECOND"]
REDUCER: SECOND_COMPLETE
SUBSCRIBER:  ["FIRST", "FIRST_COMPLETE", "SECOND", "SECOND_COMPLETE"]

In case you would like to try, here is a working demo: https://github.com/peterbakonyi05/ngrx-store-inconsistent-state :)

I have the same problem I believe.

Please check this against NgRx v4 (pretty sure we fixed this a while back), and if it’s still an issue, please reopen on https://github.com/ngrx/platform. Thanks!

@robwormald is it good practice to put a dispatch inside a selector?
For instance, I want to check if a certain user is inside my store and if not to fetch him.
Is it valid to do something like this?
const searchedUserId = 'abcdefg';
this.selecedUser$ = this.store.select(state => {
    const selectedUserIndex = state.userList.findIndex(searchedUserId)
    if (selectedUserIndex === -1) {
        this.store.dispatch(new UsersActions.FetchUsers(searchedUserId));
    }
    else {
       return state.userList[selectedUserIndex]
    }
})```

I would say no, as you are adding one more responsibility to something pretty much focused as a selector (get info, not generate a state transition)

@jotatoledo So how would you suggest to accomplish this?

Doesn't seem related to this issue, you should rather ask on SO or gitter

I agree with @maxime1992 , the issue tracker is no place for support questions. Please use gitter or SO

I agree with @maxime1992 https://github.com/maxime1992 too!  Additionally
i would encourage to join gitter you will love to see many people chatting
in various questions and their possible solutions. I love gitter.
On Jul 26, 2017 8:56 AM, "José Toledo Navarro"<EMAIL_ADDRESS>wrote:

I agree with @maxime1992 https://github.com/maxime1992 , the issue
tracker is no place for support questions. Please use gitter or SO
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ngrx/store/issues/279#issuecomment-318044892, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAUKj-t1tc-cUZwlUaWQnB24qkgKdlySks5sRzeIgaJpZM4K7b4q
.


Word: "Published" stage document has duplicated identifiers on cover page top right corner

Document: https://github.com/metanorma/iso-19115-3/commit/807d02f59714ec3aa45568e6ac562db6e450bded

They aren't supposed to, no. Investigating, this may be a copy paste error in the handling of headers.

The "first page" directive on the header was being ignored; I'll just make all headers for the first section be the same first page headers (i.e. content-free).


Allow chained network namespace containers

The code currently assumes that the container we delegate network namespace to will never further delegate to another container, so when looking up things like /etc/hosts and /etc/resolv.conf we won't pull the correct files from the chained dependency. The changes to resolve this are relatively simple - just need to keep looking until we find a container without NetNsCtr set.
Fixes #4626

LGTM

/lgtm
/hold
hold cancel when tests pass.

/hold cancel

/retest


Classrooms: Make breakdown default instead of box-and-whisker

Who is this PR for?
Follow on to https://github.com/studentinsights/studentinsights/pull/1687, part of https://github.com/studentinsights/studentinsights/issues/1659.
What problem does this PR fix?
Make sideways stacked bar chart the default for STAR scores, see https://github.com/studentinsights/studentinsights/pull/1687 for more rationale.  Box and whiskers are still available with a query string.

selfie


[Matrix-Generation] Support additional customized steps before matrix generation

@benbp
This extension will allow the python regression testing to dynamically update it's matrix.
Related to Azure/azure-sdk-for-python#23519

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

Well I was going to post a comment with a "all done" confirming that this works...and it doesn't.
Build
Commit
Currently debugging before continuing with the common update.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

After steplist update, checks out.
Advancing this to merge.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

I want to squash this set of commits down, but have already pushed the results (and squashed) to each destination repo. Going to check-enforcer override, then merge this build manually to get the commit history I want.
Next time I'll avoid the situation entirely.

/check-enforcer override


Select the strongest cipher when using higher version ciphers

Description of changes:
If we're falling back to higher version ciphers, it seems to make more sense to select the strongest.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Done!


Need help making mDNS work

I can't figure out how to do it. I can't ssh into my .local address because it can't resolve the name.
I also have this unanswered question on Superuser:
https://superuser.com/q/1262998/36197
I've followed the last example in this thread:
https://github.com/Microsoft/WSL/issues/384
In other words:
~$ sudo service dbus start
 * Starting system message bus dbus                                                                                [ OK ]
~$ sudo service avahi-daemon start
 * Starting Avahi mDNS/DNS-SD Daemon avahi-daemon                                                                                [ OK ]
~$ avahi-resolve --name rpi.local
Failed to resolve host name 'rpi.local': Timeout reached

This was done after installing the packages listed in this answer.
rpi.localcan be resolved by Windows.
Windows 10 Version	10.0.16299 build 16299
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

#384 says SO_REUSEPORT was stubbed, but it isn't immediately obvious to me whether stubbing SO_REUSEPORT would address the problem. Windows already has a service listening on 5353. You fired up another service on the same port under WSL, but that doesn't mean the WSL service is going to get the request. Maybe someone out there could confirm they have actually got avahi-daemon running satisfactorily, because #384 technically only says the Protocol not available error was squashed, not that avahi-daemon actually does what people are expecting.
I could be talking out of my butt. Haven't tried it. But essentially you've set up (in principal) a load-balanced mDNS with two services on your box, and tilts my head to the left. YRMV.

Ok, I see. I was led to believe that these lines from #384 was an indication that avahi was doing something useful:
:~# avahi-resolve-address <IP_ADDRESS>
<IP_ADDRESS>    xxxxx.corp.microsoft.com

To be clear, I don't specifically know that it isn't doing something useful. I just did a netstat.exe -na | find "5353" and know Windows is already there; which is "unusual" compared to what would be the case on a Real Linux box. My November post was fishing for someone to say "yep avahi-daemon is working great on WSL here", in which case we could wander down the path of figuring out why it is working for them but not you. It was more of a question than a statement.
If you are feeling motivated you can try posting a concise CLI repro from clean Ubuntu / unadulterated Windows and see if you get a bite.

Thanks for the clarification

please see https://github.com/Microsoft/WSL/issues/384 for a concise CLI repro from WSL and native Ubuntu.

I see #384 has been closed but this is still a problem for me. I don't mind how mDNS gets resolved in WSL, I just care that it should.
Here are ground-up repro steps to make the problem clear:

Set up a computer on your network running actual Ubuntu. Let's it bunty. 🐧
Make sure avahi-daemon in installed: sudo apt install avahi-daemon
Make sure avahi-daemon is started: sudo systemctl start avahi-daemon.service
Test that this ubuntu box can resolve its own mDNS name: ping bunty.local
For extra certainty, run avahi-browse -a to get a list of all the local mDNS info. It should contain bunty somewhere.
Go to a Windows box with WSL installed. 🗔
Open a CMD prompt and enter ping bunty.local
You should see it pinging the IP address of the Ubuntu box from step 1, indicating that Windows 10's built-in mDNS resolution is working 👌
Now pop open a WSL prompt and enter the same command ping bunty.local

Expected: it should be able to resolve the name like everything else on the network ✨
Actual: it has no clue 😢

@anohren I had that too, but it turned out I had my work VPN up at the time and it was finding a  raspberrypi.local on the office LAN. Any chance you were doing something similar?

@anohren Windows VPN, no idea what crazy network config they had but it was making their .local addresses resolvable over regular DNS. I was just throwing that out there because there's no way a .local address should be resolvable over the public internet.

This is still an issue on Windows 1903.

+1! System ping in cmd.exe resolves correctly, but in WSL either with System error (when some unsupported resolver is used in /etc/nsswitch.conf; hosts) or just not being able to resolve.

Still not working in Version 10.0.17763 Build 17763

not working on winver 19041.1

Wrote how to use powershell.exe. It is not cool, but worked.
I pray for COOL improvements.
https://github.com/microsoft/WSL/issues/384#issuecomment-571566111

Ref #3365 avahi-daemon is better on WSL2

Hello Guys,
I am running the below command on my one of the board having custom linux OS ,
avahi-daemon --file=/system/etc/avahi/avahi-daemon.conf&
the avahi-daemon started on my board and I am able to ping the Host Name on one of the windows PC available with me , using commnad ping Ingenic.local
The only issue is i am not able to see the host name on bonjour application(add-on) running on Internet Explorer.
what is missing?

Well, the m in mDNS is multicast... And I noticed there's comment in WSL2 docs about mirrored networking mode allowing multicast to work. Maybe that's what you want? https://learn.microsoft.com/en-us/windows/wsl/networking#mirrored-mode-networking ; I didn't really check if it is, but I was searching why a zeroconf name wasn't working for a host on a WSL2 instance, and this old closed issue came up and later I found that mirrored mode addressed my issue, so I thought there may be others reading this with a similar situation.


Use GPU and multi-card for model training

Hello! How to use GPU and multi-card for training? The default card 0 is the CPU for training.
Thank U!

This repo uses pytorch-lightning as the trainer. It's convenient to do multi-gpu training by:
python train.py --root /path/to/dataset_root/ --embed_dim 128 --gpus #YOUR_GPU_NUM

If I remember correctly, this will use Pytorch DDP Spawn strategy by default. If you want to use Pytorch DDP instead (which should be faster than DDP Spawn in general), you can add one line to train.py:
parser.add_argument('--strategy', type=str, default='ddp')

Let me know if it works.

@yumianhuli2 To reproduce the results in the paper when using multi-gpu training, please also make sure that the effective batch size (batch_size * gpu_num) is 32. For example, if you use 4 gpus, then the batch size per gpu should be 8:
python train.py --root /path/to/dataset_root/ --embed_dim 128 --gpus 4 --train_batch_size 8

Thank you！

Thank you for your outstanding work！If the batchsize is changed, does the learning rate need to be adjusted accordingly？

@tandangzuoren I believe the learning rate should be adjusted. The number of epochs may also need to be changed.

@ZikangZhou Thank you for your advice on this. May I know why 32 is the effective batch size?


Create homebrew formula for easy installation

This is up for review here

Merged: https://github.com/Homebrew/homebrew-core/commit/d3864edd135bfde45ac388d3f8e07056160a1c39
Eject can now be installed with hombrew using brew install eject


Will this repo be maintained given that clusterHQ is shutting down?

Will this repo be maintained given that clusterHQ is shutting down?

Some of the Flocker developers may be available to provide continuing support and development.
Drop me an email if you have a specific requirement.

@kant111 a band of Flocker developers will be maintaining Flocker here:

https://github.com/ScatterHQ
https://www.scatterhq.com/

If you need Flocker support and consultancy please contact us.


BUG: binary operations fail when other is a dictionary

Modin version checks

[X] I have checked that this issue has not already been reported.

[X] I have confirmed this bug exists on the latest released version of Modin.

[X] I have confirmed this bug exists on the main branch of Modin. (In order to do this you can follow this guide.)

Reproducible Example
import modin.pandas as pd
import numpy as np

df = pd.DataFrame(np.ones([2, 4]), columns=["a", "b", "c", "d"])
dictionary = {"a": 1, "b": 2, "c": 3, "d": 4}
print(df * dictionary)

Issue Description
The related snippet fails with TypeError: Cannot do operation with improper dtypes from here:
https://github.com/modin-project/modin/blob/c30ab4c132295b1e168fbb06a050c76554759e11/modin/pandas/base.py#L296
It seems that the ._validate_other function doesn't work as expected when other is a dictionary.
Expected Behavior
As the pandas support binary operations between dataframe and dictionary modin should as well.
Error Logs

Replace this line with the error backtrace (if applicable).

Installed Versions

Replace this line with the output of pd.show_versions()

Does this work in pandas?

Does this work in pandas?

yep, it prints
a    b    c    d
0  1.0  2.0  3.0  4.0
1  1.0  2.0  3.0  4.0


Colorlight 5A-75E

I have a Colorlight 5A-75E V7.1 board, this is the board with 16 HUB75 connectors, and I am working on documenting the pinouts. It was going well and I used pin_scan to find the mapping for the HUB75, SDRAM, PHY, LED, BUTTON and flash pins.
I then realized that the pin_scan Makefile defaults to CABGA381 and the 5A-75E uses a CABGA256. I changed the Makefile and altered gen_lpf.py to use column 9 from the CSV mapping file. I cleaned, rebuilt and loaded the bit stream into the FPGA. It doesn't work! I don't see any UART output for the pins. Again, the CABGA381 compiled version works well.
I am perplexed as I wanted to provide an update to this project to support the 5A-75E but I don't know if what I have is reasonable. I have attached the document that I currently have for the 5A-75E.
Cheers,
Derek
hardware_V7.1.txt

Curious if this has any finer control on the 5V direction as well?

Pin 1 (DIR) is linked to pin 20 (Vcc) on all 23 74HC245 chips. So, I think that is a no!

Ah sad. We need one of these manufactures to use a FET bus switch instead for level shifting.

@derekmulcahy Thank you for the work! I converted your pinout into a CABGA256 pinout with the help of the official pinout description and some Python. Could you check that this pinout is valid? Note that I fixed pin names only in tables.
hardware_V7.1_fixed.txt

@Disasm thanks for the pin translations. I was partially through the translation myself but I got bored. Everything looked good.
The two mapping files are consolidated and attached.
One addition, pin 6 on the SPI flash is CCLK, this is mapped to U3 for the 381 FPGA and N9 for the 256 pin. It is a fixed function for the ECP5 chip and wasn't found by pin_scan.
PHY0 and PHY1: When using pin_scan both RXC and ~RESET are mapped to the same pin (P4 for 381 and P5 for 256). This doesn't make much sense and needs further investigation.
Otherwise I think the file is getting close. Time to write some test programs...
hardware_V7.1.txt

Oh, thanks! One small fix:

A 25MHz clock is available at 381 pin P6, and is also connected to both PHYs.

It's P6 in the 256-ball package. At least I suppose that's why my blinky works :) Also P6 in 381 has VCCAUX function.

Good catch. Looks like it is P3 for the 381 mapping and P6 for the 256-ball package. I plan to delete the 381 pin references from this file when it is tested. After all, this board does use the 256-ball package!

An update, the RXC and RESET lines for the PHY0 and PHY1 are connected together via resistors. I guess that during  reset RXC is held low. RESET is connected to RXC on PHY0 via R100 and to RXC on PHY1 via R107. Seeing this has allowed the pins used for RXC to be identified. The updates are in the attached file.
The pins used for RXC are the same V7.0 board and it also has the same resistors. Copy/paste can be good!
hardware_V7.1.txt

I checked all HUB75 pins and found a few mistakes.

Connector J5 pin 2 is J5, but it's already used for the C signal (Connector J5 pin 11).
Connector J9 pin 7 is F7. For some reason I can't build the project with it: IO pin 'tx_F7$tr_io' constrained to pin 'F7', which does not exist for package 'CABGA256'.
Connector J11 pin 2 is F29. Doesn't exist in both packages :)

Other pins are ok, I even checked each of the shared FPGA pins on each connector.

I've updated the litex-boards platform file (https://gist.github.com/Disasm/a1065e609b65c688fc0a30a9cba92e89) and generated SoC with ethernet. SDRAM works (memtest passes), PHY0 seems to be working, PHY1 seems to not be able to receive packet (sending works). This could be due to the timing problems, but still suspicious.
At the same time, with this SoC board heats significantly. FPGA and SDRAMs are hot. Buffers are hot and especially hot near the SDRAM chip. I don't know if it's ok or I'm missing something. With the stock firmware the FPGA chip is barely warm, all other ICs are cold.

At the risk of stating the obvious: make sure all unused IO of the FPGA are set to input by default.
I didn't do this for my Cisco board initially, so it booted up with all IOs by default set to output, and it pulled a current 1.5A. After changing the IOs to input, it dropped to 120mA...

More advanced: you could use some JTAG scanning tool with the original firmware to dump the values of the IO boundary scan cells, and see which IOs are set to input or output.

@Disasm I tried you Litex-boards platform file. It worked well. I didn't have any problems with overheating. I was having odd power supply problems until I powered all the peripherals (FTDI, USB Logic Analyzer) from the same USB hub as the color light. Litex boots and uses ~150mA, --with-ethernet uses ~60mA more. Would configuring the pins as inputs with a pullup or pulldown to prevent switching be a solution to your issue?

That's super weird. I connected the board power cable through a cheap "charger doctor" and found that consumed power varies from time to time.
At the moment I can get 30mA and 150mA with the same litex+ethernet gateware (I mean literally the same, I do not rebuild it). The power consumed is consistent during a single run, but different for different runs (I replug the power cable and reload the gateware). During my previous attempts I even got 240mA with (different) litex+ethernet gateware. At this point I observed significant heating.
Everything is powered through the same powered USB hub.
UPD: Connecting through a long USB cable leads to 250mA consumption. Seems like the resulting consumption depends on the voltage provided through a cable. With lower voltage comes higher current.
0.03A, 5.1V
0.15A, 4.92V
0.25A, 4.83V

I think this issue is closed with the pull request #62


Kubernetes Basic Concepts

Kubernetes
The complexity of modern system

Critical software system are large and complex, and the complexity is increasing. Maintenance of such monoliths is a challenge. Software engineering community are addressing the challenge by adhering The Unix Philosophy and moving towards The Cloud.
Traditionally, applications used to run on one or more physical servers. The main drawback was that it did not scale well as resources were not utilized to the maximum. Virtual Machines(VM) solved the problem and also provided better security by providing isolated environment to . The nature of application started to be complex. Today we have Containerized applications that abstracted and enhanced the entire functionalities of VM's, making it exceptionally easy to maintain distributed systems.

Write programs that do one thing and do it well - The Unix Philosophy
Kubernetes Architecture

Kubernetes Objects:

Cluster is the pool of compute, storage, and network resources.
Node is a host machine running within the Cluster.
Namespace is the logical partitions of a Cluster.
Pod is the basic unit of deployment.
Labels are key-value pairs for identification and service discovery.
Services identifies a set of Pods using Label selectors.
Replication Sets ensures Pod's availability and scalability.
Deployment manages Pod's lifecycle.
Ingress exposes HTTP and HTTPS routes from outside the Cluster to Services.

Processes running in Kubernetes
kube-controller-manager A controller that runs and manages controller processes.
kube-apiserver It is the implementation of the Kubernetes API.
kube-scheduler watches for newly created Pods with no assigned node, and selects a node for them to run on.
kubelet Communicates with the Master.
kube-proxy A network proxy which reflects Kubernetes networking services on each node.

Internal Of Kubernetes Description
Container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. The container runtime is responsible for starting and managing containers.
Kubernetes is a powerful container orchestration system that can manage the deployment and operation of containerized applications across clusters of servers. In addition to coordinating container workloads, Kubernetes provides the infrastructure and tools necessary to maintain reliable network connectivity between your applications and services.
A Node is physical or virtual machine. Every cluster must have at least one Master Node which controls cluster, and one or many Worker Node that hosts Pod.
Kubernetes Objects are persistent entities in Kubernetes that defines everything in Kubernetes. All objects have unique names that allows idempotent creation and retrieval. These objects are stored in etcddatabase as a key-value pair. Objects can categorized as the Basic Objects which determines the deployed containerized application's workloads, their associated network and disk resources, and Higher Level Objects which are build upon the basic objects to provide additional functionality and convenience features to manage the workloads. Higher level objects have a long-running service-like lifecycle, except Jobs.
Basic Objects: Pod, Service, Volume and Namespace
Higher Level Objects: Replication Controllers, Replication Sets, Deployments, Stateful Sets, Daemon Sets ,JobsandCron Jobs`
Cluster is a group of interconnected Node. Cluster's state is defined Kubernetes Objects. Cluster's desired state includes what applications or other workloads to run, what container images they use, the number of replicas, what network and disk resources to make available.
Namespaces a way to divide cluster resources between users by creating multiple virtual clusters in same physical cluster. They are used in environments with many users spread across multiple teams, or projects. Namespaces can not be nested inside one another and each Kubernetes resource can only be in one Namespace. Objects in the same Namespace will have the same access control policies by default. Labels are used to distinguish resources within the same Namespace. Namespace resources are not themselves in a Namespace, and low-level resources, such as Nodes and PersistentVolumes, are not in any Namespace.

Pod represents a group of one or more Containers running together and operating closely as a single, monolithic application in a Node in the Cluster. Pods are managed entirely as a unit and share resources like environment, volumes and IP space. Pods consist of a main container which serves workload and optionally some helper containers that facilitate closely related tasks. For example, a Pod may have one container running the primary application server and a helper container pulling down files to the shared filesystem when changes are detected in an external repository. Pods are managed by higher level objects by providing template definitions.
Pods represent and hold a collection of one or more containers. Generally, if you have multiple containers with a hard dependency on each other, you package the containers inside a single pod.

Each individual worker node in the cluster runs two processes: kubelet and kube-proxy.
Service groups Pods together that perform the same function as a single entity. It keeps track of containers in the pods and routes to the containers for internal and external access. A service’s IP address remains stable regardless of changes to the pods it routes to which makes it easy to gain discoverability and can simplify containers designs. By default, services are only available using an internally routable IP address, they can be made available outside of the cluster by choosing one of several strategies.
Services use labels to determine what Pods they operate on. If Pods have the correct labels, they are automatically picked up and exposed by our services.

Kubernetes API is a resource-based (RESTful) programmatic interface provided via HTTP. It supports retrieving, creating, updating, and deleting primary resources via the standard HTTP verbs (POST, PUT, PATCH, DELETE, GET), includes additional subresources for many objects that allow fine grained authorization (such as binding a pod to a node), and can accept and serve those resources in different representations for convenience or efficiency. It also supports efficient change notifications on resources via "watches" and consistent lists to allow other components to effectively cache and synchronize the state of resources. It the communication medium for the end users, different parts of your cluster, and external components with one another. Most Kubernetes API resource types are Kubernetes Objects, but a smaller number of API resource types are  represented by operations.
Controller is a non-terminating loop that regulates the state of a system. It watches the state of the cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state. There are different types of controllers for specific purposes.
Kubernetes Control Plane is a collection of the Controllers. kube-apiserver, kube-controller-manager and kube-scheduler are the three critical processes that makes up the control plane. Nodes that runs these processes are called Master Node which are replicated for availability and redundancy.
Volume is simply an abstraction of data in the form of file and directory within a Pod. It exists as long as its Pod exists.

Secret are used to share sensitive information, like SSH keys and passwords, with other Kubernetes objects within the same namespace.
Kubernetes Object Definition
Every Kubernetes Object definition is a YAML file that contains at least the following items:

apiVersion: The version of the Kubernetes API that the definition belongs to.
kind: The Kubernetes object this file represents. For example, a pod or service.
metadata: This contains the name of the object along with any labels that you may wish to apply to it.
spec: This contains a specific configuration depending on the kind of object you are creating, such as the container image or the ports on which the container will be accessible from.

Instead of a spec key, a Secret uses a data or stringData key to hold the required information. The data parameter holds base64 encoded data that is automatically decoded when retrieved. The stringData parameter holds non-encoded data that is automatically encoded during creation or updates, and does not output the data when retrieving Secrets.
Pods Management Controllers
Logically, each controller is a separate process, but to reduce complexity, they are all compiled into a single binary and run in a single process.
Node Controller: Responsible for noticing and responding when nodes go down.
Replication Controller: Responsible for maintaining the correct number of pods for every replication controller object in the system.
Endpoints Controller: Populates the Endpoints object (that is, joins Services & Pods).
Service Account & Token Controllers: Create default accounts and API access tokens for new namespaces
Deployments are most frequently used objects for stateless application which makes life cycle management of replicated Pods easier. It manages Pods as rolling updates, canary deploys and blue/green deployments. Deployments can be modified easily by changing the configuration and Kubernetes will adjust the replica sets, manage transitions between different application versions, and optionally maintain event history and undo capabilities automatically.
Stateful Sets are specialized pod controllers for stateful applications that offer ordering and uniqueness guarantees. Primarily it is used when systems that require stable network identifiers, stable persistent storage, and ordering guarantees like data-oriented applications, like databases, which need access to the same volumes even if rescheduled to a new node.
Replication Controller is responsible for ensuring that the number of Pods deployed in the cluster matches the number of pods in its configuration. If a Pod or underlying host fails, the Controller will start new pods to compensate. If the number of replicas in a Controller’s configuration changes, the Controller either starts up or kills Containers to match the desired number. Replication Controllers can also perform rolling updates to roll over a set of pods to a new version one by one, minimizing the impact on application availability. Deployments uses as it's build block.
Replication Sets are an iteration on the Replication Controller design with greater flexibility in how the controller identifies the Pods it is meant to manage. The only thing it does not do is rolling updates.
Daemon Sets are another specialized form of Pod Controller that run a copy of a Pod on each node in the cluster (or a subset, if specified). This is most often useful when deploying pods that help perform maintenance and provide services for the nodes themselves. For instance, collecting and forwarding logs, aggregating metrics, and running services that increase the capabilities of the node itself are popular candidates for daemon sets.
Jobs are useful when containers are expected to exit successfully after some time once they have completed their work.
Build on jobs,
Service Types
Kubernetes Services have 4 types, specified by the type field in the Service configuration file:
ClusterIP is the default, which grants the Service a stable internal IP accessible from anywhere inside of the cluster.
It is the default type means that this Service is only visible inside of the cluster.
NodePort configuration works by opening a static port on each node’s external networking interface. Traffic to the external port will be routed automatically to the appropriate pods using an internal cluster IP service. This will expose your Service on each Node at a static port, between 30000-32767 by default. When a request hits a Node at its Node IP address and the NodePort for your service, the request will be load balanced and routed to the application containers for your service.
It gives each node in the cluster an externally accessible IP.
LoadBalancer creates an external load-balancer to route to the service using a cloud provider’s Kubernetes load-balancer integration. The Cloud Controller Manager will create the appropriate resource and configure it using the internal service service addresses. This will create a load balancer using your cloud provider’s load balancing product, and configure a NodePort and ClusterIP for your Service to which external requests will be routed.
Creating LoadBalancer for each Deployment running in the cluster will create a new cloud load balancer for each Service, which can become costly. Ingress Controller is used to manage routing external requests to multiple services using a single load balancer.
It adds a load balancer from the cloud provider which forwards traffic from the service to Nodes within it.
ExternalName allows to map a Kubernetes Service to a DNS record. It can be used for accessing external services from Pods using Kubernetes DNS.

[  ] https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

Label And Annotations
A Label is a semantic tag that are simple key-value pairs which can be attached to Kubernetes Objects to mark them as a part of a group. Labels should be used for semantic information useful to match a pod with selection criteria, annotations are more free-form and can contain less structured data. These can then be selected for when targeting different instances for management or routing.
Each of the controller-based objects use labels to identify the Pods that they should operate on. Services use labels to understand the backend Pods they should route requests to. Each unit can have more than one label, but each unit can only have one entry for each key. Usually, a “name” key is used as a general purpose identifier, but you can additionally classify objects by other criteria like development stage, public accessibility, application version, etc.
Annotations also allows to attach arbitrary key-value information to an object but are more free-form and can contain less structured data and are are a way of adding rich metadata to an object that is not helpful for selection purposes.
Storage Management
The lifecycle of a Volume is tied to the lifecycle of the Pod, but not to that of a Container. If a container within a Pod dies, the Volumepersists and the newly launched container will be able to mount the sameVolumeand access its data. When aPodgets restarted or dies, so do itsVolumes, although if the Volumesconsist of cloud block storage, they will simply be unmounted with data still accessible by futurePods`.
To preserve data across Pod restarts and updates, the PersistentVolume (PV) and PersistentVolumeClaim (PVC) objects are used.
StorageClass defines different types of storage offered which are categorized as "classes" setup by the Cluster Administrator. Different 'classes" might map to quality-of-service levels, or to backup policies, or to arbitrary policies. Kubernetes itself is unopinionated about what classes represent. This concept is sometimes called "profiles" in other storage systems.
PersistentVolume abstracts the details of the implementation of the storage, be that NFS, iSCSI, or a cloud-provider-specific storage system that is provisioned manually by cluster admin or dynamically using Storage Classes. It is a resource in the cluster just like a node is a cluster resource. PersistentVolume are volume plugins like Volumes, but have a lifecycle independent of any individual Pod.
PersistentVolumeClaim is a request for storage by a user. It is similar to a Pod. Pods consume Node resources and PersistentVolumeClaim consume PersistentVolume resources. Pods can request specific levels of resources (CPU and Memory). PersistentVolumeClaim can request specific size and access modes (e.g., they can be mounted ReadWriteOnce, ReadOnlyMany or ReadWriteMany). PersistentVolumeClaim mounts the PV at the required path. The spec for a PVC contains the following items:

accessModes which vary by the use case. These are:

ReadWriteOnce – mounts the volume as read-write by a single node
ReadOnlyMany – mounts the volume as read-only by many nodes
ReadWriteMany – mounts the volume as read-write by many nodes

resources – the storage space that you require

Security And Policies
Security in Kubernetes is a big challenge as it is a composed many smaller standalone components. It provides many security mechanisms. Namespaces can be used for authentication, authorization and access control. Resource Quotas can be provided to avoid resource cannibalization. And Network Policies can be setup for proper segmentation and traffic control.
Networking
All the components of Kubernetes are interconnected. For the entire system to function efficiently, reliability and securely, networking plays critical role. The basic requirements of a Kubernetes network are:

all containers can communicate with all other containers without NAT
all nodes can communicate with all containers (and vice-versa) without NAT
the IP that a container sees itself as is the same IP that others see it as

Network Address Translation(NAT) is a method of remapping an IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic routing device
Monitoring
Kubernetes includes some internal monitoring tools by default. These resources belong to its resource metrics pipeline, which ensures that the cluster runs as expected. The cAdvisor component collects network usage, memory, and CPU statistics from individual containers and nodes and passes that information to kubelet; kubelet in turn exposes that information via a REST API. The Metrics Server gets this information from the API and then passes it to the kube-aggregator for formatting.
References

[ ] https://kubernetes.io/docs/concepts
[ ] https://kubernetes.io/docs/reference/kubectl/cheatsheet
[ ] https://www.docker.com/blog/designing-your-first-application-kubernetes-part1
[ ] https://www.digitalocean.com/community/curriculums/kubernetes-for-full-stack-developers
[ ] https://www.docker.com/blog/designing-your-first-application-kubernetes-part1
[ ] https://www.bluematador.com/blog/12-kubernetes-interview-questions-and-answers
[ ] https://medium.com/better-programming/build-kubernetes-autoscaling-for-cluster-nodes-and-application-pods-bb7f2d716b07
[ ] https://wiki.aquasec.com/display/containers/Kubernetes+101
[ ] https://tanzu.vmware.com/content/blog/introducing-kubeacademy-pro-in-depth-kubernetes-training-totally-free
[ ] Interest Group: https://github.com/kubernetes/community/blob/master/sig-list.md
[ ] https://editor.cilium.io
[ ] https://archive.fosdem.org/2019/schedule/event/kubernetesclusterfuck

Implementation/Usage Blogs

[ ] https://medium.com/better-programming/dealing-with-data-and-communication-in-kubernetes-4b1c940719af
[ ] https://www.techrepublic.com/article/how-to-deploy-a-multi-container-pod-to-a-kubernetes-cluster
[ ] https://www.freecodecamp.org/news/the-kubernetes-handbook

Could not work on this issue today.
Found two interesting links to read:

https://learnk8s.io/real-time-dashboard
https://enterprisersproject.com/article/2020/4/kubernetes-architecture-beginners

[ ] Found a cheatsheet

https://enterprisersproject.com/article/2020/4/kubernetes-architecture-beginners
https://kubernetes.io/docs/concepts/overview/components
https://enterprisersproject.com/article/2020/4/kubernetes-everything-you-need-know
https://www.redhat.com/en/events/webinar/kubernetes-101—-introduction-containers-kubernetes-and-openshift-red-hat-training?intcmp=701f2000000tjyaAAA
https://enterprisersproject.com/tags/containers
https://opensource.com/sites/default/files/gated-content/getting_started_with_kubernetes.pdf
https://enterprisersproject.com/sites/default/files/kubernetes_glossary.pdf
https://opensource.com/sites/default/files/gated-content/cheat_sheet_kubectl.pdf
https://enterprisersproject.com/article/2019/4/minikube-how-to-use
https://istio.io/docs/setup/platform-setup/minikube
https://operatorhub.io | https://github.com/operator-framework
Need to go through these resources again.

Make a note based on https://kubernetes.io/docs/concepts/overview/components and other articles to close the section and create tasks on other specific concepts to understand them in depth.

[ ] https://enterprisersproject.com/article/2020/5/kubernetes-5-open-source-projects-improve

https://enterprisersproject.com/article/2020/5/kubernetes-migration-4-secrets
https://enterprisersproject.com/article/2020/5/kubernetes-5-open-source-projects-improve
https://enterprisersproject.com/article/2020/5/kubernetes-deployments-6-security-best-practices

[ ] TODO: Examples of Deployment and Service templates

ReplicationController
A ReplicationController is responsible for managing the pod lifecycle and ensuring that the specified number of pods required are running at any given time.
A ReplicationController is responsible for managing the pod lifecycle and ensuring that the specified number of pods required are running at any given time. On the other hand, it is not responsible for the advanced cluster capabilities like performing auto-scaling, readiness and liveliness probes, and other advanced replication capabilities. Other components within the Kubernetes cluster better perform those capabilities.
In short, the ReplicationController has limited responsibility and gets typically used for specific implementations that do not require complex logic to attain certain requirements (for example, ensuring that the desired number of pods always matches the specified number). If there are more than the desired number, the ReplicationController removes the excess ones and ensures the same number of pods exist even in the event of node failure or pod termination.
https://opensource.com/article/21/11/kubernetes-replicationcontroller


Version 1.7.0 on PyPI does not include the formats folder

Both wheel and gzip.
Error message:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Python312\Scripts\pysubs2.exe\__main__.py", line 4, in <module>
  File "C:\Python312\Lib\site-packages\pysubs2\__init__.py", line 1, in <module>
    from .ssafile import SSAFile
  File "C:\Python312\Lib\site-packages\pysubs2\ssafile.py", line 584, in <module>
    from .formats import autodetect_format, get_format_class, get_format_identifier  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'pysubs2.formats'

yes, same issue

I see, sorry about that! I've yanked the 1.7.0 release and will release 1.7.1 that will fix this.

Version 1.7.1 is ok.

thanks


Tetrio +

Project description
Tetris client
Metadata

homepage URL:
https://gitlab.com/UniQMG/tetrio-plus/-/wikis/home
source URL:https://gitlab.com/UniQMG/tetrio-plus/-/wikis/home
license: mit, bsd, gpl2+ , ...
platforms: unix, linux, darwin, ...

Is this tetrio equivalent to the tetrio contributed in this PR?

https://github.com/NixOS/nixpkgs/pull/146940

I've packaged this in #201596

Didn't notice this issue, should be closed by #199948.


Timestamps for monitoring activities in WM job

Impact of the new feature
WMAgent (WMArchive and job monitoring)
Is your feature request related to a problem? Please describe.
Having the ability to track where time is spent in each phase of the production jobs.
Describe the solution you'd like
In addition of the I/O metrics (let me know if these would warrant their own issue), in order to better understand the various CPU efficiency numbers, it would be useful to record and show in the monitoring

begin and end timestamps (or begin timestamp and duration) of the WM program (sorry for the wrong term) that is run in the HTCondor job, and that calls cmsRun
begin and end timestamps (or begin timestamp and duration) of each cmsRun invocation
(bonus) total CPU time spent by the WM program (again sorry for the wrong term)

I'm not sure if any of these quantities are being recorded already, but if not, would it be feasible to add? (we'd also be interested of similar timekeeping by the pilot that runs the HTCondor jobs, but that's likely for other folks to talk to?)
UPDATE: whoever starts working on this, Kevin highly recommends talking to Ben Tovar first because ND WorkQueue already has a resource management mechanism which we could profit from.
UPDATE-2: this ticket is supposed to address only the item number 1. above, thus the overall job wallclocktime. Items 2 and 3 will be addressed in the following sub-task:

[x] https://github.com/dmwm/WMCore/issues/11660

Describe alternatives you've considered
None
Additional context
Originally posted by @makortel in https://github.com/dmwm/WMCore/issues/11538#issuecomment-1563443351_

@makortel I broke this out in to a new issue because I think it's separate from the original.  Sorry for not taking this up earlier.
As we discussed in person, it sounds like inserting these timestamps into the FJR would already be valuable, even if we weren't exposing this information through monitoring, so I propose we start with that.  In principle, this is just a matter of capturing 4 (or 5 with bonus) numbers from the WM runtime script and inserting them into the FJR json file.  This would make the issue low effort and potentially high gain.
What do you think?

Thanks for creating this issue, Kevin. I have updated the initial description to apply the "New feature" ticket template.
@makortel I have the following questions:

on the first bullet, do you want to track the time spent by the job wrapper between: starting to prepare the cmsRun process (including but not limited to: load job description, scram CMSSW area, run PSet tweaks, etc) until the end of cmsRun, including post processing of the exit code from the bash script and FJR?
for the second bullet, isn't the cpu.TotalJobTime FJR metric supposed to report the cmsRun invocation time (aka., for how long the cmsRun process executed)
for the bonus bullet, I understand start time has to be the first line in our production job wrapper; while end time is meant to be the line before exiting the job wrapper. In other words, the overall production job time.

As we discussed in person, it sounds like inserting these timestamps into the FJR would already be valuable, even if we weren't exposing this information through monitoring, so I propose we start with that.

Assuming this means the numbers end up visible in WMArchive(?) so that they are accessible later on, sounds good.

on the first bullet, do you want to track the time spent by the job wrapper between: starting to prepare the cmsRun process (including but not limited to: load job description, scram CMSSW area, run PSet tweaks, etc) until the end of cmsRun, including post processing of the exit code from the bash script and FJR?

I see now that my formulation of the first and bonus bullets is a bit confusing. The first bullet means what you wrote for the bonus bullet, i.e. start time being the first line in the production job wrapper, and the end time the line before exiting the job wrapper (or as late as possible in order to still report it back, however that communication happens). I'll clarify the bonus bullet more below.

for the second bullet, isn't the cpu.TotalJobTime FJR metric supposed to report the cmsRun invocation time (aka., for how long the cmsRun process executed)

It does, with the subtle distinction that the time is measured by cmsRun itself from some moment around the beginning of the process to some moment around the end of the process. For completeness, we'd like to see how the cmsRun job duration looks from the WM job wrapper perspective, e.g. in case the cmsRun process startup (from the OS beginning to start a new process until the beginning of main()) or shutdown (from endJob transition to the actual termination of the process by the OS).

for the bonus bullet, I understand start time has to be the first line in our production job wrapper; while end time is meant to be the line before exiting the job wrapper. In other words, the overall production job time.

The bonus bullet is about recording the CPU time corresponding the duration the first bullet records the wall clock time. Effectively one could calculate the CPU efficiency of the overall production job from the numbers of the first bullet and the bonus bullet.
Would it be useful to have a zoom call at some point? I'm pretty sure I'm using different terminology (because of being ignorant of the proper one) and I'm concerned if that causes confusion.

Matti and I had a chat today to clarify the requirements and the summary is:

we need wallclock time for the whole job wrapper code (bonus if we could get the CPU time)
we need the wallclock time for each of the cmsRun steps (the closest to cmsRun the better). For this case, CPU time is also a must to be provided.

We also need to research the following two items:

how to propagate these timing metrics to the job FJR, such that it can be consumed by ArchiveDataReporter component and end up in the usual WMArchive documents.
and how to measure CPU time of the cmsRun process (executed as a 2nd level subprocess of the job wrapper).

@makortel Matti (thanks!) found this stack overflow link:
https://stackoverflow.com/questions/26475636/measure-elapsed-time-amount-of-memory-and-cpu-used-by-the-extern-program
explaining how to measure CPU time for child processes. It could be that getrusage(RUSAGE_CHILDREN) is the answer that we are looking for.

In order to understand how to implement this ticket the following items should be clarified first:

What is persistent object where this information should be written, in other words do have a document, e.g. FWJR, which is carrying around with every step of the workflow execution or not. If yes, what is this document, if no then we need

define persistent storage for each job, should it be a (local or central) service, should it be database or any other format, etc.

Identify which system can provide such metrics, e.g. does it job of WorkQueue to record start/end of the job or anything else
How to properly define CPU metrics on different architectures, e.g. on Linux we can rely on /proc/cpuinfo, but it does not exist on Darwin (I do not have experience with ARM, Power ones)
Should we record start/end time within WMCore modules or from external components, if former which parts of WMCore can be used for that, if later how this should be written and where it should go (e.g. bash script which start job will take time snapshot and update some FJR file)

If we can't establish how to persistently write this info with some storage (file or local/central service) for every job, would you be open for messaging service like NATS, AMQ brokers, etc. which will be used to push this info. If so, where these services can be located and how to deal with firewalls, e.g. we have example of Rucio tracer which relies on CERN AMQ and kafka.
I think we need a proper (in person) discussion to define details of implementation and then outline concrete steps in order to deal with this ticket.

After a discussion with Valentin this week, we thought that breaking this issue into 2 tickets would make the issue and effort more manageable. So I just created this second issue: https://github.com/dmwm/WMCore/issues/11660 as a sub-task of this one. The initial description also received a couple of UPDATE messages.

As briefly discussed over mattermost, I think we need to reopen this issue as we still have to figure out where exactly in the FJR (or which of them) these changes need to be made such that it becomes visible by ArchiveDataReporter, thus being converted to a WMArchive document and ending up in MonIT.
FYI @vkuznet

Valentin and I had a discussion about these timing metric tickets and we decided to create a new ticket to address the WMTiming metrics, such that it gets added to the right document/report file. The new ticket has been created:
https://github.com/dmwm/WMCore/issues/11718
and we can now close this one.


404 handling

Things to consider:

/this-route-does-not-exist
/foo-collection/15 (15 does not exist)
Navigated to directly from browser url
Navigated from within app
Consider other http errors as well (500, 401, 403, ...)

Closing this as part of cleaning out old issues. Feel free to reopen this.


Navigation Overflow On Tablet Size

Between 768-850 pixels, the left navigation bar content moves off the screen.

Thanks for the report. At some point I wanted to refactor the Sidebar layout and increase content areas on all pages, so I will probably tackle this when the time is right

does not seem to happen anymore?

ok, but having a horizontal scrollbar instead is also not great


Scripts and styles referenced by layout snippets are emitted in the admin UI

If a layout snippet file references one or more scripts or stylesheets (either via Require() or Include() those will end up being rendered in the snippet element editor in the admin UI.
Here is an example of when this happens - this particular snippet references stylesheets that are part of the theme and meant for the front-end, which change the styling of fieldsets and their labels:

This is what it looks like in the rendered markup:

Yet another reason not to render front-end shapes in the admin. I assume a simple solution is to render a placeholder instead of the snippet.

In this case it's not about rendering the snippet as it is on the fronted. In fact, a placeholder is being rendered already. But in order to discover the configurable snippet fields, the Razor view is executed, which causes the snippet field HTML helpers to execute, which invocations are being spied on.
One solution could be to execute the snippets in a child work context and replace the Resource Manager with a fake one so that no resources will be registered.
A completely separate approach would be to simply parse the Razor contents instead of executing it, but it's not as clever. I like clever ;)

How easy is it to use a child context?
What about having two razor files, one for configuration and one for rendering ? (not this topic)

If it works as I think it would, then should be straightforward, but I'll experiment.
Two Razor files would work, but I think the beauty of the parameterized snippets is that you don't have to separately configure the fields - it's all in one place and inline. But if it turns out it's technically not feasible, I guess we'd have to resort to other means like you suggest. But we'll see.

I think the most elegant and "correct" solution is what you are suggesting, i.e. to do the rendering in an isolated child work context with a fake resource manager.

Go ;)

Unfortunately the child work context won't work, because the Razor base views access a WorkContext object that is initialized earlier to resolve the Resource Manager. This is due to the ShapeTemplateBindingStrategy singleton that injects the IWorkContextAccessor which is always resolved from a parent lifetime scope.
So at this point I'm thinking to resort to plain string-based parsing of the Razor view file (as is already done to determine if it has any SnippetFields in the first place so that the LayoutEditor knows if it needs to launch the element editor dialog). This approach would move us towards an approach where the fields are externally declared (although technically speaking they are stil declared inline).
Another, rather unorthodox approach, would be to change the ResourceManager to be "disabled". But then we're really hacking our way to a solution, so I probably shouldn't even have suggested it. ;)
It's sad to see the snippet fields' magic dissipate.

What about applying what I suggested today, as the only way to do snippets, but on a 1.11 as it would be a breaking change.
We could add the behavior in 1.10.x at any point as it would not be breaking and prepare for people to see the old way (current state) deprecated.

So a new harvester but one that reads the field descriptions from another file, or from the same Razor view but from a particular section? Can you please summarize what you proposed during today's meeting? I forgot the details :)
In any case, this new harvester could be added to 1.10.1 like you say, it would simply be a better version of the current one.

A snippet is two files, .Display.cshtml and .Editor.cshtml. With two different sets of helpers.

Ah right, yes that would work nicely.

Created a PR to fix this here: #6700


Update to 3.00

Hi, since the update of 3.0.0 in node-mongodb-native, the procider isnt working anyway as api changed in mongodb, can you please update your code please? Thank you

Will update it

kil urslef


Decentralized IDentifier Server

Hello, I am trying to set up a server  Decentralized IDentifier and my intention is to deploy the following connector:
edc-dataplane-hashicorp-vault with dependency onto Hashicorp Vault
Can you please tell me which one of the following DID servers can help me?
Thank you
https://github.com/decentralized-identity/universal-resolver?tab=readme-ov-file

Please read the EDC documentation and familiarize yourself with decentralized identity technologies such as DIDs and DID resolvers.
This discussion forum is for specific technical questions. We can't provide general guidance here.


useACMEHost does not add subdomain as valid to SSL certificate

Issue description
I'm setting up a webserver with (roughly) this kind of structure:
"carbon.sh" {
   useACME = true;
   serverAliases = [ "www.carbon.sh" ];
   [...]
}
"source.carbon.sh" {
   useACMEHost = "carbon.sh";
   [...]
}

When using this config, source.carbon.sh does not get added to the list of domains on my SSL certificate. Only www.carbon.sh and carbon.sh work. If I add the broken subdomain as an alias of carbon.sh, it works, but the functionality is broken.
I'm guessing the issue happens because of the conditions on this line. For some reason if a domain uses useACMEHost, it gets excluded from the list of approved domains on the certificate.
Steps to reproduce
Follow the same configuration I wrote out on my issue description. Or you can try and access my site. carbon.sh will work but source.carbon.sh will say this:

This server could not prove that it is source.carbon.sh; its security certificate is from carbon.sh. This may be caused by a misconfiguration or an attacker intercepting your connection.

Technical details
~Please run nix-shell -p nix-info --run "nix-info -m" and paste the results.~
I currently do not have access to my server, so I cannot run this command. I could post it in a little while once I get to my machine and log in.

useACMEHost is supposed to be used with certificates created using security.acme.certs, see the original commit. If I recall correctly, it was not possible to add the subdomains automatically due to the way the option is structured.

@jtojnar Well what is the point of having enableACME in the first place then?
Should I submit a PR for this at some point or should I not bother?


Add Q&A fallback form

See Q&A with NLU tab in self assessment flow v1.4
Will require extracting common logic from the regular Q&A form

Modifications to the actual QA form were done in #312 instead


SVGPainter returns the wrong default size when percentage units are used in the SVG file

Describe the bug
The androidx.compose.ui.res.SVGPainter class returns a defaultSize (and in turn, sets the intrinsic sizes in the Image composable) even when a size in concrete units is not specified in the SVG file.
Affected platforms
Desktop (reproduced), and potentially any platform using the SVGPainter class.
Versions

Kotlin 1.8.20 (but also 1.9.10)
Compose Multiplatform version*: 1.4.1, 1.5.1
OS version(s)* (required for Desktop and iOS issues): Windows 11, any build
OS architecture (x86 or arm64): x86_64
JDK (for desktop issues): 17

To Reproduce
Create a painter loaded from an SVG resource with width and height set to 100% (<svg ... width="100%" height="100%">:
val painterResource = painterResource("svg_logo.svg")

Where svg_logo.svg is this one (By W3C SVG Logo, CC BY-SA 4.0)
Inspect the painterResource's intrinsicSize property. It will be Size(100.0, 100.0).
Expected behavior
Assigning 100 pixels to be the intrinsic size of an SVG that sets a percentage as its size is not sensible in that context.
Possibly, it should not be set at all, or perhaps the viewBox boundaries in the SVG should be taken into consideration.
Screenshots

Additional context
By debugging and digging in the source code, the problem happens in the DesktopSvgResources.desktop.kt file, where this code calculates the default size in px of the painter:
private val defaultSizePx: Size = run {
    val width = root?.width?.withUnit(SVGLengthUnit.PX)?.value ?: 0f // <-- here
    val height = root?.height?.withUnit(SVGLengthUnit.PX)?.value ?: 0f // <-- and here
    if (width == 0f && height == 0f) {
        Size.Unspecified
    } else {
        Size(width, height)
    }
}

Maybe a check can be put into place to ignore that size if the original unit is PERCENTAGE.

withUnit doesn't really do any conversion of the value, it just creates a new SVGLength with the same value.
So, as I understand this code completely ignores the units from an .svg file, which is likely a bug (I'll check with the team).

I think the easiest way for us is to treat it as Size.Unspecified.  What is your expectation for image behaviour when its size unit is PERCENTAGE?
cc: @igordmn Maybe we can convert other units to pixels. But not sure for now how to correctly handle PERCENTAGE unit.

I think the easiest way for us is to treat it as Size.Unspecified. What is your expectation for image behaviour when its size unit is PERCENTAGE?](cc: @igordmn Maybe we can convert other units to pixels. But not sure for now how to correctly handle PERCENTAGE unit.)

I would treat percentage as unspecified, and convert other units to px (that was the idea, but it seems we have a bug)

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Coverage not detecting lines that are covered by tests

🐛 Bug Report
I have two methods in a file that return a new array by reducing the one that is passed in. On one of the methods, the coverage detects that it's been tested, however on the second method with the exact same ode (just accessing different properties), the coverage is reporting the lines are untested, even though the method is being used in multiple tests.
To Reproduce
Implementation:
const rebuildListOne = (objectWithList) => {
    return Object.keys(objectWithList.data.list).reduce((acc, i) => {
        const item = objectWithList.data.list[i];
        return [
            ...acc, {
                ...item
            }
        ];
    }, []);
};

const rebuildListTwo = (objectWithList) => {
    return Object.keys(objectWithList.data.cars).reduce((acc, i) => {
        const item = objectWithList.data.cars[i];
        return [
            ...acc, {
                ...item
            }
        ];
    }, []);
};

module.exports = {
    rebuildListOne,
    rebuildListTwo
};

Test:
describe('my-list-builder', () => {
    describe('when rebuilding listOne', () => {
        it('should convert objects to a list', () => {
            const listRebuilt = rebuildListOne(myWeirdObject);

            const itemOne= listRebuilt.find(m => m.someProperty === 'test2');
            const itemTwo = listRebuilt.find(m => m.someProperty === 'test2');

            expect(listRebuilt.length).toEqual(2);
            expect(itemOne).toBeDefined();
            expect(itemTwo ).toBeDefined();
        });
    });

    describe('when rebuilding listTwo', () => {
        it('should convert objects to a list', () => {
            const listRebuilt = rebuildListTwo(myWeirdObject);

            const itemOne= listRebuilt.find(m => m.someProperty === 'test2');
            const itemTwo = listRebuilt.find(m => m.someProperty === 'test2');

            expect(listRebuilt.length).toEqual(2);
            expect(itemOne).toBeDefined();
            expect(itemTwo ).toBeDefined();
        });
    });
});

Expected behavior
The coverage should complete this with 100% coverage. However, My first method appears to covered, but the second method, in this case "rebuildListTwo" appears to not be covered, even though they are.
envinfo

System:
    OS: Windows 10
    CPU: (8) x64 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
  Binaries:
    Node: 10.15.3 - C:\Program Files\nodejs\node.EXE
    npm: 6.11.2 - C:\Program Files\nodejs\npm.CMD

Jest version: ^24.9.0

Closing due to lack of repro repository. Please send one and reopen


Add unsafe member attribute

Rendered view

Believe it or not, this is the third RFC that has proposed this exact feature. See #80 and #358. (The other RFCs made it unsafe to read unsafe fields, too, but they’re otherwise identical.)
I think that the fact that this feature has been proposed independently three times basically proves that this feature is wanted. (The other RFCs weren’t closed indefinitely, though, just postponed, so I think that whether or not this feature is wanted is irrelevant until after 1.0. Still, it’ll be an interesting point to bring up when the original RFC gets reopened.)

Oops…


How to check if a subscription already exists to protect a page?

Hello everyone,
I'm pretty much a beginner in Rails, I have installed Koudoku and tested the payment method, however I'm not sure how to protect a page. I want the page only viewed by who subscribe to our services. How can I do that?
I have tried to setup something like this in my home controller
if current_owner and current_owner.subscription.present?
but the current_owner is not set.
Best Wishes,
Thomas

@ThomasSysOps Are you using Devise? If so, you should also use CanCanCan to handle authorization

Hey @yas4891, Yes, I'm using Devise. I will check CanCanCan now.

Thank you very much I think this will solve my issue, however do you happen to have an example of the ability.rb?

For those who also has the same issue my solution was to add this to my controller.
def webdevelopment
if !current_user
redirect_to "/pricing"
else
if Subscription.exists?(:user_id => current_user.id)
else
redirect_to "/pricing"
end
end


Feature Request:  Rebalance Property

Ever founded a new city that isn't working all of its tiles because one of your nearby cities had already expanded to some tiles outside its working radius?  You then have to take a closer look to find out how to assign them.
One thing that would help a lot would be a button that would automatically rebalance tiles that another city can't even work.
I'd say ignore, for now, the mildly complicating issue of future National Parks.  Speaking of which, is it even possible to swap ownership of hexes outside 3?  Is the inability to do so with the default game just a matter of UI or is a core restriction?  I'd dearly love to be able to swap ownership of ANY hex I own, not just those in the working radius.

After further consideration, this steps somewhat outside of the purview of CQUI since it would be automatically doing something for you requiring no prior input or consideration. Closing issue


Add a http port to an unban link

When a bot generates an unban link for admin, it uses only the domain name, supposing that there is a frontend which will translate the request to the bot as a backend. It will be useful to have an additional public port parameter when there is no frontend before the standalone bot.

not needed anymore after we got rid of server, see #16


Confirmation not working

When I tap on the call button and the camera button their is no camera

@JackPlaysGames0510 Can you provide more context like your iOS version, you're using iPA or deb ?

When I tap on the call button and the camera button their is no camera

What do you mean by there is no camera ?

I'm using ios 18.1.1 and I'm using ipa using esign


UI/UX modified

Added a set of rules for the user's better understanding of the game.
Please assign some points

!bounty 90

Thank you!

!bounty 10


libagar menu and dialog positioned incorrectly in i3wm

First a few words of happy amazement :) I created some Nim bindings for libagar and it works like a charm!!! Love the simple straight forward interface. It's so cool when you only need a very thin layer to use a C library in a high-level language. Now for the issue.
I noticed an edge-case issue, menu and dialog are positioned incorrectly using the i3 tiling window manager with the glx backend. Windows are in the top left and the width is fullscreen.

Example program
#include <agar/core.h>
#include <agar/gui.h>

void MyHandlerFn(AG_Event *event)
{
  AG_TextMsg(AG_MSG_INFO, "Hello, %s!", AG_STRING(1));
}

int main(int argc, char *argv)
{
  AG_Window *win;

  AG_InitCore(NULL, 0);
  AG_InitGraphics(0);

  win = AG_WindowNew(0);
  AG_LabelNew(win, 0, "Hello, world!");

  AG_ButtonNewFn(win, 0, "Hello", MyHandlerFn, "%s", "world");
  AG_WindowShow(win);

  AG_EventLoop();

  return (0);
}

I suspect this is because a tiled window might not have the same sort of position information set as a floating window, which might result in libagar passing some kind of default position when creating the window for the dialog.
The example program works fine in OpenBox. I also noticed that the menu and dialog windows do not appear in the wmctrl -l list in i3, while they do appear there in OpenBox.
I have been unable so far to figure out where the relevant parts might be in the glx driver and window creation code. Any help much appreciated, and thanks again for making libagar!

Opened a discussion on the i3 forum as well. https://github.com/i3/i3/discussions/6312


Tests and Fix

Closes: #149

Codecov Report

Merging #156 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master      #156   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          405       406    +1
=========================================
+ Hits           405       406    +1

Impacted Files
Coverage Δ

django_property_filter/filters.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


defining stylesheets

I see a stylesheet defined in js in the examples, but is there a way to create stylesheets in purescript, maybe in combination using another library? I checked the generated code in case I missed something.

I poked around a bit more and found that the style type is CSS, an opaque foreign type that seems to accept any record:
RN.view
  { style:
    css
    { alignItems: "left"
    , backgroundColor: "#fff"
    }


Fix pivot field in repeatable

WHY
BEFORE - What was wrong? What was happening before this PR?
After #4077 merge the pivot field would not work properly if everything is not properly defined by us!
AFTER - What is happening after this PR?
The pivot field is correctly setup and it's working again.
HOW
How did you achieve that, in technical terms?
Added the manual configurations to the field.
Is it a breaking change or non-breaking change?
non
How can we test the before & after?
Check any BelongsToMany or MorphMany with pivot relations before and after this PR.

Let's define as little as possible here.

In addition, let's create a DIFFERENT PR that sets all subfields to text by default.

@tabacitu remove the attributes that are inferable from entity. 👍


for #528 Basic AuthEnveloped Content Encryptor, inlcuding attributes.

Hi, creating a PR for now.
We might want to collect a bit more wore before we merge, but I wanted to easily point to my commit.
Basic AuthEnveloped Content Encryptor, inlcuding attributes.
For now AES/GCM only, others can easily be added.

Just looking at this one now... there will be a couple of (smallish) changes...

Hi,
Sure thing! I have since changed the auth attributes handover to accommodate the authenveloped CMS generators.
However these changes contain a bit of refactoring of the ASN.1 pojos and CMS parsers (authenveloped extends enveloped).
I realize this is a bit of design change, so would you like me to put it in this PR or into a new one?
Cheers,
Matthias
Am 30. Juli 2019, 08:27, um 08:27, Legion of the Bouncy Castle Inc<EMAIL_ADDRESS>schrieb:

Just looking at this one now... there will be a couple of (smallish)
changes...
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/bcgit/bc-java/pull/567#issuecomment-516282132

I've synced up the latest. It should appear on github shortly.

Erm, everyone's noticed the work that was done on CMSAuthEnvelopedDataGenerator and CMSAuthEnvelopedData a couple of weeks ago haven't they?

On my mobile rightniw,but are referring to the merger of my pull request #528 ? That is in direct lint to what is in my fork now.
At the time we wanted a way of producing authenveloped with authed attributes, so I did that first

Ok merge is done. Please have a look and comment on wether or not we want to proceed using Authenveloped extends enveloped

No, I wouldn't have AuthEnveloped extend Enveloped, ASN.1 is a lot of things, but OO it isn't. The two structures really different.

Hmm,
I generally agree, but in this case all of the properties in enveloped are in auth enveloped. Also in the same order. Have you looked at the code?
Anyway,the alternative is to copy all the code from enveloped an either all generators or extract an interface.
Cheers,
Mad
Am 17. Aug. 2019, 07:01, um 07:01, Legion of the Bouncy Castle Inc<EMAIL_ADDRESS>schrieb:

No, I wouldn't have AuthEnveloped extend Enveloped, ASN.1 is a lot of
things, but OO it isn't. The two structures really different.
--
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub:
https://github.com/bcgit/bc-java/pull/567#issuecomment-522205267

Thanks for suggestions, marking this as closed as I think this has finally iterated to something workable. The most difficult thing to deal with properly was the manner in the mac gets treated. I think the current approach will work for streaming as well, but that's something we'll need to look at later.


Caching does not work with dependencies

I have a simple crud app. I am using dependencies to get database session. Here is the code to init fastapi-cache
@asynccontextmanager
async def lifespan(app: FastAPI):
    redis = aioredis.from_url("redis://localhost")
    FastAPICache.init(RedisBackend(redis), prefix="fastapi-cache")
    yield
    await redis.close()

app = FastAPI(lifespan=lifespan)

When I try to get data from endpoint without dependencies, I get value from the cache.
However, when I try to add get db dependency, endpoint is being run fully and new cache is produced.
@router.get("/{username}", response_model=schemas.UserOut)
@cache(expire=60)
async def get_user(username: str, db: Annotated[AsyncSession, Depends(get_db)]):
    user = await crud.get_user_with_username(db, username)
    user.profile_image = schemas.ProfileImageOut(filename=user.profile_image)
    return user

Code for getting db.
async def get_db():
    async with async_session() as session:
        yield session

Is there any way, I can exclude AsyncSession from the cache generation?
I did not found this in the documentation.
I am using fastapi-cache2==0.2.1, redis==4.6.0

Hi @enti, I had the same issue and it should be caused by the usage of the db kwarg inside the default key builder. You should fix by creating a custom key builder that doesn't use the db session:
def no_db_session_key_builder(
    func: Callable[..., Any],
    namespace: str = "",
    *,
    request: Optional[Request] = None,
    response: Optional[Response] = None,
    args: Tuple[Any, ...],
    kwargs: Dict[str, Any],
) -> str:
    # remove db from kwargs so that it's not included in the cache key
    kwargs.pop("db")
    cache_key = hashlib.md5(f"{func.__module__}:{func.__name__}:{args}:{kwargs}".encode()).hexdigest()  # noqa: S324
    return f"{namespace}:{cache_key}"

Interesting... I wasn't mentioned but got an email that I was...

Interesting... I wasn't mentioned but got an email that I was...

Yes, sorry, I messed up, it was a typo (entl -> enti) with the help of github autocomplete :)

Hi @entl, I had the same issue and it should be caused by the usage of the db kwarg inside the default key builder. You should fix by creating a custom key builder that doesn't use the db session:

def no_db_session_key_builder(

    func: Callable[..., Any],

    namespace: str = "",

    *,

    request: Optional[Request] = None,

    response: Optional[Response] = None,

    args: Tuple[Any, ...],

    kwargs: Dict[str, Any],

) -> str:

    # remove db from kwargs so that it's not included in the cache key

    kwargs.pop("db")

    cache_key = hashlib.md5(f"{func.__module__}:{func.__name__}:{args}:{kwargs}".encode()).hexdigest()  # noqa: S324

    return f"{namespace}:{cache_key}"

Hi, thanks for your reply. I have found another solution but forgot to close the issue. I have read documentation couple more times thoroughly and understood that cache decorator uses repr of the argument to generate md5 hash. So I added repr to database class, which returns constant value.

Actually I think this is a bug.

Hi @entl, I had the same issue and it should be caused by the usage of the db kwarg inside the default key builder. You should fix by creating a custom key builder that doesn't use the db session:

def no_db_session_key_builder(

    func: Callable[..., Any],

    namespace: str = "",

    *,

    request: Optional[Request] = None,

    response: Optional[Response] = None,

    args: Tuple[Any, ...],

    kwargs: Dict[str, Any],

) -> str:

    # remove db from kwargs so that it's not included in the cache key

    kwargs.pop("db")

    cache_key = hashlib.md5(f"{func.__module__}:{func.__name__}:{args}:{kwargs}".encode()).hexdigest()  # noqa: S324

    return f"{namespace}:{cache_key}"

I guess creating custom key builder is better approach than using repr function)

Hi @long2ice  wasn't sure who to ping, but is this not an issue ? Is it possible to get an advice or reference to documentation about how to use fastapi-cache with Dependencies ?

This looks like a bug. IMO dependencies should be ignored. What really matters are a URL params, query params, etc.


Added AnonVPN <IP_ADDRESS>

Added AnonVPN <IP_ADDRESS>
https://anonvpn.io

Could you please squash your commits?

Looks fine, now. As soon as Travis passes, we can merge this.

Awesome. Glad I could contribute. I was kinda surprised this cask didn't already exist. I figured since it didn't, I'd add it.

We appreciate the contribution.

Thank you for the contribution. It was merged directly as abd5a07b5eef4bb7a7ac4c5d3984ced1463e8fe9 to keep commit history cleaner. Your contribution is still credited to you.


[impeller] AiksTest.CanDrawPaint is not rendering correctly

When running locally with playgrounds i just see black, when running it in the golden tests I'm seeing the error magenta color for the whole screen.
seen on: 047fc60dd0a9c48938fd4f9f7c38359aa8ed90b6

The generated golden image:

Which backend?

Which backend?

@jonahwilliams metal, adding the info


tigerbeetle: 0.14.180 -> 0.14.181

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for tigerbeetle is: A financial accounting database designed to be distributed and fast
meta.homepage for tigerbeetle is: https://tigerbeetle.com/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.14.181 with grep in /nix/store/m1jr57w67s3s0bz942a7jvs0bpfsyya7-tigerbeetle-0.14.181
found 0.14.181 in filename of file in /nix/store/m1jr57w67s3s0bz942a7jvs0bpfsyya7-tigerbeetle-0.14.181

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
tigerbeetle

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/m1jr57w67s3s0bz942a7jvs0bpfsyya7-tigerbeetle-0.14.181 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A tigerbeetle https://github.com/r-ryantm/nixpkgs/archive/ae19278089b62227f485d27747a61818d6a416f3.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/ae19278089b62227f485d27747a61818d6a416f3#tigerbeetle

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/m1jr57w67s3s0bz942a7jvs0bpfsyya7-tigerbeetle-0.14.181
ls -la /nix/store/m1jr57w67s3s0bz942a7jvs0bpfsyya7-tigerbeetle-0.14.181/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

tigerbeetle

Maintainer pings
cc @DanielSidhion for testing.

@NixOS/nixpkgs-merge-bot merge


Add purpose of this library

It's not clear from README.md why I may want to use this library. Though, it looks cool, it's actively maintained, even uses megaparsec instead of parsec! But I think that it would be good to have 2-3 examples of problems which can be solved with this library.

Hi, thank you for your feedback! It's a great idea, I will get into it as soon as possible.

 Add purpose of this library

Solved by #58


[SPARK-13487][SQL] User-facing RuntimeConfig interface

What changes were proposed in this pull request?
This patch creates the public API for runtime configuration and an implementation for it. The public runtime configuration includes configs for existing SQL, as well as Hadoop Configuration.
This new interface is currently dead code. It will be added to SQLContext and a session entry point to Spark when we add that.
How was this patch tested?
a new unit test suite

cc @marmbrus

Test build #52003 has started for PR 11378 at commit 74fac3f.

Test build #52003 has finished for PR 11378 at commit 74fac3f.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
abstract class RuntimeConfig
class RuntimeConfigImpl extends RuntimeConfig

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

Merged build finished. Test PASSed.

LGTM. Merging to master.


[Tommy Collison] Sprint challenge

Start time: 22:09 mountain time. End time: 23:32 mountain time. @John-Spraul. Thx!

centering the top nav bar
fixing the bottom nav spacing
spacing the middle content on the about page


JBDS-3710 add metadata and into the electron...

JBDS-3710 add metadata and into the electron installer exe file

@nickboldt as #110 is merged, can we close this PR?

Yes, obviously. :D


of lost links & missing rings

I've been crawling through the webring sites and found a few broken links and a site that no longer seems to link back to the webring. most of the broken links were already raised in previous issues but I'll just list them here:

.008 https://anxl.faith/
.034 https://underscorediscovery.ca/
.071 https://gueorgui.net/
.140 https://0l.wtf/
.164 https://dyslexic.ink/

site with no webring links:

.108 https://www.marginchronicles.com/site/essays/-feed.html

Thanks removed :)


try to fix CI: Use System V API instead of POSIX API for host shared memory

Try to fix CI.

Use System V API for host shared memory, so that we don't rely on /dev/shm size. Depending on /dev/shm size need --shm-size flag at container startup, for RAPIDS CI this may need support in shared-action-workflows.
Enabled all cpp tests.
Fixed append_unique_tests and wholememory_comm_tests in cpp tests.
Enabled all Python tests except for aarch64. Seems there is no public pytorch package avaiable supporting CUDA for aarch64.

/merge


Add phoenix reader

This PR will add a Phoenix Reader. It will also rebase the io module to be more modular

[ ] Add Phoenix reader adopted from J. Torres-Solis from Phoenix Geophysics

[ ] Read file into a ChannelTS
[ ] Test each different file types
[ ] Plugin to existing reader structure

[ ] Add example of reading in Phoenix data into an MTH5
[ ] Rebase io module to be more modular.

[ ] Split up zen, nims, etc into their own folders

[ ] Add tests
[ ] Add documentation

Codecov Report

Merging #103 (b832312) into master (686eae3) will decrease coverage by 4.28%.
The diff coverage is 0.58%.

:exclamation: Current head b832312 differs from pull request most recent head f986845.

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

Fix Issue #111
Fix Issue #113
fix Issue #118
fix Issue #103

Have rebased io updated tests and documentation.  Aurora runs with it.


Merging dependabot's PRs directly does not build the app

I've just realized that PR created by dependabot does not contain the built app. We can do it manually before merging with a commit amend or create a new issue to update all dependencies as we did here:

https://github.com/Nautilus-Cyberneering/git-queue/issues/132
https://github.com/Nautilus-Cyberneering/git-queue/issues/116

I personally prefer the second option.
Pros:

Build once
Update all

Cons:

You have to review all dependabot's PRs and close them manually and be sure you do not close the github actions updates.

Regarding PR related to GitHub Actions version I workflows I suppose we do not need to build the action if only workflows change.
@da2ce7 @yeraydavidrodriguez

@josecelano We should enforce a build of the application in every commit (with some sort of workflow), except for commits that only edit the .github folder.

@josecelano We should enforce a build of the application in every commit (with some sort of workflow), except for commits that only edit the .github folder.

OK, then I will update the README to explain our policy to use dependabot:

For GitHub Actions upgrades we can merge directly using GitHub button.
For node modules upgrades we can either reuse the dependabot branch and build the app or create a new issue to update dependencies.

@josecelano if we are running the yarn build && yarn package check for every commit, it doesn't hurt to run it for the .github updates; just there should be no changes...

Add also another good practice proposed by @da2ce7

When we integrate a new dependency, or upgrade dependencies, each indivisible dependency >change (update, remove, add) should have it's own commit should including:
Updated package.json file.
Updated yarn.lock
Regenerated dist directory.
Updated documentation, if needed.
Minimal changes to the code to accommodate the change in the dependencies.

@da2ce7 my idea is to add a new section inside the "Release" section of the README because I think this is related to the release process and make the action executable for each commit.
Since we have started a discussion about this topic I would also like to review the whole "Release" section in the README. To be honest part of the text was inherited from the template we forked. There is something I don't understand:
yarn package
git add dist
git commit -a -m "prod dependencies"
git push origin releases/v1

I do not know why they use a "release" branch. The official documentation is also confusing.
At the moment we are only using the "main" branch for releases. In fact, we release automatically with the publish-github-release.yml workflow.
Am I missing something? What do we need that "release" branch for? In the beginning, I thought that was the default branch GitHub used to get the releases from.

@da2ce7 my idea is to add a new section inside the "Release" section of the README because I think this is related to the release process and make the action executable for each commit.
Since we have started a discussion about this topic I would also like to review the whole "Release" section in the README. To be honest, part of the text was inherited from the template we forked. There is something I don't understand:
yarn package
git add dist
git commit -a -m "prod dependencies"
git push origin releases/v1

I do not know why they use a "release" branch. The official documentation is also confusing.
At the moment we are only using the "main" branch for releases. In fact, we release automatically with the publish-github-release.yml workflow.
Am I missing something? What do we need that "release" branch for? In the beginning, I thought that was the default branch GitHub used to get the releases from.

It might be related to release-isolation or to Deployment branches.


Line with dynamic dash on/off length

A new feature could be added to Line, so a Line can be created from a list of numbers that define how the line will be rendered. The list would be on an on/off configuration. For instance we can have [t1, z1, t2, z2, t3, z3, ... ] where the set of tn values can be the segments in which the line will be rendered and the zn values the one that the segments won't be rendered.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Can you give an example of how that line would then be instantiated? I'm not sure I fully understand what you mean.

a = Line(points=points, dash_list=[2,4,1,6,8,2]) This would create a line with the first dash length 2 then an offset of 4 then a dash lenght of 1 then an offset of 6 and so on.

Implemented here.


Align Model, API, CT

alignment file should show any discrepancies between Classes and Attributes within the 3 locations

@daveih @EMuhlbradt @czwickl
Check out generated file: https://github.com/cdisc-org/DDF-RA/blob/release-2-8-0/Deliverables/UML/alignment.csv
Looks like it still needs some tweaking for things like inheritance.

@daveih @EMuhlbradt @czwickl
Check out generated file: https://github.com/cdisc-org/DDF-RA/blob/release-2-8-0/Deliverables/UML/alignment.csv
Looks like it still needs some tweaking for things like inheritance.

Apart from that the UML, CT and API are in different stages of development which caused some issues, I think that the inherited classes are not shown as separate entities in the API but only by the classes inheriting the items. @dih-cdisc: am I right that you do not show them separately in the API in those cases?