Adding support for the BME680 environmental sensor

Hi,
We would like to add support for the BME680 environmental sensor. We hope that the driver is fit for merging.

@BoschSensortec thanks for the fixes. However in order to apply those you need to rebase interactively the existing commits, instead of adding a new commit on top.
You can find more information here:
http://docs.zephyrproject.org/contribute/contribute_guidelines.html#contribution-workflow

Hi @carlescufi & @SebastianBoe,
Your requested changes have been added.

Hi @carlescufi,
Do the existing commits need to be rebased?

@BoschSensortec yes, so commit 585f06b8d7995db0ae83988f8080dd168a5dddbd needs to go away and its contents need to go to the relevant existing commits.

Hi @carlescufi,
Review changes now done as requested.

@BoschSensortec I believe, you would need to sign-off your commits, to get the CI test passing.

@BoschSensortec I believe, you would need to sign-off your commits, to get the CI test passing.

Yep, indeed. Just rebase and use git commit --amend -s for each commit.

Hi @ioannisg & @carlescufi,
Added the sign-off messages as requested. Does the DCO have to be added to the sign-off messages?

@BoschSensortec no, this is fine now, thanks. Hopefully we allow non-human names for the sign-off :) Typically this is a "First Last<EMAIL_ADDRESS>

@BoschSensortec there are still some issues with your commit messages:
https://app.shippable.com/github/zephyrproject-rtos/zephyr/runs/21727/5/tests
The long lines and trailing whitespace should be simple to fix.
This one:
author email (Bosch Sensortec<EMAIL_ADDRESS>needs to match one of the signed-off-by entries.

@BoschSensortec thanks! I'm happy with this as-is. I think there's a build failure but it seems unrelated to your PR. Maybe @MaureenHelm can comment on that one.

On Wed, Sep 05, 2018 at 11:04:33PM -0700, Bosch Sensortec wrote:

BoschSensortec commented on this pull request.

+#define BME680_REG_COEFF3               0x00
+#define BME680_REG_FIELD0               0x1d
+#define BME680_REG_IDAC_HEAT0           0x50
+#define BME680_REG_RES_HEAT0            0x5A
+#define BME680_REG_GAS_WAIT0            0x64
+#define BME680_REG_SHD_HEATR_DUR        0x6E
+#define BME680_REG_CTRL_GAS_0           0x70
+#define BME680_REG_CTRL_GAS_1           0x71
+#define BME680_REG_CTRL_HUM             0x72
+#define BME680_REG_CTRL_MEAS            0x74
+#define BME680_REG_CONFIG               0x75
+#define BME680_REG_MEM_PAGE             0xf3
+#define BME680_REG_UNIQUE_ID            0x83
+#define BME680_REG_COEFF1               0x8a
+#define BME680_REG_CHIP_ID              0xd0
In order to have leaner code, like in the BME680 API, addresses above 0x7f are on a different page when operation over the SPI interface. Hence, instead of checking in each API for the interface selected or even having separate drivers for SPI and I2C, denoting the pages in this manner allows for a unified driver. This taken care of in the bme680_get_regs and bme680_set_regs APIs which allows the rest of the code to only handle the I2C addresses.

Yes, the SPI interface indeed difficult to implement consisting of
differnet memory page(Page 0 & Page 1).
I would be happy to see the SPI interface in future.
And I well aware of BSEC integration with BME680 API so that may break
and would require a lot of rework.
My comments are just to put the code in nice category.
--
Himanshu Jha
Undergraduate Student
Department of Electronics & Communication
Guru Tegh Bahadur Institute of Technology

Hi @galak,
We do not have the means and know-how to add and test the device tree at this point in time.

On Mon, Sep 10, 2018 at 11:17:06PM -0700, Bosch Sensortec wrote:

BoschSensortec commented on this pull request.

val->val1 = data->calc_gas_resistance;

val->val2 = 0;

break;

default:

return -EINVAL;

}

return 0;
+}

+static int bme680_read_compensation(struct bme680_data *data)
+{

u8_t buff[BME680_LEN_COEFF_ALL];
int err = 0;

err = bme680_reg_read(data, BME680_REG_COEFF1, buff, BME680_LEN_COEFF1);

The sensor does support register auto-increment, but the registers are at different positions in the register map. Also looking forward, when SPI support would be added, these registers would be in different pages.

Page 0(0x00 to 0x7F) is only required for doing:

Soft reset.
checking ID.

Page 1(0x7F to 0xFF) has other registers:
And the compensation parameters start from:
https://github.com/torvalds/linux/blob/master/drivers/iio/chemical/bme680.h#L64
#define BME680_T2_LSB_REG       0x8A
..
..
#define BME680_GH3_REG          0xEE
So, I believe pages have nothing to do with compensation data.
Correct me if I'm wrong somewhere!
@MaureenHelm These compensation parameters are programmed into
the devices' NVM during production and can't be altered by the user.
So, it is often called "constant" compensation parameters. Now, these
compensation parameters are used into those "weird" looking
compensation functions/algorithm to get the processed output data.
So, IMHO these parameters should be read serially with error handling
and stored into the private/config structure using the regular byte
ordering functions sys_le16_to_cpu. And these constants don't change,
therefore its better to read them only "once" during the device probe
and use it for the whole cycle.
--
Himanshu Jha
Undergraduate Student
Department of Electronics & Communication
Guru Tegh Bahadur Institute of Technology

On Tue, Sep 11, 2018 at 05:25:51PM -0700, Maureen Helm wrote:

MaureenHelm commented on this pull request.
sys_le16_to_cpu doesn't make sense in this case since the parameters have been read into an array of u8_t and they're not all the same type (you can't cast to an array of u16_t).

Take a look here:
https://github.com/torvalds/linux/blob/master/drivers/iio/chemical/bme680_core.c#L96

Adds necessary error handling check on each parameter.
Removes usage of BME680_CONCAT_BYTES macro.

Upto you to deicde which implementation is better for
Zephyr.
--
Himanshu Jha
Undergraduate Student
Department of Electronics & Communication
Guru Tegh Bahadur Institute of Technology

@BoschSensortec any idea on this? I just started work on the BME680 driver myself but then I saw this so an estimate on a working PR would be nice!

@BoschSensortec will you be able to address @MaureenHelm's comments?

Hi @carlescufi, the only pending item is the updated datasheet, when it is available via our website the comments from @MaureenHelm will addressed.

Hi @carlescufi, the only pending item is the updated datasheet, when it is available via our website the comments from @MaureenHelm will addressed.

And when would be it available at your website with updated info ?
The other sensors of the Bosch family have much more detailed info in their respective datasheet. They describe about what different configuration of sampling ratios, IIR filter coefficient values, etc should be used for say when using at a weather station.
Now, while testing this device in various configs such higher sampling rate + filter on + ULP produces:
T: 0.000000; P: 0.000000; H: 0.000000; G: 0.000000
And my past experiecnce with this particular sensor says that you need to always check if the sensor heater plate got heated to the desired temperature or not ? If it didn't, then just abort or signal user
-ERETRY or something like that.
Pg 34/50
<IP_ADDRESS> Heater Stability Status
Heater temperature stability for target heater resistance is indicated heat_stab_x status bits.
Just check this bit before fetching the gas reading!
Because it is verly likely that if a user selects
400 degC + 197ms + very low sampling rates + filter off
config then heater will not get heated to the target heater temperature.
And if you provde various facilites for user to select using Kconfig then why not provide them the liberty change the ambient temperature through Kconfig as well which is hardcoded currently as:
s32_t amb_temp = 25;    /* Assume ambient temperature to be 25 deg C */
Ambient temp plays a major role in the gas reading.
As @MaureenHelm pointed use vendor prefixes as followed in linux kernel:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/vendor-prefixes.txt#n60
I'm also curious how are you testing this sensor ? Development board setup ?
How are you planning to use it with BSEC ?
It is likely that I will re-work this driver at few places in future and your answers will surely help me as to what direction should be followed.

Hi @carlescufi, the only pending item is the updated datasheet, when it is available via our website the comments from @MaureenHelm will addressed.

@BoschSensortec we need documentation first. Please add a README.rst in the sample root folder similar to: https://github.com/zephyrproject-rtos/zephyr/blob/master/samples/sensor/fxos8700/README.rst
There's also a bunch of unadressed comments that are unrelated to the datasheet. If you address those and add the README we can merge and then follow-up with a PR once the datasheet is available:
https://github.com/zephyrproject-rtos/zephyr/pull/9798#pullrequestreview-160929483
https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r222117430
https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r222117639
https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r222118774
https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r222120737
https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r222121167

@carlescufi , @galak , @jhn-nordic
Awaiting final reviews on the datasheet prior to publishing, and then this PR will be completed. Tracked via direct mail.

      The driver should have dts support, look at bosch,bme280 for an example.

@galak,
Could please provide a link to a concrete documentation of the DTS concept and it's use? Hacking around with already existing files is tedious and often frustrating for devlopers who are new to Zephyr.
Thank you.

Could please provide a link to a concrete documentation of the DTS concept and it's use? Hacking around with already existing files is tedious and often frustrating for devlopers who are new to Zephyr.
Thank you.

It's on my todo list to write up a doc on how to "develop" a sensor driver from a DTS point of view.  I'll look at what you've got and try and use it as an example for my doc.

Hi @galak ,
Could you review the changes to the dts file?

@MaureenHelm,
The changes requested are now added. Awaiting your feedback. Note that the datasheet request is still ongoing but will definitely be out when ready.

Hi @galak and @MaureenHelm ,
The dts/bindings/sensor directory is missing an owner.

@BoschSensortec regarding the code owners, can you add please a line like:
dts/bindings/sensor/*bme680*

and this should fix the issue.
Thanks!

@BoschSensortec regarding the CODEOWNERS file, can you please add a line in it like:
dts/bindings/sensor/bme680
and this should fix the issue.
Thanks!

Hi @carlescufi,
of course. Thanks.

@BoschSensortec can you please rebase on top of the latest master?

Hi @carlescufi,
Rebase is completed. Can you check it again?

So in sample.yaml we depend on bme680, but do we have any boards that are going to set that?  Just concerned we aren't going to ever build the sample as part of sanitycheck.

So in sample.yaml we depend on bme680, but do we have any boards that are going to set that? Just concerned we aren't going to ever build the sample as part of sanitycheck.

@galak I know we have a board (upcoming nRF91-based one) that will use this. I will see if we can send this upstream, but I am not sure about that. If that wasn't the case, is there a way to force the build for this sensor even if there is no board that actually has it physically?
@joakimtoe care to comment?

So in sample.yaml we depend on bme680, but do we have any boards that are going to set that? Just concerned we aren't going to ever build the sample as part of sanitycheck.

@galak I know we have a board (upcoming nRF91-based one) that will use this. I will see if we can send this upstream, but I am not sure about that. If that wasn't the case, is there a way to force the build for this sensor even if there is no board that actually has it physically?
@joakimtoe care to comment?

Yes! We have a nRF91 board with this sensor on its way, expected later this year. We do not want to upstream this board until its publicly available to avoid confusion.

Hi @MaureenHelm @BoschSensortec
I've noticed that Bosch have now published a new datasheet (Arpil 2019):
https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME680-DS001.pdf
We need the driver for Zephyr as soon as possible, so it would be great if the release of the new datasheet could push this PR forward.
We've gone throught the comments holding the PR back. To me it seems that not all the "magic values" and compensation operations are documented in the datasheet, but it rather refers to the BME680 driver that Bosch host on GitHub for further details (see for instance bottom, page 19):
https://github.com/BoschSensortec/BME680_driver/blob/63bb5336/bme680.c
The Linux driver that was provided by @himanshujha199640 and accepted by Linux also refers to the Bosch driver for details. Would it be sufficient for the Zephyr driver to do this as well, so that this PR can get some traction? It looks like Bosch will not provide insight into all details, but will stick to referring to their implementation for the compensation algorithms.
cc @carlescufi @joakimtoe

Here are the comments that I've found that are still unaddressed, though could be more:

https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r215633823 regarding 64-bit division (contains a question directed at @carlescufi )
https://github.com/zephyrproject-rtos/zephyr/pull/9798#discussion_r222119628 regarding documentation updates per new datasheet. AFAICT these are not documented in the new datasheet, but it's referred to the Bosch driver for details.
https://github.com/zephyrproject-rtos/zephyr/pull/9798 regarding unused struct member

@MaureenHelm @BoschSensortec I took the liberty of rebasing and fixing the CI issues

@jtguggedal
I looked at the new datasheet and couldn't see anything new/updated section.
I was expecting rectification of spi_mem_page register info in this new revision. Please correct
me if I'm @BoschSensortec that Pg 24/50 says:
After power-on, spi_mem_page is in its reset state and page 0 (0x80 to 0xFF) will be active. Page 1 (0x00 to 0x7F) will be
active on setting spi_mem_page to 1.

But Pg 26/50:
In SPI mode complete memory page is accessed using page 0 & page 1. Register spi_mem_page is used for page selection.
After power-on, spi_mem_page is in its reset state and page 0(0x00 to 0x7F) will be active. Page1 (0x7F to 0xFF) will be
active on setting spi_mem_page.

I believe page 0 is (0x80 - 0xFF) & page 1(0x00 - 7F).
Talking about the complex compensation function: Yeah even Jonathan(IIO subsystem maintainer) was
reluctant to apply my patch.
Read note in the commit message: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1b3bd8592780c87c5eddabbe98666b086bbaee36
And his reply: https://lore.kernel.org/linux-iio/20180728114028.3c1bbe81@archlinux/
OTOH, if you look at other drivers of Bosch family such as bmp280, bme280, etc., they also share
the same complex algorithms. It's just that for bme680 it gives ref to bme680 github API while for others
those algorithms were mentioned in the datasheet itself.
IIRC @BoschSensortec can provide you the maths involved in IAQ calculation(maybe compensation algorithms too) but that can't be shared publicy(Non-Disclosure Agreement) ;-)

@himanshujha199640 Yeah, it seems that there wasn't much new to the new datasheet revision after all. I'll  keep an eye on new revisions, and will send a patch with updated documentation if the datasheet contains more explanations in the future.


Add tests for get_node autocompletion

Requires #86961

A whooping 100 files added. Are they all truly necessary for the tests?

A whooping 100 files added. Are they all truly necessary for the tests?

Yeah the file count kinda exploded :sweat_smile:. But every idea I have to reduce it seems worse.

Each test needs at least 2 Files. That makes 50 test, but some of them are duplicated in different call situations (yes this is needed, see for example #72328 and there also was another one that i cant find rn :disappointed:). So we are at ~30 test, and I plan to do more, not reduce them. For something as complex as this, reducing tests doesn't seem like a good idea.
I often have test which require the same output for multiple files. But specifying script paths inside of the cfg files, would make it harder to find the right cfg. And I don't wan't to have multiple scripts inside of the same file, since it would introduce yet another "magic" character to separate them.
We could reduce each test into one file, but this would either require a sort of preface for the GDScript and parsing that would be annoying. Or we could embed the GDScript inside the cfg, but that would make it impossible to test something manually by opening the script in the editor.

If you have any other ideas to reduce it, I'm all in for it, that being said many test files aren't that big of a problem to justify any of the tradeoffs that I listed IMO.

Waiting for #87759 in order to fix the CI.

Ready for review

Thanks!

Oh shit, I just noticed I forgot to squash the commits and now you merged it :sweat_smile:. I guess it can't be changed now?

Yeah I missed that. It can't be changed once merged.


add CONTRIBUTING.md file

Signed-off-by: AmiStrn<EMAIL_ADDRESS>Description
add CONTRIBUTING.md file to guide community members how to contribute to the repo
Issues Resolved
fixes #12
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks @dblock :)


build fail with ghidra 10.0.4

# /usr/bin/gradle -PGHIDRA_INSTALL_DIR=/opt/ghidra_10.0.4 buildExtension
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true

FAILURE: Build failed with an exception.

* Where:
Script '/opt/ghidra_10.0.4/support/buildExtension.gradle' line: 80

* What went wrong:
A problem occurred evaluating script.
> Could not set unknown property 'archiveBaseName' for task ':buildExtension' of type org.gradle.api.tasks.bundling.Zip.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s

is maybe my gradle version too old or too new? it is 4.4.1

Yes your gradle version is way too old. The extension build system has the same gradle requirements as for building Ghidra. You need at least gradle 6.

thank you!


SearchBar documentation

Would be nice the SearchBar documentation provides bit more detail, better example, use with XAML, better visual showing live graphic rather than just view of initial image, more explanation etc. Even though it is just a glorified Entry, the doc should be more revealing and explanatory than what it is now

Hi, @dbnex14 - you might be able to find the more detailed information you're looking for here: https://docs.microsoft.com/xamarin/xamarin-forms/user-interface/searchbar
with demos linked at the bottom of the page: https://docs.microsoft.com/samples/xamarin/xamarin-forms-samples/userinterface-searchbardemos/
I hope this is helpful! But if not, let us know :)

Microsoft support for Xamarin will end on May 1, 2024 for all Xamarin SDKs including Xamarin.Forms. In preparation for this, all issues and PRs in this repository are being closed.
.NET MAUI is the replacement for Xamarin.Forms, and its API docs are built from /// in the dotnet/maui repository. Therefore, any issues with the .NET MAUI API docs should be opened in that repository.


Do not require the port binding for the ssh service

Do not require the port binding for the ssh service to be on the <IP_ADDRESS> address.
The problem is that Windows Server 2016 docker implementation does not support "host IP addresses in NAT settings" - Removing the fixed IP solves the problem and makes no problems with *NIX based servers.
This fix was originally submitted to the docker-java project and has been merged, but was never published to the Jenkins plugin repository.
We're using the Windows Server 2016 Docker via a swarm setup and it worked like a charm with the original Docker Plugin. We're using custom images with a cygwin SSHD set up, but I'm trying to port this to at least Open SSH by windows.
It might help to get #151 under way.

Codecov Report

Merging #155 into master will not change coverage.
The diff coverage is 0%.

@@            Coverage Diff            @@
##             master     #155   +/-   ##
=========================================
  Coverage     20.88%   20.88%
  Complexity      205      205
=========================================
  Files            55       55
  Lines          2298     2298
  Branches        201      201
=========================================
  Hits            480      480
  Misses         1763     1763
  Partials         55       55

Impacted Files
Coverage Δ
Complexity Δ

...tyasha/yad/launcher/DockerComputerSSHLauncher.java
5.17% <0%> (ø)
1 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

What address will be used instead with this change?

While creating the binding it will fall back to en empty address, equivalent to null or "" I guess.
For the SSH Connection it will not matter since in getHostAndPort it checks for either <IP_ADDRESS> or null. It is null now with my change so the same logic for checking the exposed port is being used.
The port will not be bound to a specific IP address inside or outside the container.

Could you squash your commits?


White screen after updating Whatsapp

I updated 'whatsapp' on 2.2039.9 but when I start the program I see only a white screen.

Can confirm this - just installed WhatsApp through scoop and all I have is a white screen.

Same issue here.

Same problem with 2.2041.6 version.

PS to future posters: There's no need to keep bumping an issue once it has been confirmed a few times. It just creates unnecessary notifications for those watching this repository.


garbage collection

first of all cool project!
Is a garbage collection scheduled?

Right now we are just "chaining" all mallocs. A minimal and efficient GC would be awesome!

why not: http://www.hboehm.info/gc/

If you make the language garbage collected, those interested in the raw C compatibility may be driven away (myself included).


Skip hidden directories

Prevent zodiac from parsing and copying hidden directories like .git and .zod

This would be very handy to ignore every .* for me.  I could use it to make a .site dir a bit like jekyll _site.  The .site would be my a repository pointing to username.github.io.
But the solution you provided in your example is also great and is the one I use for now.


context menu triggers drag

If you open a context menu on a node in a force layout (for example http://bl.ocks.org/mbostock/1021841), a drag is triggered when you release the menu button. I checked this with d3 version 3.3.9, both chrome (31.0.1612.0 dev) and firefox (slightly different incorrect behavior for 25.0) on linux x86_64.

So if anybody is interested, I have a branch that fixes this situation here: https://github.com/partap/d3/tree/drag-buttons
I opened another issue (#2498) that turned out to be a duplicate, but it describes how to use the patch to prevent the right mouse button from initiating a drag.

In d3-drag (see d3/d3-drag@7e70ce18d7cd07ae60383fea374a952e326ed76a) I’ve added a drag.filter method which allows you to set a function to customize which mousedown or touchstart events the drag behavior will use to initiate a drag gesture. The default is:
function filter() {
  return !d3.event.button;
}

This means the drag behavior will ignore mousedown on secondary buttons completely, so it’ll open the context menu without initiating drag. If you want to initiate a drag with the secondary buttons, you can do that by changing the filter—though presumably you’ll also want to prevent the default behavior by listening to the contextmenu event to prevent the context menu from also appearing.


Mongo7 upgrade

Hi, tests pass in CI, but the service container fails after upgrading to Mongo7. Still debugging to find the root cause.

Hi, tests pass in CI, but the service container fails after upgrading to Mongo7. Still debugging to find the root cause.

Gavin's solution fixed the bug.


Error: something is wrong after github login

Hello,
I have made several attempts to resolve the issue, but it persists. My next course of action will involve overriding the next-auth module, as it appears to be the source of a login and verification error. I have successfully deployed the application multiple times, ensuring that the database is functioning correctly, Stripe integration is working, and updated pricing is displayed accurately. However, the error only manifests when attempting to log in, and it occurs almost immediately upon re-login.
To address this issue, I propose the following steps:
Reproduction: Clone the project from Vercel.
Verify that all environmental variables are correctly configured.
Review all login URLs for GitHub OAuth integration.
Test the application on a new laptop that has never visited the website (project.vercel.app).
Create a new GitHub account and observe that the app starts to display its UI but then crashes without displaying any code.

Upon closer examination, I have noticed that there is an API endpoint located at pages/marketing & /api/generate that calls to the main repository. These API calls are causing errors locally when rendering the page and may be the reason for the crashes. It's worth noting that the API usage on api/generate appears to be exhausted, indicating that it's making two API calls on the same page: one for tier data from the original repository and another for tier.run/stripe products.
I suggest investigating whether an update is required for the next-auth module to resolve the login issue. Additionally, we should consider whether it's necessary to retain the tier-api metadata for the original repository. It appears that fetching this metadata on every page/marketing click might be excessive and could contribute to performance issues.
Let's address these issues systematically to ensure the stability and efficiency of the application.

well.

Can you share the link to your working repo,

Can you join our community in Slack and DM me, we might need to exchange some secrets to get this sorted. https://tier.run/slack

Can you share link again? I'm revisiting this idea looking to resolve the auth.  Thanks


Material pipeline optimization

Current material pipeline tooks too much cost for sending uniforn variable of each material attributes.
This can be improved by sending all material attributes with shader storgae block object and indexing with drawing index

#5


Antialiased border corners

Describe in detail your idea.
:finnadie:

basically to make the corners antialiased i think i'd have to make the entire scene antialiased (or at least border render)
I'll look into it some day lol

Since it's in OpenGL, you can just use MSAA yea?

yeah it is some settings and i think it's enabled on a per-fb basis

sick :feelsgood:

Isn't it implemented in https://github.com/vaxerski/Hyprland/commit/e11cb8b328ff2ed9459f12319808226d3b900aa2 it's even in the docks https://github.com/vaxerski/Hyprland/wiki/Basic-Config#docoration

it got implemented after the issue, furthermore it's not fully done.


Add support for transparent Color

Implementation of #58

I opted not to put it in the existing COLORS_BY_NAME dictionary as these are all RGB values, and this requires RGBA values. This would then require adding a fourth None value to all the tuples, adjusting all that logic, etc.; and that seems overkill for this single color.

@CollinHeist i will merge it can you add just a test case for it 🙏🏻

@yezz123 Sure, I've taken stab at that. I'm not familiar with pytest so let me know if you have an alternate suggestion.


github page

add a github page.
discussion: branch vs /docs
https://pages.github.com
https://help.github.com/categories/github-pages-basics/

there is a first very basic page.

activated email obfuscation.


[FLINK-22715][runtime] Implement streaming window assigner tablefunction operator.

What is the purpose of the change
In theory, StreamPhysicalWindowTableFunction should works as a window assigner and emits at ends of window. However, StreamPhysicalWindowTableFunction could be simplified to a simple window assigner, and emits per record if it's successor node is one of WindowRank/WindowJoin/WindowAggregate with WindowAttachedWindowingStrategy, because those nodes would assign input records to windows have been assigned in input nodes, and trigger emit at ends of window.
Besides, we should add a limit that window is based on rowtime, because it has syntax problem if window is assigned based on the proc-time of previous operator.
The pr aims to implement streaming window assigner tablefunction operator.
Brief change log

Introduce WindowTableFunctionOperator and WindowTableFunctionOperatorTest
Update StreamExecWindowTableFunction to handle some special case which satisfy: 1. emit record per record 2. use rowtime attribute

Verifying this change

A harness test WindowTableFunctionOperatorTest to validate the behavior of WindowTableFunctionOperator
Add ITCases in WindowJoinITCase and WindowRankITCase

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@JingsongLi Thanks for review, I've updated, please have a look.


Terminal crush after source

I'm using zsh and oh-my-zsh configs, I noticed that after adding zsh-syntax-highlighting to plugins of OMZ, then if I do source ~/.zshrc, the terminal will crush.

Does one of the scenarios in #353 apply to your setup?

This applies in my case: https://github.com/zsh-users/zsh-autosuggestions/issues/126#issuecomment-217041261
Thanks for the help :+1:

Closing: upstream issue with workaround available.

Thanks!


Use nodes child_process.execSync

Had some trouble to install execsyncs , so I replaced it with nodes child_process.execSync.

I also have this problem - execsyncs doesn't seem to work with Node 4.1.2.

+1 Had issues using the latest official release, this branch fixes the errors.

Me, too. Was broken with Node 5.8.0, this fixes it. Would be nice to have this merged!


Question - How to Initialize Display Values

Hi everyone. I have a question I hope someone can answer.
In my autocomplete view, I created a function that outputs the display name that I'd like shown to the user:
# views.py
class MyAutocomplete(autocomplete.Select2QuerySetView):

    def get_result_label(self, item):
        return item.display_name

This works great and shows the item.display_name to the user in the select box.
However, when the form first loads, it's showing the string representations of the items item.__str__ which is not what I want -- I want all of the items in my select box to use item.display_name.
Do I need to somehow create a custom widget that inherits from autocomplete.ModelSelect2Multiple? Or, can I somehow pass this widget the field name that I want to use to set the display names of the items?
class MyForm(forms.ModelForm):
    class Meta:
        widgets = {
            'my_field': autocomplete.ModelSelect2Multiple(
                url='my_field-autocomplete',
                # label_field='display_name', << I made this up as an example...
            ),
        }

Thanks.

There's a plan to join both the widget and view, by making a widget that
can return a view too, but it's nowhere done yet.
--
∞

Thanks for the quick answer @jpic. With that in mind, how might I implement this.  I did some searching and I see there was an issue #1087 about how to override label_from_instance. I'm still learning a bit, so any pointers about where I might do this in my code would be helpful. Do I need to subclass a widget and override this method? Any pointers/tips/snippets are appreciated. Thanks!

Here's an example of what I'm trying to do, but it doesn't seem to work:
class MyOverrideOfModelSelect2Multiple(autocomplete.ModelSelect2Multiple):
    def label_from_instance(self, obj):
        return obj.display_name

class MyForm(forms.ModelForm):
    class Meta:
        widgets = {
            'my_field': MyOverrideOfModelSelect2Multiple(
                url='my_field-autocomplete',
            ),
        }

@jimkring the difficulty is that the choices are rendered by two different moving parts.
There is an example implementation in the "alight" branch of #1170, you get to do this:
class YourAutocomplete(autocomplete.ModelAutocomplete):
    def render_choice(self, choice):
        return f'
{choice.display_name}
'

This will be used to render both the autocomplete box and the initial widget.
But be careful if you try that branch because the URL declaration has now changed, you're not adding a view but urlpatterns.append(YourForm.your_field.as_url(YourForm)) or urlpatterns += YourForm.as_urls().
Would that seem like what you wanted to do ?


Added two packages for Dimitri Sabadie.

smoothie, a spline library ;
al, a raw binding to OpenAL 1.1.

Thanks

I'm unable to compile al on my Ubuntu box (outside of a Stackage build as well). I get the error message:
Building al-0.1.1...
Preprocessing library al-0.1.1...
dist/build/Sound/AL/Defines.chs.h:2:16: fatal error: al.h: No such file or directory
compilation terminated.
c2hs: Error during preprocessing custom header file

I'm going to have to temporarily disable al until this can be resolved.

Thanks for the feedback, I’m inquiring.

@snoyberg , should be fixed now. Can you test with the latest version from hackage?

I've added al back to stackage, we'll see what happens on the next nightly build.


Support ipv6 proxy address

Related to https://github.com/wakatime/vscode-wakatime/issues/361.

Would mind fixing the errors first?

Would be great if a test case is added as well.


LDAP Integration

Description
having many services that use their own authentication system.
Desired Behavior
The ability to auto-import username/password via an external LDAP server so users can sign in without an admin needing to create an account for them.
Additional Context
or maybe a sign in button that allow to register himself
Code of Conduct

[X] I agree to follow Teemii's Code of Conduct

I currently manage several services that I share with my friends. Each service has its own authentication system, and it would be beneficial to implement LDAP for a unified account system. This way, we can use the same credentials across all the services.

I recommend you take a look at Authelia, once installed and configured it can be positioned above any containerized services and offer authentication (ldap included).


Bug Report - Incorrect 'pin' Key in 'gateway_parsian.php'

I recently installed omalizadeh/laravel-multi-payment version ^2.6 and encountered an issue where the application was throwing a "pin not found" error. After investigating the problem, I found that the issue lies in the configuration file gateway_parsian.php. The key pin should be replaced with pin_code for proper functionality.
Steps to Reproduce:
Install the omalizadeh/laravel-multi-payment package version ^2.6.
Attempt to use the Parsian gateway within the package.

Expected Behavior:
The package should work correctly without any errors related to the 'pin' key.
Actual Behavior:
The package throws an error mentioning that the 'pin' key is not found.
Additional Information:
The issue can be resolved by changing the 'pin' key to 'pin_code' in the gateway_parsian.php configuration file.
Thank you for your attention to this matter. If you need further information or assistance, please let me know.
Sincerely,
Majid Feiz

hi.
i couldn't seen any 'pin' key in v2.x branch, it's all pin_code like the driver itself. maybe you upgraded from 2.6 to 3.0 and didn't update any config file in your project? i changed pin_code to pin according to parsian documentation in new major version.
@majidfeiz


Error during generating of new project with npm create tamagui@latest

Current Behavior
When generation new project with npm create tamagui@latest I am getting error. I tried different versions of node. I tried to install promise-spawn globally manually. Still does not work. Error:
$ git init
[tamagui] Failed to copy example into C:\dev\test\temp\test

 ProcessOutput {
  stdout: '',
  stderr: '',
  signal: null,
  exitCode: 1
}
node:child_process:965
    throw err;
    ^

Error: Command failed: node C:\Users\tonven\AppData\Local\npm-cache\_npx\d01fabec74a282ea\node_modules\create-tamagui\dist\index.js
    at checkExecSyncError (node:child_process:890:11)
    at Object.execSync (node:child_process:962:15)
    at Object.<anonymous> (C:\Users\tonven\AppData\Local\npm-cache\_npx\d01fabec74a282ea\node_modules\create-tamagui\run.js:6:26)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12)
    at node:internal/main/run_main_module:23:47 {
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 21836,
  stdout: null,
  stderr: null
}

Node.js v18.18.0
npm ERR! code 1
npm ERR! path C:\dev\test\temp
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c create-tamagui

npm ERR! A complete log of this run can be found in: C:\Users\tonven\AppData\Local\npm-cache\_logs\2023-09-28T16_15_52_619Z-debug-0.log

Error from log file:
0 verbose cli C:\Program Files\nodejs\node.exe C:\Users\tonven\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing npm:load:whichnode Completed in 1ms
4 timing config:load:defaults Completed in 1ms
5 timing config:load:file:C:\Users\tonven\AppData\Roaming\npm\node_modules\npm\npmrc Completed in 2ms
6 timing config:load:builtin Completed in 2ms
7 timing config:load:cli Completed in 1ms
8 timing config:load:env Completed in 1ms
9 timing config:load:file:C:\dev\test\temp\.npmrc Completed in 0ms
10 timing config:load:project Completed in 0ms
11 timing config:load:file:C:\Users\tonven\.npmrc Completed in 0ms
12 timing config:load:user Completed in 1ms
13 timing config:load:file:C:\Users\tonven\AppData\Roaming\npm\etc\npmrc Completed in 0ms
14 timing config:load:global Completed in 0ms
15 timing config:load:setEnvs Completed in 0ms
16 timing config:load Completed in 6ms
17 timing npm:load:configload Completed in 6ms
18 timing config:load:flatten Completed in 2ms
19 timing npm:load:mkdirpcache Completed in 0ms
20 timing npm:load:mkdirplogs Completed in 0ms
21 verbose title npm create tamagui@latest
22 verbose argv "create" "tamagui@latest"
23 timing npm:load:setTitle Completed in 1ms
24 timing npm:load:display Completed in 0ms
25 verbose logfile logs-max:10 dir:C:\Users\tonven\AppData\Local\npm-cache\_logs\2023-09-28T16_15_52_619Z-
26 verbose logfile C:\Users\tonven\AppData\Local\npm-cache\_logs\2023-09-28T16_15_52_619Z-debug-0.log
27 timing npm:load:logFile Completed in 6ms
28 timing npm:load:timers Completed in 0ms
29 timing npm:load:configScope Completed in 0ms
30 timing npm:load Completed in 33ms
31 timing arborist:ctor Completed in 0ms
32 silly logfile start cleaning logs, removing 2 files
33 silly logfile done cleaning log files
34 http fetch GET 200 https://registry.npmjs.org/create-tamagui 794ms (cache revalidated)
35 timing arborist:ctor Completed in 0ms
36 timing arborist:ctor Completed in 0ms
37 timing command:create Completed in 10401ms
38 verbose stack Error: command failed
38 verbose stack     at ChildProcess.<anonymous> (C:\Users\tonven\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:53:27)
38 verbose stack     at ChildProcess.emit (node:events:517:28)
38 verbose stack     at maybeClose (node:internal/child_process:1098:16)
38 verbose stack     at ChildProcess._handle.onexit (node:internal/child_process:303:5)
39 verbose cwd C:\dev\test\temp
40 verbose Windows_NT 10.0.22621
41 verbose node v18.18.0
42 verbose npm  v10.1.0
43 error code 1
44 error path C:\dev\test\temp
45 error command failed
46 error command C:\Windows\system32\cmd.exe /d /s /c create-tamagui
47 verbose exit 1
48 timing npm Completed in 10621ms
49 verbose code 1
50 error A complete log of this run can be found in: C:\Users\tonven\AppData\Local\npm-cache\_logs\2023-09-28T16_15_52_619Z-debug-0.log

Expected Behavior
Generating of new project happens without error
Tamagui Version
1.72.3

Platform (Web, iOS, Android)
Windows 10

Reproduction
npm create tamagui@latest

System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (16) x64 AMD Ryzen 7 7800X3D 8-Core Processor
    Memory: 46.59 GB / 63.14 GB
  Binaries:
    Node: 18.18.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.1.0 - C:\Program Files\nodejs\npm.CMD
    pnpm: 8.7.6 - ~\AppData\Local\pnpm\pnpm.EXE
  Browsers:
    Edge: Chromium (117.0.2045.43)
    Internet Explorer: 11.0.22621.1

Tamagui doesn't use promise-spawn anywhere at all...

@natew the error comes from this line: await $git init. Git init is working correctly if I run it manually from console. I see you have "git --version" before, and it does not failing, so the problem is not with my local instance of git

Tried yarn create at it gives the same error. If I try generating template without git, everything works as expected. Right after I can just run git init and I don't get any errors.

You're the only one getting this error for some reason, we've tried on quite a few machines and no one else reporting it despite a few hundred creations a day. Maybe your git or node or something has something messed up in how its set up :/

You're the only one getting this error for some reason, we've tried on quite a few machines and no one else reporting it despite a few hundred creations a day. Maybe your git or node or something has something messed up in how its set up :/

Sounds fair enough :) It is still not critical, maybe something is messed with my configuration on Windows machine. Thank you.

I got the exact same error:
[tamagui] Failed to copy example into /Users/kampgen/Documents/Altas/Projeto/tamagui-reference

 Error: Command failed: git clone --branch master --depth 1 --sparse --filter=blob:none git@github.com:tamagui/tamagui.git "/Users/kampgen/.tamagui/tamagui/tamagui.git"
    at genericNodeError (node:internal/errors:956:15)
    at wrappedFn (node:internal/errors:510:14)
    at checkExecSyncError (node:child_process:890:11)
    at execSync (node:child_process:962:15)
    at exec (/Users/kampgen/.config/yarn/global/node_modules/create-tamagui/dist/index.js:31768:89)
    at setupTamaguiDotDir (/Users/kampgen/.config/yarn/global/node_modules/create-tamagui/dist/index.js:31802:56)
    at async setupTamaguiDotDir (/Users/kampgen/.config/yarn/global/node_modules/create-tamagui/dist/index.js:31829:75)
    at async cloneStarter (/Users/kampgen/.config/yarn/global/node_modules/create-tamagui/dist/index.js:31772:218)
    at async run (/Users/kampgen/.config/yarn/global/node_modules/create-tamagui/dist/index.js:32209:5) {
  status: 128,
  signal: null,
  output: [ null, null, null ],
  pid: 14235,
  stdout: null,
  stderr: null
}
error Command failed.
Exit code: 1
Command: /Users/kampgen/.yarn/bin/create-tamagui
Arguments:
Directory: /Users/kampgen/Documents/Altas/Projeto
Output:

I tried with npm and yarn when using create tamagui, both failing. I'm using a MacOS, Node 21 and yarn with corepack.

Just got the same exact error when trying to run bunx create-tamagui-app@latest
Creating tamagui app...
✔ Project name: … jtamagui

Creating a new tamagui app /Users/john/Downloads/Dev/Aplicações/Random/jtamagui...
jtamagui folder created.
Setting up /Users/john/.tamagui...
$ cd /private/tmp/create-tamagui-app@latest--bunx
$ cd /Users/john/.tamagui
Updating tamagui starters repo
$ git sparse-checkout set starters
De https://github.com/tamagui/tamagui
 * branch            master     -> FETCH_HEAD
$ git pull --rebase --allow-unrelated-histories --depth 1 origin master
Missing template for next-expo-solito in /Users/john/.tamagui/tamagui/starters/next-expo-solito
node:child_process:965
    throw err;
    ^

Error: Command failed: node<EMAIL_ADDRESS>    at checkExecSyncError (node:child_process:890:11)
    at Object.execSync (node:child_process:962:15)
    at Object.<anonymous> (/private/tmp/create-tamagui-app@latest--bunx/node_modules/create-tamagui-app/run.js:6:26)
    at Module._compile (node:internal/modules/cjs/loader:1241:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
    at node:internal/main/run_main_module:23:47 {
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 41282,
  stdout: null,
  stderr: null
}

Node.js v20.8.1

EDIT: For anyone with the same issue, just run bunx create-tamagui, no @latest or anything, it worked for me.

Yep, this worked for me with yarn too.

still having this issue
[tamagui] Failed to copy example into C:\Users\mahar\projects\web
Error: Command failed: git sparse-checkout set code

I was experiencing the same, no matter the node version (v18, v20) etc on MacOS.
I did fix this problem by:
1. cd /Users/${username}/.tamagui
2. git init

And that's all ... after that npm create tamagui@latest didn't give the error that was described by the issue owner.


Install: add argument -usedns

Now we support FROM option and we may want to use it also with FQDNs/hostnames and not only with IPs.
Since by default now sshd has UseDNS set to no, we need a new argument to use along theo-install -install to turn it on

Fixed by #6

Fixed by #6


nixosTests.cifs-utils: remove

Motivation for this change
It was broken on all counts and not included in all-tests.nix, so it was never really executed anyways.
Part of https://github.com/NixOS/nixpkgs/issues/143681
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.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.

@LeSuisse perhaps you could fix this and turn it into a package test? See https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests

Yeah, I tried doing that but it seems like it's not a trivial conversion. Could be nice to have a cifs test similar to the zfs test, but that's more work than I'm willing to do for a file system I don't use


Fieldscapes converter for Belgium and France

Adding data converter for the sub-sampled data of the following countries.
References :

fiboa/data#20

Belgium Field Boundaries

fiboa/data#14

France Field Boundaries

fiboa/specification#28 this issue is present in the Franceconverter.  As per earlier discussions, for the fieldscapes project, the original geometries should not be changed.


XmlParseError now supports multiple parsing errors, as well as detailed information of the error, such as line, column etc

1st PR for #19, for erros in parsing xml


Add filtering in layers

Adds filtering to Vector Tile and GeoJSON layers.

Another thing for a subsequent PR, we should expose filters to the Python API as well

When testing a bit more this branch, it seems the buildings.jGIS file does not show up properly anymore:
Before:

After:

When testing a bit more this branch, it seems the buildings.jGIS file does not show up properly anymore:

That's probably because https://github.com/QuantStack/jupytergis/blob/83544ca3254f43eec777c9f3d9863b465a8a66cd/packages/base/src/mainview/mainview.tsx#L193 is  using the url param and not tiles. The changes in #91 should resolve that.


[core] Remove unstable_ prefix on some utils

BREAKING CHANGES
The following utilities were renamed to not contain the unstable_ prefix:

@material-ui/sytstem

 import {
-  unstable_useThemeProps,
+  useThemeProps,
 } from '@material-ui/system';

@material-ui/unstyled

 import {
-  unstable_composeClasses,
+  composeClasses,
 } from '@material-ui/unstyled';

@material-ui/core

 import {
-  unstable_useThemeProps,
+  useThemeProps,
 } from '@material-ui/core/styles';

I would personally keep styleFunctionSx and extendSxProp unstable, alongside all the other style system helpers so have the maximum freedom possible once we work on improving the performance of the system. There is likely room for +30-50%.
I would also keep getThemeValue unstable until we know if it's impacted by CSS variables.
Making composeClasses and useThemeProps sounds great.

I would personally keep styleFunctionSx and extendSxProp unstable, alongside all the other style system helpers so have the maximum freedom possible once we work on improving the performance of the system. There is likely room for +30-50%

Makes sense

I would also keep getThemeValue unstable until we know if it's impacted by CSS variables.

👍

Making useThemeProps stable sounds great. As it can be used to create custom components.

👍

For composeClasses, thinking more about it, is there a use case?

Maybe there will be for building custom design system.

@oliviertassinari I left only the changes to the useThemeProps and composeClasses. Regarding the composeClasses we could export it still as an unstable_, especially that it is util from the unstyled package.. However it is already used in most of the core components, so I am not sure that is going to be changed. Let me know what you think.

The reason I'm wondering about composeClasses is that it seems that this module is mostly to allow developers to customize our component through a wider range of options. But will developers building custom components ever care? To add to the point of Sebastian during the migration of the pickers to emotion, it does add boilerplate.

The reason I'm wondering about composeClasses is that it seems that this module is mostly to allow developers to customize our component through a wider range of options. But will developers building custom components ever care (they could enforce one way and stick to it, classes, global class name, components slot)? To add to the point of Sebastian during the migration of the pickers to emotion, it does add boilerplate.

I see, ok, let’s unstabilize it too :)