[DOCUMENTATION] Cannot install picamera2 using DRAFT documentation

This form is ONLY for reporting issues with https://datasheets.raspberrypi.com/camera/picamera2-manual-draft.pdf
Please only report one documentation bug per issue!
Describe the problem
Using the instructions in The Picamera2 Library on Page 5 Section 2.2, I am stumbling at the final step for the installation of picamera2:
sudo apt install -y python3-picamera2
Used cut-n-paste from the Picamera2 documentation; checked for obvious typos but cannot see anything obvious. The output message(s) from the command are:
Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python3-picamera2
Suggested Improvement
Can you suggest a fix for the problem or better wording?
Installed the prerequisites (two installs + numpy upgrade) without any significant errors. I may have overlooked some other steps (perhaps documented elsewhere) but I suspect that this is an operator self-inflicted error because I'm failing at the starting block.
Hardware/Software :
Is the problem with any particular type of Pi or version of the software?
My platform is:
$ uname -a Linux localhost 5.15.32-v7+ #1538 SMP Thu Mar 31 19:38:48 BST 2022 armv7l GNU/Linux
The OS image is from the Foundation's site:
Raspbian GNU/Linux 11 (bullseye) armv
on
Raspberry Pi Zero 2 W Rev 1.0
As customary, apt update/upgrade was performed before embarking on the installation of picamera2.
Additional context
Don't have any alternate RPi to perform parallel tests. (Waiting for RPi4 8GB since late August 2021 across the pond). Of course, have unpacked HQ camera and both lenses but want to test with V2 camera before attempting anything more ambitious. Thanks.
Kind regards.

Sorry, the instructions in the manual are a little bit ahead of reality at the moment, we haven't got an apt package yet. For now, please continue to use the instructions in this repository. Obviously that will get fixed soon. Thanks.

Thanks!

I am still hitting this one. Are there any updates?

Hi, just to confirm: it's still not finding the python3-picamera2 package on apt? The package is definitely posted now, could you verify that you've done sudo apt update? Thanks.
Note also that if you've previously installed Picamera2 using pip, then we advise uninstalling it first (pip3 uninstill picamera2).

Thanks, @davidplowman.
Here is the output from just a few minutes ago:
pi@raspbari17:~/projects $ sudo apt update && sudo apt -y upgrade
Get:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease [15.0 kB]
Get:2 http://archive.raspberrypi.org/debian bullseye InRelease [23.7 kB]
Get:3 http://archive.raspberrypi.org/debian bullseye/main armhf Packages [301 kB]
Fetched 340 kB in 2s (141 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspbari17:~/projects $ sudo apt install picamera2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package picamera2
pi@raspbari17:~/projects $ uname -a
Linux raspbari17 5.15.61-v7+ #1579 SMP Fri Aug 26 11:10:59 BST 2022 armv7l GNU/Linux
pi@raspbari17:~/projects $

I am still a newbie with respect picamera2 - running very, very simple tutorials. Thanks again for all your work in making picamera2 more accessible.
Kind regards.

It seems so, here is what I am getting:
user@pulga:~ $ pip3 uninstall picamera2
WARNING: Skipping picamera2 as it is not installed.

user@pulga:~ $ sudo apt update
Get:1 http://archive.raspberrypi.org/debian buster InRelease [32.6 kB]
Get:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
Get:3 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13.0 MB]
Get:4 http://archive.raspberrypi.org/debian buster/main armhf Packages [392 kB]
Fetched 13.5 MB in 27s (504 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
2 packages can be upgraded. Run 'apt list --upgradable' to see them.

user@pulga:~ $ sudo apt install -y python3-picamera2
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python3-picamera2

@aguaviva You are on buster. python3-picamera2 is only available on bullseye
@baqwas Package name is python3-picamera2, not picamera2

Yeah I was just checking that, the deb package does only appear in the bullseye repo -
curl https://archive.raspberrypi.org/debian/dists/bullseye/main/binary-armhf/Packages | grep -i "python3-picamera2"

No package is found for the buster repo -
curl https://archive.raspberrypi.org/debian/dists/buster/main/binary-armhf/Packages | grep -i "python3-picamera2"

Sorry, that wasn't very clear. It means should work on other hardware platforms (Pi 4Bs, Pi 3s etc., compute modules, and so on). It does not apply to older software releases, and I will get that fixed. It is perhaps stated more clearly in the "Getting Started" chapter of the manual.

This note is simply to add depth to my previous comment:
  `.::///+:/-.        --///+//-:``    pi@raspbari17
 `+oooooooooooo:   `+oooooooooooo:    OS: Raspbian GNU/Linux 11 (bullseye) armv
  /oooo++//ooooo:  ooooo+//+ooooo.    Host: Raspberry Pi Zero 2 W Rev 1.0
  `+ooooooo:-:oo-  +o+::/ooooooo:     Kernel: 5.15.61-v7+
   `:oooooooo+``    `.oooooooo+-      Uptime: 6 days, 20 hours, 59 mins
     `:++ooo/.        :+ooo+/.`       Packages: 1939 (dpkg)
        ...`  `.----.` ``..           Shell: bash 5.1.4
     .::::-``:::::::::.`-:::-`        CPU: BCM2835 (4) @ 1.000GHz
    -:::-`   .:::::::-`  `-:::-       Memory: 110MiB / 363MiB
   `::.  `.--.`  `` `.---.``.::`      CPU Usage: 14%
       .::::::::`  -::::::::` `       Disk (/): 23G / 59G (40%)
 .::` .:::::::::- `::::::::::``::.    Local IP: <IP_ADDRESS>
-:::` ::::::::::.  ::::::::::.`:::-   Users: pi
::::  -::::::::.   `-::::::::  ::::
-::-   .-:::-.``....``.-::-.   -::-
 .. ``       .::::::::.     `..`..
   -:::-`   -::::::::::`  .:::::`
   :::::::` -::::::::::` :::::::.
   .:::::::  -::::::::. ::::::::
    `-:::::`   ..--.`   ::::::.
      `...`  `...--..`  `...`
            .::::::::::
             `.-::::-`


[Feature] Use enum for file.format

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
Currently option for file.format is string, we should use enum and check the value in ddl
Solution
No response
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

assign to me thanks.


Prepare for new release of Confluence

Workflow links: https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/7123729270, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/7123730885, https://github.com/atlassian-labs/atlassian-slack-integration-server/actions/runs/7123734054.

Integration tests pass, so the current version of Confluence for Slack is marked compatible with Confluence 8.7.1.


Documentation example does not match actual API

Description
The Example provided in the docs here does not match the actual required parameter type. The Parameters says one must pass a list of tuples yet the Example given passes a dict, which would raise exceptions:ValueError: too many values to unpack. Unfortunately, we have fallen victim to writing our code based off of the example more times than I would like to admit.
Expected Behavior

A valid example such as:

@newrelic.agent.background_task()
def send_request():
	response = requests.post('http://URL_path', headers=headers, data=data)
	newrelic.agent.add_custom_parameters([
                ('url_path_status_code', response.status_code),
        ])

Potentially, a misuse of the SDK does no totally fail code execution but could notify the user of the error loudly. Similar to how the logging module is implemented:

In [8]: def dont_kill_my_code():
   ...:     logger.info("bad data %d", "not a digit")
   ...:     print("I made it here still")
   ...:

In [9]: dont_kill_my_code()
--- Logging error ---
Traceback (most recent call last):
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/logging/__init__.py", line 1081, in emit
    msg = self.format(record)
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/logging/__init__.py", line 925, in format
    return fmt.format(record)
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/logging/__init__.py", line 664, in format
    record.message = record.getMessage()
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/logging/__init__.py", line 369, in getMessage
    msg = msg % self.args
TypeError: %d format: a number is required, not str
Call stack:
  File "/Users/markward/anaconda2/envs/pollen/bin/ipython", line 11, in <module>
    sys.exit(start_ipython())
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/__init__.py", line 126, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/traitlets/config/application.py", line 664, in launch_instance
    app.start()
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/terminal/ipapp.py", line 356, in start
    self.shell.mainloop()
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/terminal/interactiveshell.py", line 563, in mainloop
    self.interact()
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/terminal/interactiveshell.py", line 554, in interact
    self.run_cell(code, store_history=True)
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 2866, in run_cell
    result = self._run_cell(
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 2895, in _run_cell
    return runner(coro)
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/core/async_helpers.py", line 68, in _pseudo_sync_runner
    coro.send(None)
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3071, in run_cell_async
    has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3263, in run_ast_nodes
    if (await self.run_code(code, result,  async_=asy)):
  File "/Users/markward/anaconda2/envs/pollen/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3343, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-9-405f0f64a064>", line 1, in <module>
    dont_kill_my_code()
  File "<ipython-input-8-45cf361c5300>", line 2, in dont_kill_my_code
    logger.info("bad data %d", "not a digit")
Message: 'bad data %d'
Arguments: ('not a digit',)
I made it here still

Hi @MarkAWard,
Thank you so much for filing this issue! We greatly appreciate the feedback. The documentation has been updated to reflect an example that passes in a list. Please feel free to file issues for any inconsistent documentation that you encounter.
We are sorry to hear about invalid inputs crashes in your application, and we appreciate your suggestion.  We will close this issue for now since the documentation issue has been addressed, but if this continues to be a problem, please reopen the ticket.


Missing integration time correction

According to the design document:
On p1:

The VEML6075 shows linear sensitivity to solar UVA as well as UVB light and its sensitivity can easily be adjusted with selecting
the proper integration times.

p20; also seen on Fig 21

The resulting counts are strictly linear, meaning a factor of 2 in integration time also results in a factor of 2 in output
data counts.

So i would expect in read(...) there should be a linear correction (division) first, for the selected integration time. Hence:
        let uva = self.read_uva_raw()? / divisor;
        let uvb = self.read_uvb_raw()? / divisor;
        let uvcomp1 = self.read_uvcomp1_raw()? / divisor;
        let uvcomp2 = self.read_uvcomp2_raw()? / divisor;

Where the divisor is integration time / 50; so 16 for 800 ms, 1 for 50 ms.

Good catch! I will review the datasheet and fix this some time soon.

Good catch! I will review the datasheet and fix this some time soon.


Add return value accessor to assigner

After successful evaluation assigner has a return value of circuit function, which now can be printed to stdout (see print_format). However we cannot access this value from API now. It will be nice for users and really helpful for testing assigner.
I suggest we add public method get_return_value:
std::vector<typename BlueprintFieldType::integral_type> get_return_value();

If the return value is primitive (integer, field), this returns vector of a single element - the value itself;
Using BlueprintFieldType::integral_type here allows to return single value for non-native fields (at least as I understood it);
If the return value is LLVM vector of curve, this returns vector of values of corresponding size;
Other cases (pointers, structs and etc.) are not defined yet.

If the function is called not after successful evaluation, result must be undefined (probably empty).

@akokoshn @CblPOK-git
Is std::vector<typename BlueprintFieldType::integral_type> fine as a return value type?

We create all issues related to submodules in the zkllvm repository if I'm right

BlueprintFieldType::integral_type
It is basically uint256, works fine with pallas, but bls12381 has bit length of 381, need to use extended_integral_type which is something like uint4096.

For now only a partial implementation, which does not handle complicated cases with aggregated return types (just like it is done in printing output).
The rest of implementation will be covered in

#218


mongo select count with group by failing

I have a connection to my database: journal with a collection: messages.  A field in my collection is: payload.annoLg
I execute the query:
select payload.annoLg,count(*) from journal.messages group by payload.annoLg;
it returns with an empty document when I know there should be at least 17 unique values for payload.annoLg field.
I get the following "warning":
!ENTRY org.jkiss.dbeaver.model 2 0 2017-07-12 14:42:39.872
!MESSAGE Can't read column 'document' value
!SUBENTRY 1 org.jkiss.dbeaver.model 2 0 2017-07-12 14:42:39.872
!MESSAGE java.lang.Long cannot be cast to com.mongodb.DBObject
!STACK 0
java.lang.ClassCastException: java.lang.Long cannot be cast to com.mongodb.DBObject
at com.dbeaver.ent.mongodb.data.handlers.MongoDocumentValueHandler.fetchValueObject(MongoDocumentValueHandler.java:95)
at org.jkiss.dbeaver.ui.controls.resultset.ResultSetDataReceiver.fetchRow(ResultSetDataReceiver.java:106)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.fetchQueryData(SQLQueryJob.java:685)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:406)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.extractData(SQLQueryJob.java:778)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:1820)
at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:91)
at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:95)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Thanks for report

There are two issues actually:

Broken SELECT count(*)  - it will be fixed in 4.2
GROUP BY support - it is not yet supported by DBeaver Mongo SQL dialect. Mostly because it is not easy to map Mongo aggregation model (which involves map reduce) into plain relational model.

Hopefully GROUP BY support will be added in future releases (after 4.3).


First traffic collection on the web

So far, all of our traffic collections have been about mobile apps on Android and iOS. We are now working on extending Tweasel for the web, so we also need data on tracking requests on the web.

The first decision we need to make is which websites we want to visit.
After looking at the list of lists included in Tranco, I think the Chrome User Experience Report (CrUX) is going to be the best for our use case.
The other lists (and thus, Tranco itself) are too biased towards DNS lookups as opposed to actual websites, which we are interested in. For example, currently there are at least 12 rows in the top 25 of the Tranco list that are CDNs, DNS servers, etc., but not websites:
amazonaws.com
akamai.net
a-msedge.net
root-servers.net
akamaiedge.net
gstatic.com
tiktokcdn.com
googletagmanager.com
googlevideo.com
gtld-servers.net
akadns.net
windowsupdate.com

As far as accessing the CrUX data goes, there is https://github.com/crissyfield/crux-dumps, which has the very laudable goal of relieving you from having to deal with BigQuery. :D
I looked at the top 10k as of 2024/08. Unfortunately, I don't think that is going to be helpful for our use case, either. For example, look at the included entries for www.google.*:
https://www.google.bg
https://www.google.ch
https://www.google.co.il
https://www.google.co.nz
https://www.google.co.za
https://www.google.com.eg
https://www.google.com.my
https://www.google.com.pk
https://www.google.com.sa
https://www.google.com.sg
https://www.google.com.ua
https://www.google.dk
https://www.google.fi
https://www.google.hr
https://www.google.ie
https://www.google.sk

So, I had to use BigQuery after all to grab the top 10k for Germany using the following query:
SELECT DISTINCT origin, experimental.popularity.rank FROM `chrome-ux-report.country_de.202408` WHERE experimental.popularity.rank <= 10000

Dump: bquxjob_5ded4b14_19209284743.json, bquxjob_5ded4b14_19209284743.csv

The analysis has been running for a few days now. Code is in: https://github.com/tweaselORG/experiments/tree/b_web-monkey-september-2024

Final tally: The HAR files were around ~300 GB, the exported SQLite database of just the requests is ~20 GB.
In total, we have ~2.3 million requests across 9819 distinct initiator origins.

Following the investigation and discussion in https://github.com/tweaselORG/data.tweasel.org/issues/3, we have decided that for the time being we can only publish the data from the top 1k sites, unfortunately.

Downloaded the data for the top 1k from BigQuery:
SELECT DISTINCT origin, experimental.popularity.rank FROM `chrome-ux-report.country_de.202408` WHERE experimental.popularity.rank <= 1000

Dump: bquxjob_3370bb45_192c2744035.csv, bquxjob_3370bb45_192c2744035.json

Oh wait, the 10k dataset also has the rank information so I wouldn't have needed to do that. Well, anyway…

To trim the dataset, I:

Open the web-monkey-september-2024.db database in DB Browser for SQLite.
Used the File -> Import -> Table from CSV file feature to import the 1k dump.
Then, I ran delete from requests where initiator not in (select origin from ranks), which took a cool 338321ms with 5,342,925 rows affected. Afterwards, we have 592,377 rows in the raw dataset (instead of 5,935,302).
To verify the query did what I expected, I ran select count (distinct initiator) from requests. That returned 988, which seems reasonable (some sites may just not have worked).
Ran vacuum to free up disk space. Now, the DB is 2.1 GB instead of 19.9 GB.

For anyone interested, I uploaded a dump of the full dataset for the top 10k to Zenodo: https://zenodo.org/records/13990110


Prod Console data traffic not appearing in hotspot rewards or activity

Are you using Helium hosted Console or running your own open source Console?
Helium Console

If you are on Helium hosted Console, which url are you currently on?
console.helium.com

If you are experiencing bugs in Helium hosted Console, please specify your Organization name and Device ID (ex. 3483050b-284d-47e2-8eda-e087fc03a753).
Device ID: b6e2f78b-89fe-46b3-8539-e9e9adfe7317
Hotspot address: 112YQyWdgnwhgNiuYC1tHnzsLEXvGUr4Jea8upiYvY67aepB2t3h

Please describe your issue:
After successfully transferring data through the production console including both the Cargo and Mappers integration, I do not see any data transfer activity or rewards for the hotspot that transferred the data. For example, over the past 36 hours, Console has reported 50 DC all of which were transferred by shambolic-malachite-robin. However, during this time, no data transfer activity is reported on Explorer for this hotspot. I tested this same device on Staging console and it DID report data transfer for the same hotspot. At the same time, while the hotspot is not receiving data transfer rewards, I am being charged for DC in Console.

This has been addressed with a previous fix.


Notification won't fire if app is closed

I am using the https://market.nativescript.org/plugins/nativescript-laravel-echo plugin to receive broadcasts from my WebSocket server and while the app is loaded I am able to receive the broadcast and trigger the notification which works. This works whether the app is loaded in the foreground or background.
Once I close the app it's not able to receive the broadcast and generate the notification. I am looking at the firebase solution which generates a token which would allow for this I believe but this solution is a lot cleaner and way lot easier to use so I am wondering if this plugin can accommodate my use case.
Setup:

Nativescript Vue (2.4.0)
Vue (2.6.10)
Android 10

Code:
`import { TnsEcho } from 'nativescript-laravel-echo';
import { LocalNotifications } from "nativescript-local-notifications";
const options = {
key: 'oyraytsytgd',
wsHost: '<IP_ADDRESS>',
wsPort: 6001,
disableStats: true,
broadcaster: 'pusher', // socket.io, pusher
};
let Echo = new TnsEcho(options);
Echo.channel('payment').listen('Payment', e => {
console.log(e);
LocalNotifications.schedule([{
title: 'You have a new Payment Request',
body: 'A user is requesting a payment,
bigTextStyle: false,
forceShowWhenInForeground: true,
at: new Date(new Date().getTime() + (5 * 1000)), // 5 seconds from now
}]);
LocalNotifications.addOnMessageReceivedCallback(notificationData => {
    this.$navigateTo(Payment, { props: { id: e.id } });
});

});`

When the application is closed, your websocket is also closed. I would imagine you need to switch to a push notification.


($300) Android & iOS video support

I'm offering 0.8 bitcoin (approx $300 at the time of this writing) for working Android & iOS video support

@Dyscrete I have a working implementation of video recording that I built on top of a fork of this repo by @timmh. I'm going to get this repo working for RN 0.19, then fork it, and hopefully, I can have something up by the end of the weekend.

@hunteredwards I'm using RN 0.19 so it would be awesome if you could do this and I'd happily pay the bounty!

To be clear, it is known that iOS is currently working. I'm using it and that works fine. This is a request to get the feature working on Android. Feature parity across platforms is ideal. Thanks to anyone who takes this on.

Any update on this?

+1 video for android

Can we get this going?!

My initial stab at it here:
https://github.com/vespakoen/react-native-camera/commit/3d0ee9475166d83d9bdb73dfb4cf3ba681e3dd48
I feel I have tried anything, but cannot get a playable video file (there is data in there for sure, it just doesn't play, not on android, not in VLC)
This might be due to my device(s), the Samsung Galaxy S4 Mini, and a Nexus 7.
I commented a lot of the code to hopefully get other people going on trying it out / play with it / report back with findings / results.
To try out my branch, run:
npm install --save git+https://github.com/vespakoen/react-native-camera.git#master

Helpful links:
http://developer.android.com/guide/topics/media/camera.html#capture-video
http://developer.android.com/reference/android/media/MediaRecorder.html
http://developer.android.com/reference/android/media/CamcorderProfile.html

I have been working on this for awhile, and my fork is ready for a pull request:
https://github.com/lwansbrough/react-native-camera/pull/262

Supports same parameters and values as IOS, including captureMode, captureTarget, captureQuality, etc.
Updated Readme.md
Example code

Goal is "drop in" for compatibility with IOS... to make Android and IOS equivalent. I will continue to enhance this as bugs or additional changes are needed since I need this for my own project.

Thank you @marcejohnson and @vespakoen, I'll take a look at it shortly

Got in all the improvements and features requested so far.  Runs well in my test apps. Still no conflicts on base branch.  Grab the latest version and let me know what you think.

@samhunta the pull request is officially merged and now part of the repo:
https://github.com/lwansbrough/react-native-camera/pull/262
You can close this.


Shadow is missing when initial camera pos is far away from the object

Bevy version
0.12.1
AdapterInfo { name: "NVIDIA GeForce RTX 3090", vendor: 4318, device: 8708, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "546.33", backend: Vulkan }
What you did
I compile and run this code:
use bevy::prelude::*;

#[derive(Resource)]
struct State {
    x: f32,
}

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_systems(Startup, setup)
        .add_systems(Update, update)
        .insert_resource(State { x: -40.0 })
        .run();
}

fn setup(
    mut commands: Commands,
    mut meshes: ResMut<Assets<Mesh>>,
    mut materials: ResMut<Assets<StandardMaterial>>,
) {
    commands.spawn(PbrBundle {
        mesh: meshes.add(shape::Circle::new(4.0).into()),
        material: materials.add(Color::WHITE.into()),
        ..default()
    });
    commands.spawn(PbrBundle {
        mesh: meshes.add(Mesh::from(shape::Cube::default())),
        material: materials.add(Color::GREEN.into()),
        ..default()
    });
    commands.spawn(PointLightBundle {
        point_light: PointLight {
            shadows_enabled: true,
            ..default()
        },
        transform: Transform::from_xyz(4.0, 8.0, 4.0),
        ..default()
    });
    commands.spawn(Camera3dBundle::default());
}

fn update(mut state: ResMut<State>, mut camera: Query<&mut Transform, With<Camera3d>>) {
    let mut camera = camera.single_mut();

    let t = Vec3::new(state.x, 0.0, 10.0);
    camera.translation = t;
    camera.look_at(t - Vec3::Z, Vec3::Y);

    state.x = 0.0;
}

What went wrong
The code does not render the shadow of the cube.
Additional information
However, if you change insert_resource(State { x: -40.0 }); to insert_resource(State { x: 0.0 }); - the shadows renders normally.
If I increase PointLight's range property from default 20.0 to e.g. 1000.0 - the problem is solved, but for me it doesn't make sense because the cube is in range of the light, regardless of the camera position
Screenshots:

I was able to reproduce this on bevy main: https://discord.com/channels/691052431525675048/1203137850825244683/1203272752526532608


Support for npm link options, removed hardcoded usage of --production

Hi
Define options passed to npm link
  npm-link-shared <shared-modules-dir> <target-installation-dir> [--<npm-link-option> [--<npm-link-option>]];

For example:
  npm-link-shared /home/user/internal_modules/ /home/user/my-project --production

this prevents installation of devDependencies of shared modules by passing the production option to npm link (npm link --production)
This also works in combination with defining specific modules like that:
npm-link-shared <shared-modules-dir> <target-installation-dir>  [--<npm-link-option> [--<npm-link-option>]] [<module1..> [, <module2..>]];

Looks good! Thank you!


[Event Hubs] Tracking GeoDR feature support

Adding support for Geo-DR in Event Hubs
Community discussion has a public timeline estimate here. Adding support in phases.
Prototype:

https://github.com/Azure/azure-sdk-for-net/pull/38351

To do:

[x] Initial set up:

https://github.com/Azure/azure-sdk-for-net/pull/39454
https://github.com/Azure/azure-sdk-for-net/pull/41829 from architect feedback
https://github.com/Azure/azure-sdk-for-net/pull/41911 bug fix for issue found in testing prior to release
https://github.com/Azure/azure-sdk-for-net/pull/41871 bug fix for issue found in testing prior to release

[x] Prioritize sequence number over offset:

https://github.com/Azure/azure-sdk-for-net/pull/41360

After service deployment:

[ ] Initial changes:

Hide Offset
read sequence number to populate offset
translate reading offset to sequence number
Change some various logic -

[ ] Next changes:

New string property that represents sequence number / replication segment & associated logic

Initial preview and updated API surface complete.   Issues exist for tracking the remaining work.


Pressing Ctrl+C when --inspector-brk is used but debugger is not connected hangs Vitest

Describe the bug
When trying to debug Vitest with a break, Vitest hangs indefinitely if no connection is ever established.
Reproduction
vitest --inspect-brk --no-file-parallelism
Ctrl+C

https://stackblitz.com/fork/github/vitest-dev/vitest/tree/main/examples/basic?initialPath=__vitest__/
System Info
Any

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

This is what's happening when CTRL+c is pressed:
import { isMainThread, Worker } from "node:worker_threads";
import { fileURLToPath } from "node:url";
import inspector from "node:inspector";

const filename = fileURLToPath(import.meta.url);

if (isMainThread) {
  const worker = new Worker(filename);

  await new Promise((r) => setTimeout(r, 1_000));

  console.log("Terminating...");
  const timeout = setTimeout(() => console.log("Stuck here"), 2_000);
  await worker.terminate();

  clearTimeout(timeout);
  console.log("Done");
} else {
  inspector.open();
  inspector.waitForDebugger();
}

$ node worker.mjs
Debugger listening on ws://<IP_ADDRESS>:9229/65cec5ee-87d3-4a0c-b481-ac9d257a96f5
For help, see: https://nodejs.org/en/docs/inspector
Terminating...
Stuck here

Maybe we can send the event Runtime.runIfWaitingForDebugger somehow before terminating 🤔

For that I think we would need to connect to the Worker's inspector session from main thread with web socket. There's also session.connectToMainThread() but I've never got it working and there are no examples for it anywhere.
For the inspector session's web socket connection we have similar setups here:
https://github.com/vitest-dev/vitest/blob/6157282cc04494afc85085775d1f565c0d0dbb5a/test/inspect/test/inspect.test.ts#L13-L16
Worker not terminating when it's paused in waitForDebugger() sounds like a Node bug to me. Though it's still somehow able to terminate when default CTRL+c happens and process.stdin raw mode is not overwritten. 🤔

For that I think we would need to connect to the Worker's inspector session from main thread with web socket.

Can't we send postMessage from the main thread to the worker where the inspector is already initiated?

Inside the Worker setTimeout should be blocked when waitForDebugger() is active. I don't think Worker receives anything from postMessage either.

This should be fixed in Node v22.2.0: https://github.com/nodejs/node/pull/52971


[0050] Amended the rollover documentations

Context
The rollover period
Changes proposed in this pull request
Added a sequence diagram to depict the whole before and after rollover period.
Amended with more details towards the whole rollover period.
Guidance to review
Perform this locally and use time machine wisely
    bundle exec rake 'rollover:create_recruitment_cycle[2023, "2022-10-14", "2023-09-30"]'
    bundle exec rake rollover:providers

Have find setup
Checklist

[x] Make sure all information from the Trello card is in here
[x] Attach to Trello card
[x] Rebased master
[x] Cleaned commit history
[x] Tested by running locally

 Rollover - DRY run


Fixes mock in ConversationSnippet

#trivial

@alloy Fixed in this PR - https://github.com/artsy/emission/pull/1877


Add FTP-secure option to the plugin.

Hi Andr3as,
I don't know if I can contribute to this plugin? But I like to add a ftp-secure (ftps) option to the FTP codetransfer. Some servers I work with are using FTPS instead of regular FTP for more security.
I was thinking to add to the FTP screen a radio button when or when not FTPS is used. In the class.ftp.php it is then:
/////////////////////////////////////////////////////////////////////////
//  Connect remote server
/////////////////////////////////////////////////////////////////////////
private function connect() {
if(radiobutton==active){$connection_id = ftp_ssl_connect($_SESSION['ftp_host'], $_SESSION['ftp_port']);}
else{$connection_id = ftp_connect($_SESSION['ftp_host'], $_SESSION['ftp_port']);}

Good idea. Feel free to fork the repo and create a pull-request.

Hi,
Was anyone able to add a SFTP/FTPS connection to codetransfer? It would really be helpful.

I stopt working on the FTPS feature because I walked into some issues after implementing the switch. I don't remember exactly, but I think it was some server-side certificate issue which cost me significant time. SFTP is reachable with the SCP interface I think?
Sorry Andr3as, I see I did not response to your labels.

SCP didn't really work on most of the SFTP server I've tried it on. Plus if SCP did work it would not allow directory creation, file deletion and remote file edit, which is the main reason why I need SFTP.
On other webserver FTP apps, I noticed that they also don't have an SFTP option. But when you switch the option to "Passive On" and used Port 22, SFTP works. Is it possible to do this in Codetransfer?

I added ftps with 678137c, sftp follows as soon as I find some time.

Thank you so much for the ftps addition. Can't wait for the sftp. Thank you again.

I hope all is well. Have you had time to consider adding SFTP to Codetransfer? I just wanted to see if there is an update. Thank you so much.


[Requires #2] Output from workflow

What has changed?
CWL outputs block is constructed for a workflow, with dewret opening up an internal block to track this.
Why has it changed?
To provide at least one output for the overall workflow.
How to review?
Run the doctests and check the examples make sense - they contain output blocks.

Superseded by #6


Make ZINC parm@frosst subset for testing purposes

After #59 , we'll be shortly^ proceeding to the parm@frosst ZINC subset rather than AlkEthOH. @camizanette reports that running on the full parm@frosst ZINC set is a bit slow, which is of course fine once we're happy with how it's running but is not ideal for testing purposes.
We should construct a subset (perhaps randomly) of the compounds just for testing purposes.
^ Shortly is perhaps an overstatement since some of us have already had a look at this, but when @camizanette told me she was running some tests with parm@frosst, I said, "I feel like you just told me that the next Star Wars movie came out and you had tickets for all of us but you went without us." Now that the code is available, so the rest of us can see the show now too.

@camizanette reports that running on the full parm@frosst ZINC set is a bit slow

I'd do some profiling to see if you can identify what the slow steps are. Some speed improvements might be easily identified this way.

Totally agree that there's tons that can be done to optimize, though as you've been noting, ultimately the speed of this particular step won't be that important. For debugging purposes it will be helpful to be able to look at a subset which has chemical diversity like the full set but is just smaller.

Made a subset of 500 molecules and now it is nice and fast. Looks like the speed is worse than linear with N -- with 7500 molecules as in the full set it looks like it'd take an hour or more to run 1000 iterations on my laptop, whereas with 500 molecules it's much much faster (a couple of orders of magnitude?).
One can now run a more minimal parm@frosst set for testing in the relevant examples directory using:
smarty --basetypes=atomtypes/basetypes-elemental.smarts --initialtypes=atomtypes/basetypes-elemental.smarts --decorators=atomtypes/decorators.smarts --substitutions=atomtypes/substitutions.smarts     --molecules=molecules/zinc-subset-500-tripos.mol2.gz<EMAIL_ADDRESS>--iterations 1000 --temperature=0.0

or similar
(Or at least, one can once I merge #74)


[Backport] Add a message in the Target Namespace dropdown that you can type to create a new namespace (#397)

Backports #397

Converting to draft pending @vconzola's review

Converting to draft pending @vconzola's review


build: Add Windows CNS & NPM as Part of Multi-Arch Manifest

Reason for Change:

Adding windows cns to multi arch image to support windows AKS-Swift
Issue Fixed:

Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests

Notes:

@Azure/acn-npm-reviewers for npm failures here?


[revert 6193] Remove Compilation.libraries

cc @dwijnand

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nrc (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

I'm not sure if this is stated anywhere formal, but Cargo doesn't have a public API so depending on its programmatic API is at your own risk and without deprecation warnings.  The CLI is what's stable.
I think the output of cargo metadata is intended for programmatic consumption, so you might want to look at that.
I don't think we should revert the removal.

I don't think we should revert the removal.

I see!
For the people of the future, I've published a fork of cargo (https://github.com/gnzlbg/cargo/tree/cargo_semverver) with this patch under cargo-semverver on crates.io in case other projects need this functionality ! Sorry for the noise!

I think the output of cargo metadata is intended for programmatic consumption, so you might want to look at that.

FWIW I explored using cargo metadata more in-depth today, but AFAICT the output of cargo metadata does not contain any information about the output paths of rlibs, for example (or any output paths of any build artifacts whatsoever).
So it appears that we are going to have to maintain our own fork of cargo for the forseable future.

output paths of rlibs

The JSON output from cargo build is probably the best way to obtain this.


The base APR can be changed by the governance DAO, with a 1 million block activation offset`

Duplicate of https://github.com/Hydra-Chain/hydragon-issues/issues/158


{apache,caddy,nginx}: not "before" ACME certs using DNS validation

Description of changes
Relax dependency with certs that are validated via DNS challenge since we know the HTTP server is not required for that validation. This allows marking the server's service as depending on the cert.
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Pushed another slightly-related commit to change how the web-servers assert they have access to the ACME certs: use the Systemd service user and groups instead of just the cfg.user and cfg.group.
That allows having, for instance, a group per cert so they can be handed out individually via systemd.services.<name>.serviceConfig.SupplementaryGroups.

@ofborg test acme

That test failure took me a while to figure out!
Basically Nginx and acme-example.test started at the same time. And (un)luckily we hit the race that causes: Nginx loaded the ACME cert (fullchain.pem), but the self-signed key (key.pem):
webserver # [  190.411673] acme-example.test-start[3532]: + cp -vp certificates/_.example.test.crt out/fullchain.pem
webserver # [  190.421142] acme-example.test-start[3589]: 'certificates/_.example.test.crt' -> 'out/fullchain.pem'
webserver # [  190.423763] acme-example.test-start[3532]: + cp -vp certificates/_.example.test.key out/key.pem
webserver # [  190.429723] nginx-pre-start[3585]: nginx: [emerg] SSL_CTX_use_PrivateKey("/var/lib/acme/example.test/key.pem") failed (SSL: error:05800074:x509 certificate routines::key values mismatch)
webserver # [  190.432682] nginx-pre-start[3585]: nginx: configuration file /nix/store/ycs2rnjbhzqlm4q9fjr3w2l7cs994n6g-nginx.conf test failed
webserver # [  190.436718] acme-example.test-start[3590]: 'certificates/_.example.test.key' -> 'out/key.pem'

I made the web servers start explicitly after the DNS validated certs.
User can decide if they want a stronger dependency to guarantee the self-signed certs are never used. (I have Nginx require the certs in my config).

Yeah hopefully the race is fully solved now as we have an explicit order for all certs!

This can cause a service ordering cycle. I've noticed this problem with nginx, but I assume the other servers are also affected.
TL;DR: This happens when the (lexically) first certificate uses the HTTP-01 challenge, and at least one other certificate uses a different challenge.
security.acme has the concept of a "leader" certificate. Apparently, account creation in go-acme is not a thing that can be done separately from retrieving a certificate. So what happens instead is one certificate (the first one in lexical order) is picked to be responsible for account creation, and all other certificates depend on it. Once the leader is done and the account has been created, all the other certificate requests can run in parallel.
This becomes a problem when nginx.service is ordered Before the leader certificate (i.e. if the leader certificate requires the web server to be up, such as when it uses the HTTP-01 challenge) and also ordered After a non-leader certificate. The non-leader certificates are always ordered After the leader. The startup order would be acme-nonleader.service -> nginx.service -> acme-leader.service -> acme-account-xxx.target -> acme-nonleader.service.
This does not fail in the test, because the leader certificate there is a wildcard certificate for example.test.

Thanks for taking the time to investigate and report the issue!
I pushed a quick fix at ThinkChaos:nixpkgs:fix/acme-account-ordering that prioritizes DNS validated certs for leadership. I'll do more testing and open a PR.

I've been sharing my thoughts on a more general solution to the service ordering problem in Matrix. This all links back to #106862 which is over 4 years old 😅 I will be trying to implement some solutions in the next week

That PR looks good to me but it doesn't touch the leader stuff yet so AFAIK we still need my PR for now.

@misuzu thanks for the report, fix PR is https://github.com/NixOS/nixpkgs/pull/356064

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/recently-mk-cert-ownership-assertion-nix-added-assertions-triggering-build-failure-for-nginx-managed-certs/57368/1


Pr/5930

There are 3 changes here:

short month names: won't accept (see here https://github.com/unicode-org/cldr/blob/main/common/main/bg.xml#L1539)
short weekday names: no CLDR entry there https://github.com/unicode-org/cldr/blob/main/common/main/bg.xml#L1646, then this is up to preference, so it's a no go
relative day offset (дни/дена) - https://kaksepishe.com/dni-dena/ both are correct, maybe дни is more popular

So I'm willing to merge the relative day offset, but you need to change the right files (under src) and also update the tests. Closing this for now, feel free to reopen if you address the issues.
In general, if you're not happy with moment locales, just customize them locally to your liking: https://momentjs.com/docs/#/customization/


Support remote diffs

As of 0.6.6, Guild does not support remote diffs.

As of 0.6.7.dev2, the diff command can be run with the --remote option.


Update readme.md and/or the panel documentation site

This addresses issue https://github.com/serverfireteam/panel/issues/114
It adds to the readme.md description of the panel commands, and how to put models/controllers into project folders, such as app/Models folder.
The description could also/alternatively go in http://laravelpanel.com/docs/master/crud-commands ?

@ChrisHe thank you for great work , is it possible for you to send it to document repo https://github.com/laravelpanel/docs , we want to keep readme simple , thank you

On further consideration, putting Models anywhere except the default namespace (App) would break the current Panel code for CrudController and Dashboard, so I think would not be a wise move.
Accordingly, please reject my pull request!


Allow seeding the web frontend

For recurring submissions of similar data I currently store the contents of "Values to set on all entities" and "Input fields" in a text file next to the spreadsheet with data which is updated with new entries from time to time. While copying these two blurbs of text into the form each time I need them isn't a great deal, I've just had an idea how this workflow could be improved... (trying not to sound greedy after you've already realized #10 so quickly 😁)
It would be very comfortable if I could "seed the seeder" with this data via query parameters, then I could simply store a bookmark for each artist/label/series/whatever for which I plan to regularly seed releases/recordings/works. Seeding would probably make sense for all form elements except for the main input for which you can already load a file (and which may contain too much data).
Bonus points if the frontend provides a button to copy a permalink for the current settings.
(As an alternative I could probably try to finally use the command line version's arguments and create a few simple shell scripts instead of bookmarks, but I really like the UX of the web interface.)

Thanks, that's a great idea!
Just to check, do you tend to want the same "set" and "fields" values that you used last time, or do you sometimes need to alternate between multiple combinations? The web UI currently saves and restores the state of the select elements (i.e. source, format, type) in the browser (using localStorage), and it'd be easy to do the same with the "set" and "fields" textareas if that'd fit your use case.
From the mention of artists/labels/series/etc., I'm guessing that you need to manage multiple combinations, though. The approach that you suggested with query parameters and a permalink sounds like a good way to accomplish that; I just want to make sure it's needed since it may be a bit more complicated and hard-to-discover for users. :-)

From the mention of artists/labels/series/etc., I'm guessing that you need to manage multiple combinations, though.

Yeah, that's what I had in mind. I've already used yambs to seed a series of 155 releases by one artist (which is likely complete and won't be expanded) and I'm currently preparing spreadsheets for a few series with dozens/hundreds of works for which I will probably continue to add new works as they are published in the future. So I definitely have to swap between a few different combinations of yambs parameters for which persisting the form in localStorage wouldn't help as much as if I was using the same basic parameters every time.
I can even imagine that I would probably create presets for all of the recurrent additions/editing which I'm currently doing by hand (or using a userscript to clone the latest release by an artist/label/series as a template). Maybe it would be even worth adding such a permalink to the annotation of MB series to help other editors to add missing parts?

That makes sense; thanks for the detailed explanation. Let me know if the stuff that I just deployed works for what you're doing.


Replace jest so we don't need NODE_OPTIONS

We want to add Windows to our CI and required env vars like NODE_OPTIONS for testing make it difficult.
Need to investigate node's built-in test harness.

Mostly done in #2479 but we still need to figure out how to test things in the Edge Runtime.


Added more sample events to the showcase page and created the category for two types of apps.

Fixes #1358 #1345 #1338
Changes

Added more sample events to the showcase page and created the category for two types of apps (expandable sessions and single page sessions).

Added speaker position on all the pages and indented rooms pages.

Aligned the session element in case the speakers were not present

Sorry, I solved more than one issue in a single PR. It was urgent and separating the commits were becoming difficult.
Test Link:-
https://princu7.github.io/open-event-webapp
@mariobehling @aayusharora @geekyd Please review. Thanks :)

I am merging this as it is urgent. Thanks!


Missing app.js on example website

I'm working through the instant search tutorial and using the demo page found here:
https://demo.algolia.com/examples/instant-search/jquery/
Within the past few minutes, the page has stopped working, and I think it's because the app.js file is no longer being loaded. The HTML loads just fine, but the results don't show up, and I think it's because Algolia search is never initialized from the app.js file. When you go to https://demo.algolia.com/examples/instant-search/jquery/js/app.js, you just get a 404 error.
Just thought someone should know...

Looks like it works for me, but I saw that there was an issue earlier this day on our demo website, maybe related?

I connected to one of my VPNs and it works now for me... maybe one of your load-balanced servers was out of sync of something? I was trying to access the page from American Fork, Utah, btw.

I seem to have the issue now.

Works for me from here.

Please open a new issue with relevant info if this happens again :)


fix vulnerability using dotnet command if nuget not exist

Is your feature request related to a problem? Please describe.
I'm using frogbot inside a docker that does not have nuget but uses dotnet commands.
when I run it I get:
Cloning repository with these details:
Clone url: [https://gitlab-ci-token:[MASKED]<EMAIL_ADDRESS>remote name: origin, branch: refs/heads/develop
 -----------------------------------------------------------------
Start fixing Microsoft.NETCore.App with 2.0.3
Creating branch: frogbot-Microsoft.NETCore.App-1da05d022e80e8fb1bff4c48ea5bf8fe
[Warn] failed while fixing Microsoft.NETCore.App with version: 2.0.3 with error:
nuget  microsoft.netcore.app2.0.3 command failed: exec: "nuget": executable file not found in $PATH
[Info] Running git checkout to base branch: develop

Describe the solution you'd like to see
I would like it to use dotnet command instead of nuget

Hello @justminime, thank you for your feature request and for using Frogbot. While Frogbot does not currently fix .NET or NuGet packages, it does have the capability to scan your pull requests and identify any potential vulnerabilities. We are committed to improving Frogbot's functionality and are actively working to add the ability to create fixing pull requests for NuGet and .NET packages. I will keep you updated on our progress and let you know once this feature has been implemented. Thank you again for bringing this to our attention.

@ermalbaj,
We're hoping to add support for creating pull requests with fixes for NuGet packages during the next few months. We have a long and exciting features roadmap for Forgbot, and are trying to deliver as fast as we can.

Hello @eyalbe4, I am also interested in this feature to create pull requests with fixes for NuGet packages. Is there any progress or roadmap? Thanks in advance and regards

Hello @justminime, @ermalbaj, and @philipp-rauch-se. Thank you for your patience.
I'm pleased to announce that FrogBot now supports fixing .NET projects.
Regarding your response, @justminime, and for general information, the fixes are executed using .NET CLI (v3.1+) commands, so having .NET CLI installed is a prerequisite for issuing a fix.

Hello @justminime, @ermalbaj and @philipp-rauch-se, thank you for your patience!
I'm pleased to inform you that Frogbot now supports create-fix for NuGet/.NET projects.
Please note that the fix is applied using .NET CLI (v3.1+). Therefore, it's essential to have .NET CLI installed on your machine (NuGet CLI is not required for this operation).
We trust that this new feature aligns with your requirements. Should you have any further questions or need additional assistance, please do not hesitate to reach out to us

Hello @eranturgeman,
Thank you very much for the information and the update of the FrogBot. I will test the new feature and for sure it will be helpfull for us. I will let you know for the results.


Conversions for (T0,T1,...)<>Rawval

What
Add conversions for tuples to and from RawVal.
Why
To make it convenient to pass tuples across the host/guest boundary, without having to manually craft vecs.
Close #107
Known limitations
N/A

I want to add a test for these tuples, but it isn't trivial to do so without a mocked implementation of the Env. We should figure that out soon.


futures don't work

@rultor release, tag is 0.21.1

@rultor release, tag is 0.21.1

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.21.1

@yegor256 Done! FYI, the full log is here (took me 16min)

Oops! There is no order for job gh:yegor256/jpeek#81.

Oops! Job gh:yegor256/jpeek#81 is not in scope.


TS Server fatal error:  Debug Failure. Invalid cast. The supplied value [object Object] did not pass the test 'isUnaryExpression'.

Type: Bug
❗❗❗ Please fill in the sections below to help us diagnose the issue ❗❗❗
TypeScript Version: 5.0.2
Steps to reproduce crash

TS Server Log
❗ Server logging disabled. To help us fix crashes like this, please enable logging by setting:
"typescript.tsserver.log": "verbose"

After enabling this setting, future crash reports will include the server log.
TS Server Error Stack
Server: semantic
Error: Debug Failure. Invalid cast. The supplied value [object Object] did not pass the test 'isUnaryExpression'.
    at cast (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:3443:16)
    at Object.parenthesizeOperandOfPrefixUnary (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:21786:50)
    at Object.createPrefixUnaryExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:23915:41)
    at parsePrefixUnaryExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33520:32)
    at parseSimpleUnaryExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33572:16)
    at parseUnaryExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33554:35)
    at parseBinaryExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33472:25)
    at parseAssignmentExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33145:18)
    at parseArgumentOrArrayLiteralElement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34228:170)
    at parseListElement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:31579:12)
    at parseDelimitedList (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:31818:24)
    at parseArrayLiteralExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34241:22)
    at parsePrimaryExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34178:16)
    at parseMemberExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33655:24)
    at parseLeftHandSideExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33649:82)
    at parseUpdateExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33624:24)
    at parseUnaryExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33550:32)
    at parseBinaryExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33472:25)
    at parseAssignmentExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33145:18)
    at parseArgumentOrArrayLiteralElement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34228:170)
    at parseListElement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:31579:12)
    at parseDelimitedList (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:31818:24)
    at parseArrayLiteralExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34241:22)
    at parsePrimaryExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34178:16)
    at parseMemberExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33655:24)
    at parseLeftHandSideExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33649:82)
    at parseUpdateExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33624:24)
    at parseUnaryExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33550:32)
    at parseBinaryExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33472:25)
    at parseAssignmentExpressionOrHigher (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33145:18)
    at parseExpression (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:33111:16)
    at doOutsideOfContext (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:30808:12)
    at allowInAnd (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:30829:12)
    at parseExpressionOrLabeledStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34623:24)
    at parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:34855:12)
    at parseListElement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:31579:12)
    at parseList (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:31564:19)
    at parseSourceFileWorker (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:30624:24)
    at Object.parseSourceFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:30457:20)
    at createSourceFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:30290:21)
    at createLanguageServiceSourceFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:135139:22)
    at acquireOrUpdateDocument (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:132053:26)
    at Object.acquireDocumentWithKey (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:131978:12)
    at getOrCreateSourceFileByPath (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:135464:31)
    at Object.getOrCreateSourceFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:135444:14)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:135376:42
    at Object.getSourceFileWithCache [as getSourceFile] (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:117127:24)
    at findSourceFileWorker (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:119460:23)
    at findSourceFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:119380:20)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:119329:22
    at getSourceFileFromReferenceWorker (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:119298:26)
    at processSourceFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:119327:5)
    at processRootFile (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:119123:5)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:117908:41
    at forEach (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:2307:22)
    at createProgram (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:117908:5)
    at synchronizeHostData (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:135400:15)
    at Object.getProgram (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:135472:5)
    at ConfiguredProject2.updateGraphWorker (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:172153:41)
    at ConfiguredProject2.updateGraph (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:172090:32)
    at ConfiguredProject2.updateGraph (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:173272:24)
    at _ProjectService.createLoadAndUpdateConfiguredProject (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:174879:13)
    at _ProjectService.assignProjectToOpenedScriptInfo (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:175970:26)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:176250:64
    at flatMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:2555:17)
    at _ProjectService.applyChangesInOpenFiles (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:176250:24)
    at updateOpen (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:177395:29)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:179962:69
    at IpcIOSession.executeWithRequestId (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:179954:14)
    at IpcIOSession.executeCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:179962:29)
    at IpcIOSession.onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:180004:51)
    at process.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:181571:14)
    at process.emit (node:events:526:28)
    at emit (node:internal/child_process:938:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:84:21)

VS Code version: Code 1.77.0 (Universal) (7f329fe6c66b0f86ae1574c2911b681ad5a45d63, 2023-03-29T09:57:11.797Z)
OS version: Darwin arm64 22.4.0
Modes:
Sandboxed: Yes

System Info

Item
Value

CPUs
Apple M1 Max (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
27, 19, 14

Memory (System)
32.00GB (3.18GB free)

Process Argv
--crash-reporter-id 2e515fa3-9ac9-427f-b4e8-572c4c6c77ee

Screen Reader
no

VM
0%

Extensions (23)

Extension
Author (truncated)
Version

vscode-expo
byC
0.9.2

path-intellisense
chr
2.8.4

gitignore
cod
0.9.0

vscode-eslint
dba
2.4.0

xml
Dot
2.5.1

gitlens
eam
13.4.0

auto-close-tag
for
0.5.14

auto-rename-tag
for
0.1.10

codespaces
Git
1.14.2

remotehub
Git
0.54.0

vscode-pull-request-github
Git
0.62.0

dotenv
mik
1.0.1

vscode-docker
ms-
1.24.0

remote-repositories
ms-
0.32.0

vscode-react-native
msj
1.10.2

color-highlight
nau
2.5.0

indent-rainbow
ode
8.3.1

material-icon-theme
PKi
4.25.0

vscode-xml
red
0.24.0

vscode-yaml
red
1.12.2

code-spell-checker
str
2.20.3

code-spell-checker-portuguese-brazilian
str
2.0.12

markdown-all-in-one
yzh
3.5.1

(1 theme extensions excluded)

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vslsvsres303:30308271
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593cf:30376535
pythonvs932:30410667
cppdebug:30492333
vsclangdc:30486549
c4g48928:30535728
dsvsc012cf:30540253
pynewext54:30695312
azure-dev_surveyone:30548225
vsccc:30610678
nodejswelcome1cf:30587006
3biah626:30602489
pyind779:30671433
f6dab269:30613381
pythonsymbol12:30671437
a9j8j154:30646983
showlangstatbar:30672706
vsctsb:30677850
vscodeenable:30660116
pythonb192:30669360
defaultazurewalk:30687958
pythonms35:30701012

For me this was because of the React Native's new Hermes Engine. It produces binary .js files which tsc tries and fails to compile (because they aren't actually js). The solution is to exclude the dist folder by adding the following to your tsconfig.json: "exclude": [..., "dist"]
For example if using "extends": "expo/tsconfig.base" you can copy the original array and add the dist folder: "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js", "dist"]

Worked for me too! thanks

Metapoint: it's really not great that Hermes is writing .js files that don't contain JS code. All that's likely to do is cause tools to crash or waste time, though in this particular case, these files should really be excluded because they're output files and so peoples' tsconfigs are definitely misconfigured.

We could really use a Hermes binary JS file for each Hermes bytecode version so we can detect and avoid them. Anyone able to upload those artifacts?

Metapoint: it's really not great that Hermes is writing .js files that don't contain JS code. All that's likely to do is cause tools to crash or waste time, though in this particular case, these files should really be excluded because they're output files and so peoples' tsconfigs are definitely misconfigured.

That's a good point, according to this draft RFC the files are supposed to have the .hbc file extension. No idea why React Native emits them as .js.

We could really use a Hermes binary JS file for each Hermes bytecode version so we can detect and avoid them. Anyone able to upload those artifacts?

Unfortunately I cannot provide the binary because it's part of an internal project, however any project compiled with the latest React Native/Expo version should produce the bytecode you're looking for. Also from the above draft RFC it seems like Hermes bytecode should always start with the magic number 0xC61FBC03C103191F. I have been able to confirm that using my own bytecode. That could be used for detection as an alternative to the extension.

Or as an alternative idea tsc could ignore any file with unrecognized characters and issue a warning instead of erroring out, but that might be a bit too drastic of a change.

That's a good point, according to this draft RFC the files are supposed to have the .hbc file extension. No idea why React Native emits them as .js.

Hi all,
Nicola here from the React Native team.
Providing context from the React Native Android + Hermes build pipeline. To the best of my knowledge, we don't emit .js files from Hermes.
Hermes produces .hbc files, which gets renamed to the bundle filename that the user specifies, that usually ends with .bundle.
For example for our RN Tester project (the sample app of React Native), the hermes output will be placed inside a file located in:
packages/rn-tester/android/app/build/generated/assets/createBundleHermesReleaseJsAndAssets/RNTesterApp.android.bundle

Users can override the final bundle location, so if they specify a filename that ends with .js, we will honor it.
So I believe here the root cause could be some sort of misconfiguration on the user side.
Codepointers to the Android logic for futher context: https://github.com/facebook/react-native/blob/bece6500f7d6374eab09917c9afd3bf6142f0b61/packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/BundleHermesCTask.kt#L92-L113

Please, someone, please
please post a concrete repro (zip file, repo, etc)
We really do need one! Please!

Related is #50675; is everyone here using expo? Is that who's writing to the wrong file?
But again, please... a repro...

Related is #50675; is everyone here using expo? Is that who's writing to the wrong file extension?
But again, please... a repro...

eas is what's writing the files which are causing the issue, see below.
https://github.com/microsoft/TypeScript/issues/53114#issuecomment-1496730654
npx create-react-app test-app --template expo-template-tabs
cd test-app
eas update --auto
ls -al ./dist


Add GitHub Actions

On push:

Test
Formatter
Prettier

Manual dispatch / on tag:

Publish (maybe with automatic version update?)

on push actions are done, need a release job.
This is more complicated, since the steps are:

update version in all 3 Cargo.tomls, including the inter-dependencies
commit
publish proclock-api
publish proclock-macro
publish proclock
push

update: found this cargo-release crate which makes it so much easier
So the job needs to:

get major/minor/patch... as an input
maybe add an explicit version option
install cargo-release
run cargo release ${{input}}


feat(powershell): add powershell container

Added PowerShell definition.
The open question I have is around libicu. PowerShell requires an ICU library to be installed, otherwise you need to set the environment variable DOTNET_SYSTEM_GLOBALIZATION_INVARIANT to 1.
The workaround I have currently, is adding the libicu-dev package, as on bionic the package is called libicu60, whereas on focal it's libicu66.
My question is: are we able to set the DOTNET_SYSTEM_GLOBALIZATION_INVARIANT environment variable in the docker-powershell repository? And should I just set it manually in the tests cases for now? Or do we want the libicu package installed?
Closes #77

The build fails, need to check why it tries an invalid tag. 🤔

https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7.1#dependencies
Do we need more deps?

@rarkins  This needs renovate/powershell docker hub repo.

Extracted from powershell_7.1.0-1.ubuntu.18.04_amd64.deb
Package: powershell
Version: 7.1.0-1.ubuntu.18.04
License: MIT License
Vendor: Microsoft Corporation
Architecture: amd64
Maintainer: PowerShell Team<EMAIL_ADDRESS>Installed-Size: 174304
Depends: libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, zlib1g, libssl1.0.0, libicu60
Section: shells
Priority: extra
Homepage: https://microsoft.com/powershell
Description: PowerShell is an automation and configuration management platform.
 It consists of a cross-platform command-line shell and associated scripting language.

@rarkins This needs renovate/powershell docker hub repo.

Done

@viceice looks like you got back to this before me :joy:

🤷♂ 🙃


Duplicate entry

In this section:https://docs.microsoft.com/en-us/microsoft-365/compliance/sensitive-information-type-learn-about?view=o365-worldwide#sensitive-information-types-are-used-in
Insider Risk Management is listed twice

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

ID: 8f1edffc-5d5e-8ed8-a7d1-7467fb14b3d1
Version Independent ID: 13a701b4-3dfa-2b1b-2ff2-445183a1f1eb
Content: Learn about sensitive information types - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/sensitive-information-type-learn-about.md
Service: o365-seccomp
GitHub Login: @chrfox
Microsoft Alias: chrfox

@oilerhead   Today evening I will fix this issue.

@oilerhead Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/7772
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @oilerhead Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Probot: helping or hurting?

After observing probot run for a few weeks, I'm tempted to suggest that we might want to explicitly mark internal issues (i.e. issues generated and entered by track maintainers) as exempt from becoming stale. Unlike support requests, which can hang around open if the original reporter never returns, these internal issues are meant to form a backlog of work to be tackled when availability allows. Their relevance therefore rarely expires.
Thoughts, @exercism/java?

I agree, that sounds like a good plan :)

i'm not a team member but perhaps a new tag can be created for that purpose so that the probot ignore file can be configured to ignore  it?

Yeah, I'd thought about that too, but I think we'd end up with 95% of issues tagged with it, so if possible I'd prefer to flip it around and only have certain tags be eligible for becoming stale. Need to investigate more. Thanks for the suggestion!

I looked into this and there does not appear to be a way to configure probot to opt-in to specific labels :/

This issue tracks the feature I'm imagining: https://github.com/probot/stale/issues/22

While that probot feature is under construction, I propose that we temporarily disable it (by removing the stale.yml file. 👍/👎 @exercism/java?


Link to overview presentation PDF file doesn't work

https://nmonvisualizer.github.io/nmonvisualizer/index.html
has a link to an overview presentation PDF file - but it doesn't work.

Oops. This got deleted when bintray was discontinued. I should be able to get it back up tonight on GitHub.

Back up and hosted on github. The info in there is pretty old but I don't think the GUI has changed too much.


Distributing CA certificates for OpenSSL on Windows

Currently, HTTPS requests do not work on Crystal on Windows:
require "http/client"

HTTP::Client.get("https://example.com") # Unhandled exception: SSL_connect: error:0A000086:SSL routines::certificate verify failed (OpenSSL::SSL::Error)

This is because OpenSSL's own certificate store is empty; we do not build OpenSSL with the --openssldir option, so that directory defaults to C:\Program Files\Common Files\SSL, which contains no certificates, or perhaps the directory does not even exist. There are a few ways to fix this:

Download cacert.pem here and define the environment variable %SSL_CERT_FILE% to point to it. This workaround should always work even if one of the other options below are chosen. The problem is it could also affect applications using OpenSSL that are not built by Crystal.
Distribute the above file and call OpenSSL::SSL::Context#ca_certificates= ourselves all the time, but only on Windows. Any executables built by Crystal would use a hardcoded file path, only that the path is relative to the compiler.
Define --openssldir. This most likely rules out portable installations because that directory ultimately expands to an absolute path that never depends on Crystal's location. RubyInstaller2 does this; Ruby uses C:\Ruby??\ssl, which is distinct from the equivalent directory for the MSYS environment it comes with.
Use Windows's system certificate store, for example as outlined here. This is the most complex alternative and I don't think it is worth the effort.

Can this be solved if an installer populates C:\Program Files\Common Files\SSL?

Certificates for OpenSSL on Windows are a notorious problem. I can't imagine we could find an easy solution that just works.
A common mechanism is to distribute a copy with the binary and have the program load that one (instead of looking at a common path or getting help from the OS because that just doesn't work very well).
So I think we can support that use case with providing a compile-time configuration option for a path to the certificates file (which can of course be relative to the binary location). It could have a nice default value. And there should be options to override it at runtime (with %SSL_CERT_FILE% and a custom env var).

Any executables built by Crystal would use a hardcoded file path, only that the path is relative to the compiler.

That wouldn't work for executables that are supposed to be shipped without the compiler, which is one of the most common use cases for everything that's not a development build.
So I don't think number 2 can work. Same for number 3. We can't simply do the same thing as Ruby because everyone needs the Ruby interpreter installed to run a Ruby program, but you don't need Crystal compiler installed to run a Crystal program.

@HertzDevil I'm using Crystal 1.7.0 on Windows which fails with a similar error:
Unhandled exception: SSL_connect: error:16000069:STORE routines::unregistered scheme (OpenSSL::SSL::Error)

As you stated, that path does not exist, however after making the SSL directory and saving the cacert.pem file to that location, the error persists. I have to manually configure Crystal to use that file location in my code which then works.
After reading @straight-shoota's comments I understand why using a file location for this isn't the best idea, but what if it were in a location that is guaranteed to exist? I.e., what if Crystal shipped the certificates in the lib directory, then you can be certain that it exists unless a user modifies it. I think this would be a good solution since users shouldn't really be touching anything in that directory, and anything removed from it would likely cause issues when compiling (e.g. removing pcre.lib then trying to use regex).
Alternatively, how about embedding the contents of the file at compile-time? I'm not exactly sure how this would work, but my initial thoughts is something like the read_file macro but obviously on a more technical level.

what if it were in a location that is guaranteed to exist? I.e., what if Crystal shipped the certificates in the lib directory, then you can be certain that it exists unless a user modifies it.

Like I mentioned on Discord, our only Windows distribution is a portable archive rather than a full installer, so the Crystal directory itself can change, but --openssldir does not support relative paths.

So it appears the last option is far easier than I anticipated. Here is a fully working example, using cURL's source code as a reference:

require "openssl"

# lib_crypto.cr
lib LibCrypto
  fun d2i_X509(a : X509*, ppin : UInt8**, length : Long) : X509

  alias X509_STORE = Void*

  fun x509_store_add_cert = X509_STORE_add_cert(ctx : X509_STORE, x : X509) : Int
end

# lib_ssl.cr
lib LibSSL
  fun ssl_ctx_get_cert_store = SSL_CTX_get_cert_store(ctx : SSLContext) : LibCrypto::X509_STORE
  fun ssl_ctx_set_cert_store = SSL_CTX_set_cert_store(ctx : SSLContext, store : LibCrypto::X509_STORE)
end

# wincrypt.cr
@[Link("crypt32")]
lib LibC
  alias HCERTSTORE = Void*
  alias HCRYPTPROV_LEGACY = Void*

  struct CERT_NAME_BLOB
    cbData : DWORD
    pbData : BYTE*
  end

  struct CRYPT_INTEGER_BLOB
    cbData : DWORD
    pbData : BYTE*
  end

  struct CRYPT_OBJID_BLOB
    cbData : DWORD
    pbData : BYTE*
  end

  struct CRYPT_BIT_BLOB
    cbData : DWORD
    pbData : BYTE*
    cUnusedBits : DWORD
  end

  struct CRYPT_ALGORITHM_IDENTIFIER
    pszObjId : LPSTR
    parameters : CRYPT_OBJID_BLOB
  end

  struct CERT_PUBLIC_KEY_INFO
    algorithm : CRYPT_ALGORITHM_IDENTIFIER
    publicKey : CRYPT_BIT_BLOB
  end

  struct CERT_EXTENSION
    pszObjId : LPSTR
    fCritical : BOOL
    value : CRYPT_OBJID_BLOB
  end

  struct CERT_INFO
    dwVersion : DWORD
    serialNumber : CRYPT_INTEGER_BLOB
    signatureAlgorithm : CRYPT_ALGORITHM_IDENTIFIER
    issuer : CERT_NAME_BLOB
    notBefore : FILETIME
    notAfter : FILETIME
    subject : CERT_NAME_BLOB
    subjectPublicKeyInfo : CERT_PUBLIC_KEY_INFO
    issuerUniqueId : CRYPT_BIT_BLOB
    subjectUniqueId : CRYPT_BIT_BLOB
    cExtension : DWORD
    rgExtension : CERT_EXTENSION*
  end

  struct CERT_USAGE
    cUsageIdentifier : DWORD
    rgpszUsageIdentifier : LPSTR*
  end

  X509_ASN_ENCODING   = 0x00000001
  PKCS_7_ASN_ENCODING = 0x00010000

  struct CERT_CONTEXT
    dwCertEncodingType : DWORD
    pbCertEncoded : BYTE*
    cbCertEncoded : DWORD
    pCertInfo : CERT_INFO*
    hCertStore : HCERTSTORE
  end

  fun CertOpenSystemStoreW(hProv : HCRYPTPROV_LEGACY, szSubsystemProtocol : LPWSTR) : HCERTSTORE
  fun CertCloseStore(hCertStore : HCERTSTORE, dwFlags : DWORD) : BOOL

  fun CertEnumCertificatesInStore(hCertStore : HCERTSTORE, pPrevCertContext : CERT_CONTEXT*) : CERT_CONTEXT*
  fun CertGetEnhancedKeyUsage(pCertContext : CERT_CONTEXT*, dwFlags : DWORD, pUsage : CERT_USAGE*, pcbUsage : DWORD*) : BOOL
end

class OpenSSL::X509::Certificate
  def self.from_der(bytes : Bytes)
    ptr = bytes.to_unsafe
    x509 = LibCrypto.d2i_X509(nil, pointerof(ptr), bytes.size)
    raise OpenSSL::Error.new("d2i_X509") unless x509
    {new(x509), bytes[ptr - bytes.to_unsafe..]}
  end
end

module Crystal::System
  ROOT = to_wstr("ROOT")

  def self.each_system_root_certificate(&)
    now = ::Time.utc

    return unless cert_store = LibC.CertOpenSystemStoreW(nil, ROOT)

    cert_context = Pointer(LibC::CERT_CONTEXT).null
    while cert_context = LibC.CertEnumCertificatesInStore(cert_store, cert_context)
      next unless cert_context.value.dwCertEncodingType == LibC::X509_ASN_ENCODING

      next if cert_context.value.pbCertEncoded.nil?

      not_before = Crystal::System::Time.from_filetime(cert_context.value.pCertInfo.value.notBefore)
      not_after = Crystal::System::Time.from_filetime(cert_context.value.pCertInfo.value.notAfter)
      next unless not_before <= now <= not_after

      if LibC.CertGetEnhancedKeyUsage(cert_context, 0, nil, out eku_size) != 0
        eku = Pointer(UInt8).malloc(eku_size).as(LibC::CERT_USAGE*)
        next unless LibC.CertGetEnhancedKeyUsage(cert_context, 0, eku, pointerof(eku_size)) != 0
        next unless (0...eku.value.cUsageIdentifier).any? do |i|
          String.new(eku.value.rgpszUsageIdentifier[i]) == "<IP_ADDRESS>.<IP_ADDRESS>.1" # serverAuth OID
        end
      end

      encoded = Slice.new(cert_context.value.pbCertEncoded, cert_context.value.cbCertEncoded)
      cert, _rest = OpenSSL::X509::Certificate.from_der(encoded)
      yield cert
    end
  ensure
    LibC.CertCloseStore(cert_store, 0) if cert_store
  end

  class_getter system_root_certificates : Array(OpenSSL::X509::Certificate) do
    certs = [] of OpenSSL::X509::Certificate
    each_system_root_certificate { |cert| certs << cert }
    certs
  end
end

abstract class OpenSSL::SSL::Context
  protected def initialize(method : LibSSL::SSLMethod)
    previous_def

    add_system_certificates
  end

  # :nodoc:
  def add_system_certificates
    cert_store = LibSSL.ssl_ctx_get_cert_store(@handle)
    Crystal::System.system_root_certificates.each do |cert|
      LibCrypto.x509_store_add_cert(cert_store, cert)
    end
  end
end

require "http"

HTTP::Client.get("https://example.com").body

Here the system root certificates are cached and added to all constructed OpenSSL::SSL::Contexts, unless they are created via Context.insecure. This is probably what most people would expect. Feel free to create a PR based on the above code


useField error for non-object updateFieldValue events

Would have probably caught this error with TS, but I mistakenly thought that updateFieldValue would only take a SyntheticEvent parameter. (which is usually true, but there are special cases -- for example I'm currently working on wrapping an InputNumber component whose value has to be numeric, but the input text is actually a formatted string, so can't use the original event; I could patch the event itself, but I should ideally just need to send the value onwards)
Anywho, the first check you do in updateFieldValue is:
if (typeof event !== 'object' || !('target' in event)) {

The issue is that you don't do a null-check before that in operator so it fails big-time for null values 😅
I'll PR this in a moment (along with updates to the typings to allow non-SyntheticEvent parameters to updateFieldValue)

Yep. We had a situation at work where an onChange was passing some funky object, not a standard React or JS event.


[grafana] Add 9.4

See https://github.com/grafana/grafana/releases/tag/v9.4.1. Note that 9.4.1 is the first 9.4 release.
Also updated eol / support date for 9.2 and 9.3 following what was done for previous 9.x version. But the rule used for those versions does not seem consistent whith the description (there should be no active support column).

Created this PR in draft because the 9.4 has not yet been announced on https://grafana.com/blog/.

Since the new release cadence is now live (since Jan), changed the wording slightly to prefer using present tense to talk about it.

9.4 has been announced : https://grafana.com/blog/2023/02/28/grafana-9.4-release/. Ready for review.


Show all lint errors in solution / project.

The F# linter integration is really nice and there are some very useful lint rules. It would be nice to view all lint errors in the solution or project to help with code cleanup and refactoring.
Solution Description
Ideally have a command to jump to the next lint error. Or have lint errors be shown in the info panel.
Describe alternatives you've considered
Currently doing it via the CLI with this little bash script:
set -euo pipefail

dotnet build

echo '[F# Lint] - Starting Project Linting'

find "$PWD" -type f -name '*.fsproj' -exec dotnet fsharplint -f {} \;

The choice to get linter warnings only on the current editor is due to performance implication, having them everywhere would be expensive operation.
However we probably can move that to the background service 🤔 ....


🐛 Fixed Sitemap when permalink contains Primary Tag in LTS

closes #9272

included tags in sitemap post-generator

Thanks for taking care, very appreciating that.
LTS support ends soon and there is currently no reason to realise another version. I'll cherry pick the fix from master in case we release another version of LTS.


Data Updates [Epic 5 (Discovery)]

Note that discovery tasks will be completed by order of priority in line with discovery task requirements. Discovery may include documentation and/ or implementation of feature design.
Expectation:
Update datasets with latest version.
Priority:
Various
Dependencies:
None
Description:
Update datasets with latest version (e.g LULC 2020 from ESA)
Scope:
The scope of this process will depend on the results of the discovery process. As this task is multifaceted and applies to multiple datasets, it is expected to have a partial or incomplete processing and update status for some datasets.
Requirements:
A list of expected (new and existing) data layers, and data processing pipeline details
Success Criteria:
Updated data is available from the application, and data sources and requirements are effectively documented

Datasets to update (so far):
-GADM 4.0
-ESA LULC 2021: https://worldcover2021.esa.int/

The GADM dataset was updated to version 4.1 which contains more recent administrative regions for countries.

an update on the LULC dataset please?

@akshay2408 please see Clara's comment above


Java gapic: Pagination wrappers create a circular dependencies between Client & Stub layers

Currently the pagination wrappers live in the Client, which also delegates to the stub:
public final ListTablesPagedResponse listTables(ListTablesRequest request) {
  return listTablesPagedCallable().call(request);
}
public final UnaryCallable<ListTablesRequest, ListTablesPagedResponse> listTablesPagedCallable() {
  return stub.listTablesPagedCallable();
}

public class ListTablesPagedResponse extends AbstractPagedListResponse // ...
public static class ListTablesPage extends AbstractPage // ...
public static class ListTablesFixedSizeCollection extends AbstractFixedSizeCollection // ...

The stub will import the pagination wrappers and use it construct the callable chain:
private final UnaryCallable<ListTablesRequest, ListTablesPagedResponse> listTablesPagedCallable;

this.listTablesPagedCallable =
        callableFactory.createPagedCallable(
            listTablesTransportSettings, settings.listTablesSettings(), clientContext);

And its also used in the stub settings:
private final PagedCallSettings<ListTablesRequest, ListTablesResponse, ListTablesPagedResponse>
      listTablesSettings;

I think this be an issue for build systems like bazel and makes it hard to define a consistent public surface for client like bigtable.
I'm not sure how this can be fixed in a backwards compatible manner. But I figured I would start a discussion

@igorbernstein2 Why is this an issue for Bazel system (or more importantly why is any build system affected by this)?

I was under the impression that bazel doesn't allow circular dependencies.

@vam-google Any updates on this? We're out of SLO.

@vam-google @igorbernstein2 can you two hash out importance/fixibility?

I want to say that this can be closed. @igorbernstein2 WDYT?

The practical issue for me is that it forces me to keep the generated gapic clients as part of the public surface in the Bigtable client. (Bigtable client provides a manually written layer on top of the gapic generated stub, it doesn't need the generated client).
However, I don't think moving this to the stub w/o api breakage will be easy, the classes are way too intertwined to split the layers.


More to do from 05/06/2015 group meeting

https://github.com/Nikea/Notes/blob/master/edill/wklee-group-meeting/2015-05-06.rst

Dead link


fix(modal): Don't show click-block-div unnecessarily on remove()

Short description of what this resolves:
Don't show click-block-div unnecessarily on remove().
See this comment and the following ones
Changes proposed in this pull request:
It's just a small and reasonable change to js/angular/service/modal.js.
Ionic Version: 1.x
Fixes: #4383

Hi @MartinMa, I am a little confused.  Why are you calling hide on a modal that isn't displayed?

Hi @danbucholtz this is exactly the problem. The intention of this PR is to improve the ionicModal#remove method, which can be called by the user to destroy the modal. But the remove-method is calling hide on a modal that isn't displayed (your words) in the current Ionic code.
Let me explain the changed code for you (because it is very short). In the body of ionicModal#remove I'm checking if the concerning modal is shown (aka 'is visible'). If it is shown, I'm calling hide. The resolved promise is then destroying the scope and removing the element from the DOM. But if the modal is not shown (aka 'invisible'), I'm not calling hide (and this is new). The promise is immediately resolved, the scope is going to be destroyed and the element is going to be removed.
I'm going to quote @solarsaturn9 here:

I think he is saying that Ionic is calling ionicModal#hide while it is going through the process of removing a modal. Its not a matter of use cases. I think your confusion lies in the fact that we are referring to two different things: a hidden modal and a removed modal. Removed modal is a modal that has been completely destroyed, not hidden.

I hope it is clear now?

I started writing some tests for this yesterday and then got pulled on to something else.  I will resume tomorrow or Monday, and we'll get this merged if there aren't any issues.
Thanks,
Dan


[IoTDB-2666] Implement the RPC of Fragment dispatch and status track

Description
Implement the basic InternalService RPC for FragmentInstance dispatch and status-track.

Coverage decreased (-0.07%) to 57.595% when pulling 1e368abca47be8f8a5177747c022e0edc311f80a on xingtanzjr/mpp_rpc into d160be9c22a0732c95a3bfc9ced23ef936c1162a on master.


Explicitly support mariadb upgrade from 10.1 to 10.2

The Problem/Issue/Bug:
We incidentally upgraded mariadb from 10.1 to 10.2 when upgrading the container in https://github.com/drud/ddev/pull/1123
However, you need to run mysql_upgrade when you do that. So we need to run mysql_upgrade on existing databases when they come up.
How this PR Solves The Problem:

Test to find out the expected mariadb version of the existing database. A new file is added to /var/lib/mysql to suggest this. If not found, it's assumed the version is/was 10.1
If we have a different mariadb version, run mysql_upgrade

Manual Testing Instructions:

Create a database/project using ddev v1.2.0 (or with drud/ddev-dbserver:v1.2.0 in config.yaml; it seems to be compatible.
ddev rm
Bring up the db with this version of ddev or with dbimage: drud/ddev-dbserver:20181006_mariadb_upgrade in config.yaml
ddev logs should show no errors, and you should see in there "Running mysql_upgrade" and a successful run.
Snapshot your new db.
ddev rm
ddev start
Inspect the db logs with ddev logs -s db. You should not see the mysql_upgrade, and should not see errors.
Restore your snapshot and then inspect with ddev logs -s db. You should not see the "Running mysql_upgrade"

Automated Testing Overview:

I added a test in containers/ddev-dbserver that loads a 10.1 database, runs our container with it, checks for the upgrade happening, then rm's the container and restarts it and checks that the upgrade doesn't happen (since it's already 10.2).

Related Issue Link(s):
The mariadb upgrade happened in #1123
Release/Deployment notes:
SUPER IMPORTANT: Unfortunately, mariadb/mariabackup 10.1 snapshots are not compatible with mariabackup 10.2. This means that people who have pre-ddev-1.3 snapshots will not be able to use them easily in ddev v1.3+ - but there is a workaround:

Set webimage: drud/ddev-dbserver:v1.2.0 in .ddev/config.yaml
ddev start
ddev restore-snapshot <name>
ddev rm
Remove or comment out the webimage line
ddev start

We need to mention this in the release notes for v1.3.0, and probably put up a Stack Overflow article explaining it in depth.

Thanks for the review @andrewfrench . I'm going to do one more little bit with this, detect when we can't restore a snapshot and give them a link to the workaround.


error when generating

Hello,
when executing vendor\bin\jane-openapi generate, I get the following error:
[Symfony\Component\OptionsResolver\Exception\MissingOptionsException]
The required option "mapping" is missing.
Thanks.

Ok, it seems that having the config file is not enough, I provided everything on the command line and now it generates.
Thanksl


Dash All Night by SdSlayer

Song Name
Dash All Night
Artist Name
SdSlayer
Source
Youtube
Youtube Link
z6AlkyTWOto
Direct File Link
No response
Song ID
1001
Extra
No response

accept


Allow the tablet/menu to be grabbed and placed

Currently, the menu is fixed to the left controller/hand.
This could make using the interface challenging in some cases:

Users who prefer using the opposite hand.
Having to hold the hand still to read/interact with the menu.
Entering text on the menu does not encourage left-hand interaction.

Allowing the user to grab and place the menu arbitrarily in the scene would solve these issues.

I started working on this in #83 by detaching the menu from any hand, so that should come with the next release. 😄

I just checked out the update and noticed the placeable panel. Nice work!