Add support for Heater Max H7134

Please explain your feature request in a one or two sentences.
Add compatibility for the new Space Heater with Fireplace Ambience (not released yet)

Is your feature request related to a problem? Please describe.
The device is not supported.

Any particular Govee devices that this relates to?
H7134 Heater

Anything else?
{"device":"81:83:60:74:F4:1D:19:96","deviceName":"Heater Max","model":"H7134","httpInfo":{"groupId":9645165,"device":"81:83:60:74:F4:1D:19:96","sku":"H7134","spec":"","versionHard":"1.02.00","versionSoft":"1.00.17","deviceName":"Heater Max","deviceExt":{"deviceSettings":"{"wifiName":"Govee Access Point","address":"60:74:F4:1D:19:97","bleName":"GVH71341997","topic":"GD/9dd99d2bd81899effd18949870ef5822","wifiMac":"60:74:F4:1D:19:96","pactType":1,"pactCode":1,"wifiSoftVersion":"1.00.17","wifiHardVersion":"1.02.00","ic":0,"secretCode":"XlMSdzP/Ego=","dumpOnOff":1,"mcuSoftVersion":"1.00.07\u0000","mcuHardVersion":"1.00.06\u0000","boilWaterCompletedNotiOnOff":1,"completionNotiOnOff":1,"autoShutDownOnOff":1,"sku":"H7134","device":"81:83:60:74:F4:1D:19:96","deviceName":"Heater Max","versionHard":"1.02.00","versionSoft":"1.00.17","playState":false}","lastDeviceData":"{"online":false}","extResources":"{"skuUrl":"https://d1f2504ijhdyjw.cloudfront.net/sku-img/b985d8f3305eb98cb2ed3a24792bad53-add_list_type_device_7134.png\",\"headOnImg\":\"\",\"headOffImg\":\"\",\"ext\":\"\",\"ic\":0}"},"pactType":1,"pactCode":1,"share":0,"goodsType":179}}
I am a tester for this item and wonder if there is a way to implement support.

Hi @inventor7777
You can try updating to the beta version of the plugin
https://github.com/bwp91/homebridge-govee/wiki/Beta-Version
The device should be added to homebridge and look like a heater, controlling it may or not work as I have initially based this device on similar heater models.
Let me know!

Thank you! Everything works perfectly! Even the fireplace light can be controlled!

One last question-is it possible to add oscillation support too?

@bwp91 Is it possible to add oscillation support?

Actually, found that separating the accessories in the Home app enabled the oscillation control.

this should work even when the services are combined into one accessory tile 🤨

![IMG_9440](https://github.com/bwp91/homebridge-govee/assets/142270525/842
![IMG_9441](https://github.com/bwp91/homebridge-govee/assets/142270525/57b660c8-

850f-4588-8403-75606f21f21b)
![IMG_9443](https://github.c

om/bwp91/homebridge-govee/assets/142270525/63c83ad3-2255-4b8f-88bd-23e2ca669040)
8aa2f-7c08-4eae-a820-3aa4b42ff51b)
Attached are photos of what I see. The photo of the oscillation toggle is only available if you actually open the specific heater accessory (the one with the temperature and heat settings) If you haver the tiles united, the toggle doesn't appear unless you navigate through the accessory settings, to the grouped accessories. it doesn't appear on the main accessory page.

Some of the photos dint seem to load.


Refuse to use credits when Invoice total is negative

When an invoice total was negative. Cashier was trying to pay for it with available credits. This caused wrong invoices.

Good catch! Thanks!

You’re welcome! Great package, I really appreciate your effort!

Thanks @stefro !
I've released your fix just now in 1.12.1 (info)


Add manual cart handling flow

Ensure this is possible

[ ] Manual / auto configuration
[ ] Automatically create cart
[ ] Manually create cart
[ ] Get cart by id
[ ] Clear cart

Tests

[ ] Manually create cart
[ ] Cart is not created automatically when not configured
[ ] Cart is created automatically when configured
[ ] Get logged in user cart (my cart)
[ ] Get cart by id
[ ] Clear cart

DEV-296


[Diagnostics][NFCI] Introduce Structured fix-its

These are defined with macros like errors/warnings/notes, and make use of format strings and diagnostic arguments. The intent is to leverage diagnostic arguments in the future to disambiguate ambiguously spelled types.
Ported a few miscellaneous fix-its to the new system.
Some of the rationale for this change is explained here. This change alone isn't enough to fix e.g. SR-8668, but it's a first step towards being able to handle that kind of situation better.
If this seems like a good direction to take, the next steps I had in mind are roughly:

Move the formatting of fix-it arguments into the DiagnosticConsumers (Didn't want to do that as part of this PR and end up with a huge diff, it'll likely require moving DiagnosticArgument out of the DiagnosticEngine header)
Port more fix-its over to using format strings (This really only makes sense for the more complicated fix-its)
Maybe allow attaching an optional DeclContext to a diagnostic which can be used to determine if types need qualification when formatted

cc @jrose-apple (this builds on some of the argument formatting changes to diags from a few weeks back)
cc @xedin (this may eventually affect many fix-its produced during type checking)

Rebased and moved some of the examples over to CSDiagnostics now that those diags have been ported over 🎉

Hi @xedin / @jrose-apple , just wanted to bump this. Totally understand if this change is undesirable, but I have had some success leveraging it to fix type shadowing issues in fix-its by optionally attaching a DeclContext which can be used to determine how a fix-it’s arguments should be formatted (that would be a follow-up PR).

Hi @jrose-apple , I'd like to pick this back up if possible. Do you mind taking a look when you have time?

Thanks for bearing with me as I fix up these remaining issues!

Welcome to C++. :-)
@swift-ci Please smoke test


Calculate Length

https://github.com/xboi209/ExtraWork/blob/master/Client/Main.cpp#L62

The length will simply be the string length of the buffer until further research proves otherwise.
9934519608e3a2ab05f744b0447873a53f113d5e


IndexError: too many indices for array in CH-5 PCA Plot Code

I am having an issue in executing the for generating the graph of the PCA in Chapter-5 of the book Python Machine Learning. I tried debugging but I am not able to understand what the problem in the code is.

Kindly provide support for this issue.

There error means that X_train_pca has either 0 or 1 dimensions, instead of 2, or there is only 1 column instead of 2. You can double-check by executing print(X_train_pca.shape) before the for loop. The returned tuple should have at least 2 numbers, where the second number should be a 2.
This if you see that X_train_pca.shape is not (100, 2), then there is a typo somewhere in your preceding code.

Thank you for your quick response. There was a typo in the code.
This book is really good for understanding the Machine learning concepts.

glad to hear that you found and fixed it!


Backport Bitcoin Qt/Gui changes up to 0.14.x part 1

This is the first PR in a series of PRs to backport all Qt/Gui changes of Bitcoin up to 0.14.x.
The PRs were chosen by running:
git log --merges bitcoin/0.14 ^v0.12.2.x -- src/qt > backport-qt.txt

And then cherry picked into my local branch with:
git cherry-pick -m1 <hash-of-bitcoin-pr>

I tried to stick with Qt/Gui related PRs only, but sometimes it was required to pull in additional commits to resolve merge conflicts and compilation errors.
Also, my method of gathering the required PRs missed some PRs for some reason that I currently don't understand. Commits which could be found with a simple git log -- src/qt were missing when running the above command.
Later, when all the PRs that I catched and backported are merged into Dash, I will go through all Bitcoin PRs/commits again omitting the filtering from the above commands (with some custom scripting instead). I'll create additional PRs with these missing PRs/commits then. This may also include many non-Qt/Gui related PRs.
The next step will be to run a full comparison between Dash and Bitcoin and look for all kinds of suspicions differences between Dash and Bitcoin 0.14. This should reveal the last missing PRs to backport.
My long-term target is to get as close as possible to the Bitcoin code again, only omitting stuff that is not desired in Dash (like Segwit code).
EDIT: forgot to add list of included PRs. Working on it now.

I've just seen that Github was smart enough to reference all original PRs in the commit list. Is this enough for review or should I still add a list to the description?

Btw, even though I might have missed some PRs, all PRs required up until the progress overlay are done in my local branch. As far as I could see, everything works as expected. After this PR, there are 51 more commits which I'd split up in multiple PRs.
You wrote in Slack that you plan to do feature freeze this week. Would you consider waiting for these things to be merged in as well?

Would you consider waiting for these things to be merged in as well?

Can't promise anything. If it's more or less trivial we can merge them I guess. We can always revert them back before the release if anything is wrong (and merge fixed one in later versions e.g. <IP_ADDRESS>).

Well trivial if you look at the amount of changed lines...not really :D
But most changes are luckily local to the Qt/Gui part and well tested on Bitcoin as I'd assume. Also, the changes didn't interfere much with Dash specific code. The only thing that interfered much with Dash code was the fee handling in the Gui, that is something I left out for now as it would need some discussion.


GH-4459: Replace usage of Hamcrest with AssertJ

GitHub issue resolved: #4459
Briefly describe the changes proposed in this PR:
This removes almost all usage of Hamcrest from our codebase. There is a single custom Hamcrest matcher left, which is now encapsulated by an AssertJ Condition. I did an attempt to fix this also, but I could not make a custom AssertJ condition behave exactly like the current Hamcrest matcher - especially in the error description area.

PR Author Checklist (see the contributor guidelines for more details):

[x] my pull request is self-contained
[ ] I've added tests for the changes I made
[x] I've applied code formatting (you can use mvn process-resources to format from the command line)
[x] I've squashed my commits where necessary
[x] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

You're smashing out PRs faster than I can read your issue tickets. LGTM!

Thanks, @abrokenjester. What is required to get this merged?

You're smashing out PRs faster than I can read your issue tickets. LGTM!

Thanks, @abrokenjester. What is required to get this merged?

Me pushing a button. Or alternatively, we nominate you to become a full committer so you merge PRs yourself.
In the mean time I'll push that button though :)


Refactor VeraLight to inherit from Light, rather then VeraSwitch.

Caused by unconventional inheritance and https://github.com/balloob/home-assistant/pull/1157

Thanks for fixing this !


"Ipotești", "Baisa" and "Cătămărești" are listed in the drop-down menu

Description:
"Ipotești", "Baisa" and "Cătămărești" are listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Ipotești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Ipotești, Botoșani (Mihai Eminescu)".

Step 3
Type "Baisa" in the search bar.

Expected results
The location is listed in the drop-down menu as "Baisa, Botoșani (Mihai Eminescu)".

Step 5
Type "Cătămărești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Cătămărești, Botoșani (Mihai Eminescu)".


Considering alternative syntax for using value

Rather than introduce a second contextual keyword (i.e., value), I'm considering changing the syntax for the version that does not introduce a binding to using const (expression);.
This has several benefits:

No need for another contextual keyword (i.e., value).
Binding-less using could be performed inline in the same statement:

Before:using const x = f();
using value g();
using const y = h();

After:using const x = f(), (g()), y = h();

using const is already a subtly different grammar than const, as using const does not permit destructuring, so having a () syntax unique to that declaration shouldn't conflict with existing syntax. The treatment of , in a using const declaration is similar to that of a normal const (or let/var), so there is no parser ambiguity with respect to , expressions.

Why not put using next to the binding pattern instead of before the whole declaration?
This has the benefit that one can now disambiguate between taking ownership of values obtained from destructuring and the destructured object itself (what everyone in #13 couldn’t get to agree on): e.g. const { using x, using y } = expr; vs const using { x, y } = expr;. Taking ownership anonymously then becomes expressible as const using {} = expr;, no additional syntax required.

For now we're not allowing binding patterns with using do to the aforementioned complexities. Also, using applies to the entire statement, not individual declarations, otherwise you'd have to write const using x = ..., using y = .... It could be feasible to have {} = ... work for the exact token sequence { }, but there's too much of a chance for confusion since an actual binding pattern isn't allowed and I'd venture to guess that const {} = ... isn't a very common occurrence in JS code currently.

otherwise you'd have to write const using x = ..., using y = ...

that might be an improvement tho - it's much more granular and explicit. (ftr, it's already generally considered a bad style to declare more than one variable on the same keyword - ie, only ever one const per const, etc - so i'm not sure how often people will do that anyways)

"front and center" could be read to mean "near the identifier" over "near the const", but fair that it was already discussed.

using const x = f(), (g(a, b()), y = h(c(), d(e, f), g));
Can you spot the problem?

That would be a parse error. The syntax in #56 specifies that the "bindingless" using const declaration is AssignmentExpression, so , is not legal at the end of (g(a, b()),.

You could do ((g(a, b()), ..., but then you're pretty much opting-in to unreadable code.

Also, as @ljharb pointed out, combining is generally a poor style decision, so you will more often see this:
using const x = f();
using const (g(a, b()));
using const y = ...;

However, this doesn't necessarily mean we should forbid the convenience of chaining multiple declarations:
using const x = f(),
            (g(a, b())),
            y = ...;

That would be a parse error. The syntax in #56 specifies that the "bindingless" using const declaration is AssignmentExpression, so , is not legal at the end of (g(a, b()),.

Where can I see the formatted syntax in #56? It's just a jumble of patch files.

Where can I see the formatted syntax in #56? It's just a jumble of patch files.

https://tc39.es/proposal-explicit-resource-management/pr/56/


Add content

Added blog posts and about me.

👷 Deploy Preview for delicate-stardust-0dbbb2 processing.

Name
Link

🔨 Latest commit
1f816cacb7c34aa52f63e220a67e122a0089f357

🔍 Latest deploy log
https://app.netlify.com/sites/delicate-stardust-0dbbb2/deploys/65316216a22dc500089c71b4


aws-controller-eventbridge: unsetting scheduleExpression fails with wrong error

Describe the bug

Create a Rule with a scheduleExpression
Edit the Rule, removing the expression or setting it to ""
Fails with message: 'Immutable Spec fields have been modified: EventBusName'

Steps to reproduce
See above
Expected outcome
A concise description of what you expected to happen.
Environment

Kubernetes version
Using EKS (yes/no), if so version?
AWS service targeted (S3, RDS, etc.)

@a-hilaly please assign me

Fixed in https://github.com/aws-controllers-k8s/eventbridge-controller/releases/tag/v1.0.6


CRUD Sqlalchemy ORM, Pydantic and query on multiple table (like join table)

I have trouble on making DB CRUD with two or multiple table (join table) and this is first time i working with Pydantic and FastAPI.
Sorry if my question is bullshit :'(
I have two database model
Shifdetail.py
class ShiftDetail(Base):
    id = Column(String, primary_key=True, index=True)
    shift_id = Column(String, ForeignKey("shift.id"))
    owner_id = Column(String, ForeignKey("user.id"))
    shift_date = Column(Date, nullable=False)
    create_time = Column(DateTime, nullable=False)
    shifts = relationship("Shift", back_populates="shiftdetails")
    owner = relationship("User", back_populates="shiftdetails")

User.py
class User(Base):
    id = Column(String, primary_key=True, index=True)
    email = Column(String, unique=True, index=True)
    hashed_password = Column(String)
    shiftdetails = relationship("ShiftDetail", back_populates="owner")

EXPECTED data return look like
[
  {
    "shift_id": "5240b998-7919-11ea-8f22-001a7dda7111",
    "owner_id": 56277c6c-7918-11ea-850b-001a7dda7111,
    "shift_date": "2020-04-08",
    "id": "87845423-795f-11ea-a51f-001a7dda7111",
    "create_time": "2020-04-08T13:09:39.067190",
    "owner_email"<EMAIL_ADDRESS>  }
]

And have ShiftDetail schema look like
class ShiftDetailBase(BaseModel):
    shift_id: Optional[str] = True
    owner_id: Optional[str] = True
    shift_date: Optional[date] = True

class ShiftDetailBaseInDB(ShiftDetailBase):
    id: str

    class Config:
        orm_mode = True

# Additional properties to return via API
class ShiftDetail(ShiftDetailBaseInDB):
    create_time: datetime
    owner_email: str

So how can write CRUD function to return datamodel ShiftDetail (with data get from joining two table ShiftDetail and User)
Because in CRUD template, i saw db_session query from self.model only :'(
def get_multi_by_owner(
        self, db_session: Session, *, owner_id: str, skip=0, limit=100
    ) -> List[ShiftDetail]:
        return (
            db_session.query(self.model)
            .filter(ShiftDetail.owner_id == owner_id)
            .offset(skip)
            .limit(limit)
            .all()
        )

And of course, i got error (ShiftDetail model dont have owner_email field like ShiftDetail schema expected
pydantic.error_wrappers.ValidationError: 1 validation error for ShiftDetail
response -> 0 -> owner_email

You can't simply add a user_email field to that schema and expect it to be populated. Rather,
you need to also create a User schema. Otherwise Pydantic won't now how to connect the two models.
class User(BaseModel):
    class Config:
        orm_mode = True

    id: str
    email: str
    hashed_password: str

class ShiftDetailBase(BaseModel)
    # add field for the owner (reference User model)
    # I believe you can remove the owner_id field
    owner: User

The response would then look like:
[
  {
    "shift_id": "5240b998-7919-11ea-8f22-001a7dda7111",
    "owner_id": 56277c6c-7918-11ea-850b-001a7dda7111,
    "shift_date": "2020-04-08",
    "id": "87845423-795f-11ea-a51f-001a7dda7111",
    "create_time": "2020-04-08T13:09:39.067190",
    "owner": {
       "id": "..",
       "email"<EMAIL_ADDRESS>       "hashed_password": "...",
    }
  }
]

If you want user_email to be returned from that schema you would need to alter the design of your DB or I believe it might be possible with a custom Pydantic root validator - but that's making things more complex and breaks from the ORM model.

@paul121 . Sure, thank for your guide about schema. But i very confuse about making CRUD to return  data that i need.
I have some code to return list of ShiftDetail (not include Owner)
def get_multi_by_owner(
        self, db_session: Session, *, owner_id: str, skip=0, limit=100
    ) -> List[ShiftDetail]:
        return (
            db_session.query(self.model)
            .filter(ShiftDetail.owner_id == owner_id)
            .offset(skip)
            .limit(limit)
            .all()
        )

def get_by_id(self, db_session: Session, *, id: str) -> Optional[User]:
        return db_session.query(User).filter(User.id == id).first()

And i dont know to to make data include Owner data ...

Can we think about the query in the reverse direction? This should return only the ShiftDetails that belong to one user. (not tested) ... eg:
def get_shifts_by_owner_id(
        self, db_session: Session, *, owner_id: str, skip=0, limit=100
    ) -> List[ShiftDetail]:
        return (
            db_session.query(model.User.shiftdetails). # query on the User model, select only the shift details
            .filter(model.User.id == owner_id)
            .offset(skip)
            .limit(limit)
            .all()
        )

Just query on one table only and model User dont have shiftdetails. It doesn't work :'(

hmm, sorry that didn't work @tatdatpham!  ☹ I'm not sure what might be the issue. This likely isn't an issue with FastAPI, though

Thanks for the help here @paul121 ! :clap: :cake:
@tatdatpham First make sure that your SQLAlchemy query is returning the data that you want. Run that code outside of your FastAPI app and make sure it works.
If you need to understand better how to use SQLAlchemy, check the tutorial: https://docs.sqlalchemy.org/en/13/orm/tutorial.html
Then, after you have your data, you have to convert it to have the shape of the model that you want to return. So, probably iterating in each of the rows in the result and putting all that in dicts, or something similar.
Then with that you can finally try to put it in a Pydantic model and see where the error is.
But first you have to debug the initial part and make sure that you are getting the data that you need, and then that you are converting it to the shape that you need.

As tiangolo said, verify you are returning the data you want (you should be).  Your query should already be returning the data you need via SQLAlchemy here:
def get_multi_by_owner(
        self, db_session: Session, *, owner_id: str, skip=0, limit=100
    ) -> List[ShiftDetail]:
        return (
            db_session.query(self.model)
            .filter(ShiftDetail.owner_id == owner_id)
            .offset(skip)
            .limit(limit)
            .all()
        )

then add to your schema like so:
# Additional properties to return via API
class ShiftDetail(ShiftDetailBaseInDB):
    create_time: datetime
    owner: User

    class Config:
        orm_mode = True

and then be sure to import the User Schema from where you defined that (.user for example).
This will return the data as shown in paul121's comments:
[
  {
    "shift_id": "5240b998-7919-11ea-8f22-001a7dda7111",
    "owner_id": 56277c6c-7918-11ea-850b-001a7dda7111,
    "shift_date": "2020-04-08",
    "id": "87845423-795f-11ea-a51f-001a7dda7111",
    "create_time": "2020-04-08T13:09:39.067190",
    "owner": {
       "id": "..",
       "email"<EMAIL_ADDRESS>       "hashed_password": "...",
    }
  }
]

It will be nested, and not inline like you expected - I didn't like how this returns but just means dealing with it differently when consuming.
To improve and only provide what you need, create an additional schema def in the users_schema.py (or what you have named it...) such as:
class UserShared(BaseModel):
    email: str

    class Config:
        orm_mode = True

import that in your Shiftdetail.py and use it in the schema in place of "User" :
# Additional properties to return via API
class ShiftDetail(ShiftDetailBaseInDB):
    create_time: datetime
    owner: UserShared

    class Config:
        orm_mode = True

Then it will just return the email, and not all the user fields.

How to use Sqlalchemy session with databases

As tiangolo said, verify you are returning the data you want (you should be). Your query should already be returning the data you need via SQLAlchemy here:
def get_multi_by_owner(
        self, db_session: Session, *, owner_id: str, skip=0, limit=100
    ) -> List[ShiftDetail]:
        return (
            db_session.query(self.model)
            .filter(ShiftDetail.owner_id == owner_id)
            .offset(skip)
            .limit(limit)
            .all()
        )

then add to your schema like so:
# Additional properties to return via API
class ShiftDetail(ShiftDetailBaseInDB):
    create_time: datetime
    owner: User

    class Config:
        orm_mode = True

and then be sure to import the User Schema from where you defined that (.user for example).
This will return the data as shown in paul121's comments:
[
  {
    "shift_id": "5240b998-7919-11ea-8f22-001a7dda7111",
    "owner_id": 56277c6c-7918-11ea-850b-001a7dda7111,
    "shift_date": "2020-04-08",
    "id": "87845423-795f-11ea-a51f-001a7dda7111",
    "create_time": "2020-04-08T13:09:39.067190",
    "owner": {
       "id": "..",
       "email"<EMAIL_ADDRESS>       "hashed_password": "...",
    }
  }
]

It will be nested, and not inline like you expected - I didn't like how this returns but just means dealing with it differently when consuming.
To improve and only provide what you need, create an additional schema def in the users_schema.py (or what you have named it...) such as:
class UserShared(BaseModel):
    email: str

    class Config:
        orm_mode = True

import that in your Shiftdetail.py and use it in the schema in place of "User" :
# Additional properties to return via API
class ShiftDetail(ShiftDetailBaseInDB):
    create_time: datetime
    owner: UserShared

    class Config:
        orm_mode = True

Then it will just return the email, and not all the user fields.

Weird... I've done exactly what you say here for my model, but I'm still getting field required (type=value_error.missing) errors
class InputTemplateShared(InputTemplateBase):
    name: str

    class Config:
        orm_mode = True```

```# Shared Properties to return via API
class MetricShared(MetricBase):
    name: str

    class Config:
        orm_mode: True```

Both imported into input_template_base.py schema file where I have:

Properties shared by models stored in DB
class InputTemplateDetailInDBBase(InputTemplateDetailBase):
template_id: Optional[int] = None
metric_id: Optional[int] = None
class Config:
    orm_mode = True

Properties to return to client
class InputTemplateDetail(InputTemplateDetailInDBBase):
t_name: InputTemplateShared
m_name: MetricShared
class Config:
    orm_mode = True```

Have checked my db query and it's returning the correct orm object
Any ideas?

@Cozmo25 I'm not sure I'm following correctly, but I think that by having something like:
# Properties to return to client
class InputTemplateDetail(InputTemplateDetailInDBBase):
    template_name: InputTemplateShared

    class Config:
        orm_mode = True

And then, before that:
class InputTemplateShared(InputTemplateBase):
    name: str

    class Config:
        orm_mode = True

It would expect something like:
{
  "template_name": {
    "name": "anode_graphite"
  }
}

Notice the nested dict for template_name.
Could that be the problem?

@tiangolo Thank you for the response much appreciated.
It’s very likely the problem, I’m just not sure how to create the structure I need (not nested instead of nested) where I have a join between tables.

@Cozmo25 I think that instead of:
class InputTemplateDetail(InputTemplateDetailInDBBase):
    template_name: InputTemplateShared

    class Config:
        orm_mode = True

something like this could work:
class InputTemplateDetail(InputTemplateDetailInDBBase):
    template_name: str

    class Config:
        orm_mode = True

Thanks for this @tiangolo.
I tried that approach but it still gives me pydantic errors (field missing).
When I get the InputTemplateDetail object back from the DB I need to access template name via: InputTemplateDetail.templates.name - does that make any difference to your answer?
How do I access that property here?
class InputTemplateDetail(InputTemplateDetailInDBBase):
    template_name: str

    class Config:
        orm_mode = True

@wedwardbeck Your response works but it returns a nested response and not inline.... as in
{
  "owner": {
    "email_address"<EMAIL_ADDRESS>  }
}

Anyway it can only return
"email_address"<EMAIL_ADDRESS>
Thanks

@AthreyVinay hi! How did you manage to get it inline "email_address"<EMAIL_ADDRESS>but not nested: ```
{
"owner": {
"email_address"<EMAIL_ADDRESS>}
}


TODOs

[ ] Style the prescrolly text better
[ ] Style the headline better

The map with no dots

Label CD9

Remove the sharp edge on the border here

Make the border a little darker

The transparent dots thing

Label the one hospital in CB9

Charts

Medical need chart

300 for the artboards


Code skeleton and comments for Intersolve Visa Re-implementation

Describe your changes
Brief description of your changes - not in-depth because the bulk of the description should be in the task on DevOps.
Checklist before requesting a review

[ ] I have performed a self-review of my code
[ ] I have added tests wherever relevant
[ ] I have made sure that all automated checks pass before requesting a review
[ ] I do not need any deviation from our PR guidelines

@PeterSmallenbroek I suspect we can just hit the "Squash and merge" button: it is enabled, an the only option available, even though "All checks have failed".


Build Search Application [The scale settings of account deployment is deprecated since API version '2023-05-01', please use 'sku' instead.]

While doing the assignment, I encountered error. What version/sku should i use?
az cognitiveservices account deployment create \
    --name semantic-video-openai \
    --resource-group  semantic-video-search \
    --deployment-name text-embedding-ada-002 \
    --model-name text-embedding-ada-002 \
    --model-version "2"  \
    --model-format OpenAI \
    --scale-settings-scale-type "Standard"

The scale settings of account deployment is deprecated since API version '2023-05-01', please use 'sku' instead.

I think with API Version 2023-05-01 you have to use sku,
https://learn.microsoft.com/en-us/rest/api/aiservices/accountmanagement/deployments/create-or-update?view=rest-aiservices-accountmanagement-2023-05-01&tabs=HTTP
The documentation needs to be fixed here


Model 'before_save' callback is not exist

I found in the documentation that I can bind callback to before_save on a model, but it is obviously not there, I checked the Model::save() and can't find the callback binding there, to do so I need to bind the callback to both before_create and before_update.
I suggest adding the before_save and after_save as it support more generic model manipulation feature

That's already handled within the callback class:
https://github.com/jpfuentes2/php-activerecord/blob/master/lib/CallBack.php#L176


Upgrade nominatim to v2.5.1

While the monaco map worked perfectly with 2.5.0,
the German map didn't work with 2.5.0 (The queries "crashed").
Upgrading to 2.5.1 solved these crashes.
Tests didn't reveal any side effects

@all-contributors please add @thomasnordquist for infrastructure and code.


Administering your slash cluster

This change is

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


json imported for newer python versions, simplejson if exception

simple json is depreciated in newer version of python beyond 2.5 and uses json instead. Code is modified to import json for newer version of python while simplejson is used for older verisions

Hi, another PR has been merged and we'll now stick to stdlib json. but thanks a lot for this pull request anyway!


New library: quadstore

Hello!
I'm the maintainer of quadstore (npm, github), an embedded graph database for JS runtimes that implements the Store, Source and Sink RDF/JS interfaces, backed by LevelDB and compatible backends.
I was wondering if you would consider adding quadstore to the set of tested libraries on https://rdfjs.dev ? And, if so, whether there would be something I could help you with?
I mostly ask because I'd be very interested in hearing about your experience developing against it, considering how many different points of comparison you have accrued while reviewing all of these libraries. In addition to that, having quadstore listed on https://rdfjs.dev would also make quadstore itself more visible, which always helps.
Quadstore has ties with two libraries that you've already reviewed:

it is accompanied by quadstore-comunica (npm, github), a custom configuration and distribution of Comunica specifically optimized for bundle size and ease of integration.

it is used within @gsvarovsky 's m-ld as the local storage backend

Feel free to close this right away if you're not interested in reviewing quadstore specifically or if you're not planning on expanding the set of tested libraries. In any case, thanks for https://rdfjs.dev - it's a brilliant website!

Apologies for late response, I haven't had much surplus of energy in a couple of months, and I've been ignoring GH notifications for a while.
But to your question: Yes, I would very much be interested in including quadstore into the list of libraries on rdfjs.dev. I'll do a bit of research into it and get back to you on how it would look, but on the top of my head I imagine it should support a local demo and a Solid demo using N3.js to parse and serialize the turtle (I did something similar in the local demo in the guide on Inrupt's JavaScript client libraries). Let me know if you recommend other tools to do that part.
I'll probably also update the guides on the libraries you mentioned, so that the readers will be aware of the connections.
Thank you so much for creating this issue, and thank you also for your kind words on rdfjs.dev ❤ I hope to be able to develop it into an even more useful resource for Linked Data and JavaScript developers 😸

Hello @megoth ! No apologies needed, I totally understand that. I myself go through periods in which I mute all notifications - it's good for one's mental health.
Thank you for considering quadstore! For an in-browser local demo you could use the browser-level backend (persistent via IndexedDB) or the memory-level backend.
I'm not sure about the Solid demo as quadstore's scope is relatively narrow compared to Solid's and it might make more sense to demo it individually. But, I defer to you! :)
Let me know if I can help with anything.

@jacoscaz I've created a branch for the new quadstore content: https://github.com/megoth/rdfjs/tree/library/quadstore
I've created three functional demos: Local, SPARQL, and Solid. I'm using the N3 parser and serializer to handle the Turtle.
I'm planning to write the texts soon, but wanted to share the progress with you in case you have feedback on the current work 😸

Hello @megoth ! Thank you for taking a look at quadstore! I don't have time to do an in-depth review this week but can surely do so early next week. In the meantime, however, I've had a cursory look and one thing that stood out to me is the following pattern:
await Promise.all(quads.map(async ({subject, predicate, object, graph}) => {
  await store.put(df.quad(subject, predicate, object, graph));
}));

Two things:

The quads returned by N3 should already implement the relevant RDF/JS interfaces, meaning that you should be able to pass them to quadstore without deconstructing them into their individual terms and then reconstructing into a new object: await Promise.all(quads.map(quad => store.put(quad)));.
Quadstore offers dedicated methods for multi-quad operations: await store.multiPut(quads);. This is significantly faster than putting quads one by one while also being transactionally (read: atomically) committed to the underlying LevelDB-like backend (if supported).

Another thing:
Given that you depend on N3 already, you don't need to also depend on rdf-data-factory for a DataFactory implementation. You can use N3's own implementation as I've done in https://github.com/jacoscaz/quadstore-perf/blob/a9136c865629fdb712eca25a55ebfbdae4ae57e2/src/loadfile.ts#L25-L28 .

Last thing for today:
In addition to the .match() method from the low-level RDF/JS interfaces, quadstore also gives you the .get() commodity method that resolves to an array of quads rather than to the underlying stream of quads. Which one to use really depends on which aspects you'd like to highlight in the demo.

Had a better look at the code and noticed that you're using the memory-level backend, which stores data in-memory and doesn't deliver persistence across page reloads, but you also add persistence via the useLocalStorage hook such as in https://github.com/megoth/rdfjs/compare/main...library/quadstore#diff-fcc653809c8fce1be045724efe84ad82f756b5b6c57ad7d45d8193defd908d55R22 and https://github.com/megoth/rdfjs/compare/main...library/quadstore#diff-fcc653809c8fce1be045724efe84ad82f756b5b6c57ad7d45d8193defd908d55R54 .
This is somewhat redundant if you consider the browser-level backend, which delivers persistence via IndexedDB. I mention this backend in a dedicated section of the README.md file but, looking back at it from your perspective, having that section placed at the bottom of the document with no mention of such backend in storage backends is really silly and I will rectify that.
That said, the main point here is that using the browser-level backend would further simplify your code by not having to depend on the useLocalStorage hook and basically dumping the entire database on every onSubmit() invocation.

I'm working on an update where I'll adress your feedback. But just wanted to thank you for everything that you've pointed out till now ^_^

I've integrated all of your feedback into a couple of commits, hopefully it looks better now ^_^
I'll start writing the guides for the demos, and expand upon the text in general.

@megoth looking great! The only suggestion I have left is more of a nitpick: technically speaking, browser-level persists to IndexedDB rather than localStorage (at least right now [1]). Practically speaking it's still storage that is local to the page but it's not the same thing. But this is just a nitpick, really; Well done!
Any feedback for quadstore on your end?
[1]: I hope one day we'll get a WASM build of LevelDB itself using OPFS.

@megoth looking great! The only suggestion I have left is more of a nitpick: technically speaking, browser-level persists to IndexedDB rather than localStorage (at least right now [1]). Practically speaking it's still storage that is local to the page but it's not the same thing. But this is just a nitpick, really; Well done!

Thank you! I've updated the text to reflect the use of IndexedDB, and it's updated on https://rdfjs-git-library-quadstore-megoth.vercel.app/quadstore.
There's a bug with my local demos, but once I've fixed them I'll merge Quadstore into the main branch ^_^

Any feedback for quadstore on your end?

Quadstore seems to do what it does very well. I would've appreciated methods to parse and serialize with it directly, but using N3 (or other RDF/JS-compliant libs) is a good solution as well. Maybe it would be good to point this out for developers looking for ways to do that while using your library? (I might put up a resource for this later on, I'm not aware of any explicit listing of this, except what you can find through rdf.js.org.)

[1]: I hope one day we'll get a WASM build of LevelDB itself using OPFS.

Cool! Hope to see that happen 😸

Maybe it would be good to point this out for developers looking for ways to do that while using your library?

Definitely! Tracking this at https://github.com/jacoscaz/quadstore/issues/169 .

Thank you @megoth for considering quadstore and working on this!


Gracefully handle rules containing invalid search conditions

Currently sigma-go panics when given a rule that looks like this:
detection:
    someCondition:
        foo: bar
    condition: nonExistentCondition

This panic happens here: https://github.com/bradleyjkemp/sigma-go/blob/fe36bd7f61b78a9aafb7c7e705b1ba2a196da313/evaluator/evaluate_search.go#L41
Instead this function should be extended so that it can return an error back to the caller

I hit this on a sigma project rule with the following definition:
detection:
    selection:
        Image|endswith: '\3proxy.exe'
    selection_pe:
        Description: '3proxy - tiny proxy server'
    selection_params: # param combos seen in the wild
        CommandLine|contains: '.exe -i<IP_ADDRESS> -p'
    condition: 1 of selection

Error was:
panic: unhandled node type sigma.OneOfIdentifier

goroutine 9 [running]:
github.com/bradleyjkemp/sigma-go/evaluator.RuleEvaluator.evaluateSearchExpression({{{0x14000639e70, 0xc}, {{0x140008de4f0, 0x10}, {0x140008de5a0, 0x7}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...}, ...}, ...)
	/Users/jness/v/onprem/pkg/mod/github.com/bradleyjkemp/sigma-go@v0.4.2/evaluator/evaluate_search.go:83 +0x314
github.com/bradleyjkemp/sigma-go/evaluator.RuleEvaluator.Matches({{{0x14000639e70, 0xc}, {{0x140008de4f0, 0x10}, {0x140008de5a0, 0x7}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...}, ...}, ...)
	/Users/jness/v/onprem/pkg/mod/github.com/bradleyjkemp/sigma-go@v0.4.2/evaluator/evaluate.go:109 +0x2e8

I'll file an issue on the Sigma project rule:  https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_susp_3proxy_usage.yml


Flaky CI tests should pass consistently

Several CI tests are regularly failing on PRs. They should be fixed so good PR's aren't left hanging.
[ ] RNTesterLoadAllPages:JSResponderHandlerExample
ex: https://dev.azure.com/ms/react-native/_build/results?buildId=89666&view=logs&j=628dfcdf-afa5-5702-e4da-dfa310a93062&t=65c699ef-104f-5f6e-4efa-350cb1662389
[ ] RNTesterLoadAllPages: ScrollViewExample

Totally believe you on that. The run results you linked have timed out (sorry it took awhile to get to this issue). We need to figure out which tests are being flakey (is it always these 2 or is it all tests?) and take the right action, so new reports are valuable. If you hit this again please open an issue. Currently unactionable without the logs :(


S32-io/IO-Socket-INET-UNIX.t is busted

The test creates a relative file in the directory to work with and this has costed us some hours (and money for me) lost to release, which is LTA.
The failure looks this way:
># Socket path '/home/koto/Devel/perl6-dev/R/rakudo/tools/releasable/temp/rakudo-test/rakudo-2021.02/t/spec/S32-io/test.sock' is too long (max length supported by this platform is 107 characters)
Why not open a file in $*TMP instead to prevent ^?

Was that the only one failing, or were there more like this?

Thanks for replying quickly!
This is the only one failing persistently and confusingly, I think, others are fine.
There are also https://github.com/Raku/roast/blob/master/S17-procasync/kill.t and https://github.com/Raku/roast/blob/master/MISC/bug-coverage-stress-6.d.t that fail consistently under heavy load (they are flappers, really) which I would like to do something with, but I remember last time it was discussed people talking about impossibility to really fix it anyhow.

Sorry for the late response. This is a huge oversight on my part, and should be a relative path; $*TMPDIR risks being too long if a custom directory for it is set in the environment.


add fallback for expected legacy default query revision functionality

add fallback for expected legacy default query revision functionality

Related to #1467.

@felixbuenemann updated PR based on comments.

Great, let's see what @leehambley thinks.

I'll see if I can get a new release out soon.

Thanks, I can confirm that this fixes the regression reported in #1467.

I can't find v2.15.7 (introduced by this changeset) on RubyGems: https://rubygems.org/gems/capistrano/versions
Does this version still need to be released?

There is no v2.15.7!

My log shows we're overdue a release, but I don't have time to test one properly - maybe you can try master and report back:
*   5213ac6 - (HEAD -> legacy-v2, origin/legacy-v2) Merge pull request #1503 from bazzargh/patch-2 (5 weeks ago) <Lee Hambley>
|\
| * 180141c - fix rescue for asset_manifest_prefix (5 weeks ago) <bazzargh>
|/
*   07fefa9 - Merge pull request #1493 from kylerippey/changelog-typo-fix (7 weeks ago) <Lee Hambley>
|\
| * 1a6d865 - Fixed a minor typo in the CHANGELOG (7 weeks ago) <Kyle Rippey>
|/
*   34fe39c - Merge pull request #1481 from vsco/fix-svn-auth (3 months ago) <Lee Hambley>
|\
| * 6964046 - Fixes Subversion authentication arguments. (3 months ago) <Vlad Losev>
|/
*   b856989 - Merge pull request #1470 from activenetwork/legacy-v2 (3 months ago) <Lee Hambley>
|\
| * ffe4a23 - add fallback for expected legacy default query revision functionality (3 months ago) <scottvrosenthal>
|/
* dcd3257 - (tag: v2.15.6) Preparing Release v2.15.6 (5 months ago) <Lee Hambley>
* 265f3bf - fixed asset deploy problem for sprockets versions > 3.0 (5 months ago) <Stefan Kaes>

but I don't have time to test one properly - maybe you can try master and report back:

@leehambley what testing is required for this project before tagging a new release? Is running the test suite sufficient or is there manual testing as well?

I don't have any 2.x projects myself anymore, so if you are actively using the HEAD of the legacy-v2 branch, the would-be target for 2.15.7, and can report that it's basically normal for you, that'd be one more (than the current 0) vote in favour of tagging and releasing it.
Releasing software that I haven't used in two years makes me nervous though. You really should upgrade to v3!

I have a couple of projects that still use capistrano 2.x that I could test against the legacy-v2 branch. I think a release to fix the regressions in 2.15.6 would be a good idea.

I think a release to fix the regressions in 2.15.6 would be a good idea.

This is mainly why I'm interested in 2.15.7. I'll try using HEAD of legacy-v2 on a couple of our legacy apps that still use v2.x and will report back.

I've checked two projects that were locked to 2.15.5 due to the issues in 2.15.6, one using rails 3.2 and the other using rails 4.2 and they both deployed fine using 2.15.7 from the legacy-v2 branch.

Thanks! I'm away on a workshop with a client. But I'll try and tag the
release today (late).
On 5 Nov 2015 7:45 p.m., "Felix Bünemann"<EMAIL_ADDRESS>wrote:

I've checked two projects that were locked to 2.15.5 due to the issues in
2.15.6, one using rails 3.2 and the other using rails 4.2 and they both
deployed fine using 2.15.7 from the legacy-v2 branch.
—
Reply to this email directly or view it on GitHub
https://github.com/capistrano/capistrano/pull/1470#issuecomment-154149683
.

Done (see #1526)

:tada:


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1671 ms

Resolved: Bofrost.at performance has improved in 4af80d9 after 25 minutes.


HOCS-5027: add dependabot GitHub Action update

Add the support for dependabot to handle the updating of GitHub Action
versions within the workflows.

Changed skip release to patch to trigger a build


[Bug] Issue translating rust unit () in some contexts

Describe the bug
When trying to use rust "unit", (), in some contexts, we get translation errors in the dart code. For instance the following fails to translate:
pub enum CommandResult {
    Ok(()),
    Err(String),
}

The offending dart code generated is the as void cast in the following generated code (unmodified):
@pragma('vm:prefer-inline') @override $Res call({Object? field0 = null,}) {
  return _then(_$CommandResult_Ok(
null == field0 ? _value.field0 : field0 // ignore: cast_nullable_to_non_nullable
as void,
  ));
}

Codegen logs with RUST_LOG=debug environment variable
Full version was too long to submit, so this is a shortened version.
 This usually means that this type was incompatible or not found.
2023/12/21 14:55:24 [WARN] Can't find Dart_Handle. This usually means that this type was incompatible or not found.
2023/12/21 14:55:24 [WARN] Can't find unit. This usually means that this type was incompatible or not found.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [WARN] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
2023/12/21 14:55:24 [DEBUG] execute ffigen c_path=/tmp/.tmpfcpuQe.h dart_path=/tmp/.tmpu4QuBF llvm_path=["/opt/homebrew/opt/llvm", "/usr/local/opt/llvm", "/usr/lib/llvm-9", "/usr/lib/llvm-10", "/usr/lib/llvm-11", "/usr/lib/llvm-12", "/usr/lib/llvm-13", "/usr/lib/llvm-14", "/usr/lib/", "/usr/lib64/", "C:/Program Files/llvm", "C:/msys64/mingw64"]
2023/12/21 14:55:24 [DEBUG] ffigen config:
        output: '/tmp/.tmpu4QuBF'
        name: 'NativeWire'
        description: 'generated by flutter_rust_bridge'
        headers:
          entry-points:
            - '/tmp/.tmpfcpuQe.h'
          include-directives:
            - '/tmp/.tmpfcpuQe.h'
        comments: false
        preamble: |
          // ignore_for_file: camel_case_types, non_constant_identifier_names, avoid_positional_boolean_parameters, annotate_overrides, constant_identifier_names

        llvm-path:
           - '/opt/homebrew/opt/llvm'
           - '/usr/local/opt/llvm'
           - '/usr/lib/llvm-9'
           - '/usr/lib/llvm-10'
           - '/usr/lib/llvm-11'
           - '/usr/lib/llvm-12'
           - '/usr/lib/llvm-13'
           - '/usr/lib/llvm-14'
           - '/usr/lib/'
           - '/usr/lib64/'
           - 'C:/Program Files/llvm'
           - 'C:/msys64/mingw64'

2023/12/21 14:55:24 [DEBUG] ffigen config_file: NamedTempFile("/tmp/.tmpAcpNiH")
2023/12/21 14:55:24 [DEBUG] Guessing toolchain the runner is run into
2023/12/21 14:55:24 [DEBUG] execute command: bin=sh args="-c \"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpAcpNiH\"" current_dir=Some("/home/devin/Desktop/phone-iot-2") cmd=cd "/home/devin/Desktop/phone-iot-2" && "sh" "-c" "\"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpAcpNiH\""
2023/12/21 14:55:26 [DEBUG] command=cd "/home/devin/Desktop/phone-iot-2" && "sh" "-c" "\"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpAcpNiH\"" stdout=Running in Directory: '/home/devin/Desktop/phone-iot-2'
Input Headers: [/tmp/.tmpfcpuQe.h]
[SEVERE] : Header /tmp/.tmpfcpuQe.h: Total errors/warnings: 1.
[SEVERE] :     /tmp/.tmpfcpuQe.h:137:3: error: unknown type name 'unit' [Semantic Issue]
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: Generated declaration '_Dart_Handle' start's with '_' and therefore will be private.
Finished, Bindings generated in /tmp/.tmpu4QuBF
 stderr=
2023/12/21 14:55:26 [WARN] The `ffigen` command emitted a SEVERE error. Maybe there is a problem? command=cd "/home/devin/Desktop/phone-iot-2" && "sh" "-c" "\"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"/tmp/.tmpAcpNiH\"" output=
Running in Directory: '/home/devin/Desktop/phone-iot-2'
Input Headers: [/tmp/.tmpfcpuQe.h]
[SEVERE] : Header /tmp/.tmpfcpuQe.h: Total errors/warnings: 1.
[SEVERE] :     /tmp/.tmpfcpuQe.h:137:3: error: unknown type name 'unit' [Semantic Issue]
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: _Dart_Handle, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct _Dart_Handle, usr: c:@S@_Dart_Handle
[WARNING]: No definition found for declaration - (Cursor) spelling: DartCObject, kind: 2, kindSpelling: StructDecl, type: 105, typeSpelling: struct DartCObject, usr: c:@S@DartCObject
[WARNING]: Generated declaration '_Dart_Handle' start's with '_' and therefore will be private.
Finished, Bindings generated in /tmp/.tmpu4QuBF

the path is "/home/devin/Desktop/phone-iot-2/ios/Runner/bridge_generated.h"
the path is "macos/Runner/bridge_generated.h"
2023/12/21 14:55:26 [DEBUG] distinct_input_types=[Delegate(String), Record(IrTypeRecord { inner: IrTypeStructRef { name: "__record__String_dart_value", freezed: false, empty: false, is_exception: false }, values: [Delegate(String), EnumRef(IrTypeEnumRef { name: "DartValue", is_exception: false })] }), Record(IrTypeRecord { inner: IrTypeStructRef { name: "__record__f64_f64", freezed: false, empty: false, is_exception: false }, values: [Primitive(F64), Primitive(F64)] }), Primitive(Bool), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: Record(IrTypeRecord { inner: IrTypeStructRef { name: "__record__f64_f64", freezed: false, empty: false, is_exception: false }, values: [Primitive(F64), Primitive(F64)] }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: EnumRef(IrTypeEnumRef { name: "CommandResult", is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "DartCommandKey", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "DartRequestKey", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: EnumRef(IrTypeEnumRef { name: "DartValue", is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: EnumRef(IrTypeEnumRef { name: "RequestResult", is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: EnumRef(IrTypeEnumRef { name: "RustCommand", is_exception: false }) }), EnumRef(IrTypeEnumRef { name: "CommandResult", is_exception: false }), StructRef(IrTypeStructRef { name: "DartCommandKey", freezed: false, empty: false, is_exception: false }), StructRef(IrTypeStructRef { name: "DartRequestKey", freezed: false, empty: false, is_exception: false }), EnumRef(IrTypeEnumRef { name: "DartValue", is_exception: false }), Primitive(F64), Primitive(I32), GeneralList(IrTypeGeneralList { inner: Record(IrTypeRecord { inner: IrTypeStructRef { name: "__record__String_dart_value", freezed: false, empty: false, is_exception: false }, values: [Delegate(String), EnumRef(IrTypeEnumRef { name: "DartValue", is_exception: false })] }) }), GeneralList(IrTypeGeneralList { inner: EnumRef(IrTypeEnumRef { name: "DartValue", is_exception: false }) }), Optional(IrTypeOptional { inner: Boxed(IrTypeBoxed { exist_in_real_api: false, inner: Record(IrTypeRecord { inner: IrTypeStructRef { name: "__record__f64_f64", freezed: false, empty: false, is_exception: false }, values: [Primitive(F64), Primitive(F64)] }) }) }), EnumRef(IrTypeEnumRef { name: "RequestResult", is_exception: false }), EnumRef(IrTypeEnumRef { name: "RustCommand", is_exception: false }), Primitive(U8), PrimitiveList(IrTypePrimitiveList { primitive: U8 }), Primitive(Unit), Primitive(Usize)]
2023/12/21 14:55:26 [DEBUG] distinct_output_types=[Delegate(String), Primitive(Bool), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "ButtonInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "DartCommandKey", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "DartRequestKey", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: Primitive(F64) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "ImageDisplayInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "JoystickInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "LabelInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "RadioButtonInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "SensorUpdateInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "SliderInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "TextFieldInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "ToggleInfo", freezed: false, empty: false, is_exception: false }) }), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "TouchpadInfo", freezed: false, empty: false, is_exception: false }) }), StructRef(IrTypeStructRef { name: "ButtonInfo", freezed: false, empty: false, is_exception: false }), Delegate(PrimitiveEnum { ir: IrTypeEnumRef { name: "ButtonStyleInfo", is_exception: false }, repr: I32 }), StructRef(IrTypeStructRef { name: "ColorInfo", freezed: false, empty: false, is_exception: false }), EnumRef(IrTypeEnumRef { name: "DartCommand", is_exception: false }), StructRef(IrTypeStructRef { name: "DartCommandKey", freezed: false, empty: false, is_exception: false }), StructRef(IrTypeStructRef { name: "DartRequestKey", freezed: false, empty: false, is_exception: false }), Primitive(F64), Primitive(I32), StructRef(IrTypeStructRef { name: "ImageDisplayInfo", freezed: false, empty: false, is_exception: false }), Delegate(PrimitiveEnum { ir: IrTypeEnumRef { name: "ImageFitInfo", is_exception: false }, repr: I32 }), StructRef(IrTypeStructRef { name: "JoystickInfo", freezed: false, empty: false, is_exception: false }), StructRef(IrTypeStructRef { name: "LabelInfo", freezed: false, empty: false, is_exception: false }), Optional(IrTypeOptional { inner: Delegate(String) }), Optional(IrTypeOptional { inner: Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "DartCommandKey", freezed: false, empty: false, is_exception: false }) }) }), Optional(IrTypeOptional { inner: Boxed(IrTypeBoxed { exist_in_real_api: false, inner: Primitive(F64) }) }), StructRef(IrTypeStructRef { name: "RadioButtonInfo", freezed: false, empty: false, is_exception: false }), StructRef(IrTypeStructRef { name: "SensorUpdateInfo", freezed: false, empty: false, is_exception: false }), StructRef(IrTypeStructRef { name: "SliderInfo", freezed: false, empty: false, is_exception: false }), Delegate(PrimitiveEnum { ir: IrTypeEnumRef { name: "SliderStyleInfo", is_exception: false }, repr: I32 }), Delegate(PrimitiveEnum { ir: IrTypeEnumRef { name: "TextAlignInfo", is_exception: false }, repr: I32 }), StructRef(IrTypeStructRef { name: "TextFieldInfo", freezed: false, empty: false, is_exception: false }), StructRef(IrTypeStructRef { name: "ToggleInfo", freezed: false, empty: false, is_exception: false }), Delegate(PrimitiveEnum { ir: IrTypeEnumRef { name: "ToggleStyleInfo", is_exception: false }, repr: I32 }), StructRef(IrTypeStructRef { name: "TouchpadInfo", freezed: false, empty: false, is_exception: false }), Delegate(PrimitiveEnum { ir: IrTypeEnumRef { name: "TouchpadStyleInfo", is_exception: false }, repr: I32 }), Primitive(U8), PrimitiveList(IrTypePrimitiveList { primitive: U8 }), Primitive(Unit), Primitive(Usize)]
2023/12/21 14:55:26 [INFO] Phase: Running build_runner
2023/12/21 14:55:26 [INFO] Running build_runner at /home/devin/Desktop/phone-iot-2
2023/12/21 14:55:26 [DEBUG] Guessing toolchain the runner is run into
2023/12/21 14:55:26 [DEBUG] execute command: bin=sh args="-c \"flutter\" \"pub\" \"run\" \"build_runner\" \"build\" \"--delete-conflicting-outputs\" \"--enable-experiment=class-modifiers\"" current_dir=Some("/home/devin/Desktop/phone-iot-2") cmd=cd "/home/devin/Desktop/phone-iot-2" && "sh" "-c" "\"flutter\" \"pub\" \"run\" \"build_runner\" \"build\" \"--delete-conflicting-outputs\" \"--enable-experiment=class-modifiers\""
2023/12/21 14:55:35 [WARN] command=cd "/home/devin/Desktop/phone-iot-2" && "sh" "-c" "\"flutter\" \"pub\" \"run\" \"build_runner\" \"build\" \"--delete-conflicting-outputs\" \"--enable-experiment=class-modifiers\"" stdout=[INFO] Generating build script...
[INFO] Generating build script completed, took 290ms

[WARNING] Attempting to enable experiments `[class-modifiers]`, but the current SDK
language version does not match your `analyzer` package language version:

Analyzer language version: 3.1.0
SDK language version: 3.2.0

In order to use experiments you may need to upgrade or downgrade your
`analyzer` package dependency such that its language version matches that of
your current SDK, see https://github.com/dart-lang/build/issues/2685.

Note that you may or may not have a direct dependency on the `analyzer`
package in your `pubspec.yaml`, so you may have to add that. You can see your
current version by running `pub deps`.

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 71ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 317ms

[INFO] Running build...
[INFO] Running build completed, took 9ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 34ms

[SEVERE] freezed on lib/bridge_definitions.dart (cached):
An error `FormatterException` occurred while formatting the generated source for
  `package:PhoneIoT/bridge_definitions.dart`
which was output to
  `lib/bridge_definitions.freezed.dart`.
This may indicate an issue in the generator, the input source code, or in the
source formatter.
Could not format because the source could not be parsed:

line 74, column 4 of .: Expected a type name.
   ╷
74 │ as void,
   │    ^^^^
   ╵
[SEVERE] Failed after 53ms
 stderr=
2023/12/21 14:55:35 [ERROR] Fatal error encountered. Rerun with RUST_BACKTRACE=1 or RUST_BACKTRACE=full for more details.
Error: Failed to run build_runner for /home/devin/Desktop/phone-iot-2: [INFO] Generating build script...
[INFO] Generating build script completed, took 290ms

[WARNING] Attempting to enable experiments `[class-modifiers]`, but the current SDK
language version does not match your `analyzer` package language version:

Analyzer language version: 3.1.0
SDK language version: 3.2.0

In order to use experiments you may need to upgrade or downgrade your
`analyzer` package dependency such that its language version matches that of
your current SDK, see https://github.com/dart-lang/build/issues/2685.

Note that you may or may not have a direct dependency on the `analyzer`
package in your `pubspec.yaml`, so you may have to add that. You can see your
current version by running `pub deps`.

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 71ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 317ms

[INFO] Running build...
[INFO] Running build completed, took 9ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 34ms

[SEVERE] freezed on lib/bridge_definitions.dart (cached):
An error `FormatterException` occurred while formatting the generated source for
  `package:PhoneIoT/bridge_definitions.dart`
which was output to
  `lib/bridge_definitions.freezed.dart`.
This may indicate an issue in the generator, the input source code, or in the
source formatter.
Could not format because the source could not be parsed:

line 74, column 4 of .: Expected a type name.
   ╷
74 │ as void,
   │    ^^^^
   ╵
[SEVERE] Failed after 53ms

error: Recipe `gen` failed on line 9 with exit code 1

To Reproduce
No response
Expected behavior
No response
Generated binding code
No response
OS
Linux Mint 20 x86_64
Version of flutter_rust_bridge_codegen
1.82.6
Flutter info
[✓] Flutter (Channel stable, 3.16.5, on Linux Mint 20 5.4.0-169-generic, locale en_US.UTF-8)
    • Flutter version 3.16.5 on channel stable at /home/devin/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 78666c8dc5 (2 days ago), 2023-12-19 16:14:14 -0800
    • Engine revision 3f3e560236
    • Dart version 3.2.3
    • DevTools version 2.28.4

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /home/devin/Android/Sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /usr/local/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[✓] Android Studio (version 2022.1)
    • Android Studio at /usr/local/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.85.1)
    • VS Code at /usr/share/code
    • Flutter extension version 3.78.0

[✓] Connected device (3 available)
    • Pixel 3a XL (mobile) • 932AX03U3N • android-arm64  • Android 12 (API 32)
    • Linux (desktop)      • linux      • linux-x64      • Linux Mint 20 5.4.0-169-generic
    • Chrome (web)         • chrome     • web-javascript • Google Chrome 120.0.6099.109

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Version of clang++
No response
Version of ffigen
No response
Additional context
No response

Hmm, so the issue looks like: frb translates () into void, while freezed fails to handle a void-typed field.
Firstly, what about using Ok not Ok(())?
Secondly, feel free to create an issue at freezed

Right, my current workaround was just to use Ok, but I figured I'd mention the issue anyway.
Oh ok, I wasn't sure where the issue was. If it's not in flutter_rust_bridge itself we can close this and I'll just link the issue to freezed.

Sure, feel free to create issues!
I am not sure whether freezed will think this as an actionable issue though, because void some_field may or may not look like a commonly used thing. But on the other hand, for FRB, it seems that we need to generate the void-typed field in order to be faithful.

Close given discussions above - If it's not in flutter_rust_bridge itself we can close this and I'll just link the issue to freezed. Feel free to reopen if needed!


Make stripCommentHeaders less greedy, to ensure that it doesn't eat 'use strict' directive at the top of files (PR 6627 follow-up)

Move the globals comments in bidi.js and metadata.js to after the Copyright comments
Make stripCommentHeaders less greedy, to ensure that it doesn't eat 'use strict' directive at the top of files (PR 6627 follow-up)

While browsing through the latest PDF.js update on mozilla-central, see https://hg.mozilla.org/integration/fx-team/rev/aef06cd725fc, I noticed that the 'use strict'; directives were missing at the top of a number of files.
This is fallout from the changes made in make.js in PR #6627, since stripCommentHeaders previously relied on the existence of the mode-lines.
I'm assuming that we do want all of the code (e.g. the viewer too) to execute in strict mode, hence this patch tweaks stripCommentHeaders to make it less greedy.

Thank you.


Implement a prepare action button

Not a javascript or UI programmer, but here's at least a potential implementation that appears to work.
Fixes #173

I think it would make sense to take a minute to think about what the implementation could look like. Rather than a button, I would expect instead that on every change we could automatically regenerate the curl.
It seems like where we are going (hard to tell with the current limited changes) is that there would be a new button, but I think we can do better and avoid it by automatically generating the new curl command on every change.
I can also imagine figuring that part out could be a bit complicated, so taking a two step approach to a refactor might make the most sense. I would suggest starting with, just refactoring out the curl generation based on the fetchOptions from the input. If we had a fetch => curl converted, then we could call that after we call a ui => fetch converter.
Recommended Steps:

Create a UI => Fetch and Fetch => Curl converters
Make the Execute button just load the existing generated fetch command
Dynamically update the Fetch command based on the UI

I think that might be it, but if there is something else potentially missing we might be able to catch as we go.
What do you think about that?

It sounds like a good design to the implementation - and one that would definitely support additional capabilties (alternative languages/displays/etc.).
Definitely outside my area of expertise actually implementing that degree of change though.

To worries at all. If there is anything that would still provide value however it would be refactoring the curl generation to its own function. Most of the code is already there, but it is intertwined with the execute function. If you feel up to that, it would be a great help as a first step, and then we could take it from there.

See if that helps any.  I think it results in a bit of duplication though. It may be worth considering a function to "compile the request content into a simplified intermediate object" step and then using that from both the curl and Try and potentially others.

However, that might also not be ideal, since using curl for example you're not using the final condensed form - you can use -F for individual form elements for example.


Re-enable config::tests::test_maybe_expand_home_dir

This test fails on the windows platform. Rewrite the test so that it is platform agnostic.
Assigning this to you @stacksjb as I am running Linux only and can't confirm locally.

Thx! I think we will need to replace it with a multiplatform test as it will be platform specific.

Looking at this test, I see a few ways to do it:

Make platform-specific compilation tests - either in one test or as individual platform specific tests (i.e.)
#cfg(target_os = "linux")] //linux test here
#cfg(target_os = "macos")] //macos test here
#cfg(target_os = "windows")] //windows test here
`

It looks like the code is using https://docs.rs/homedir/latest/homedir/ to get the homedir - I wanted to note that this is also unnecessary because dirs is already present, which provides a function to retrieve this. I'll update this to clean up the function.

Good catch! I was the one that initiated this change and was not as familiar with the code base. And so, I did not know we already had dirs.
Looking forward to seeing these changes

Addressed :+1:


How to use two different Icon-pics??

More details please

Hi @ffischer1984,
It seems more of a leaflet question.
here you will find how to create different icon with leaflet.
You can then bind these to the marker icon property in vue2-leaflet.
Mickaël

Closing as no answer for 10 days.


Can't close the last tab in tab list

When it remains one tab left in tab list, I can't close that tab by pressing X or swiping up. Are there any options can make it?
Thanks for your patience, I love this awesome browser.  d(  >∀･)b

The option has been committed at 5b3d527e2cbd7bf4103d9fd6520e5f5a7ce8c38f.
Please wait for next feature update.

Thank you. :)

Is this implemented in the latest version?
I can't find it.
Would someone be so kind and tell me where I can set this option?

This option available in [Tab list] action's option.
ex.)Action settings→Software button settings→Custom button→[Tab list]→press→option[gear icon]

Thanks! That feels way better than before!

It seems not working on another type of  tab list which is with preview window.


⚠ Bofrost.es has degraded performance

In 7b70562, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1488 ms

Resolved: Bofrost.es performance has improved in 3ab7893 after 7 minutes.


URL redirects to root domain only on Safari when generated via the API

Steps to reproduce:

Try using the following URL on Safari 10, macOs El Capitan, generated by the API:
http://short.infeedo.com/41G3yi0EzOKpZum8B6nwLUDMoeYxTFCqkcR9Jg5r
Try using the following URL on Safari 10, macOs El Capitan, generated using the Yourls admin interface:
http://short.infeedo.com/41G3yi0EzOKpZum8B6nwLUDMoeYxTFCqkcR9Jg5

To reproduce the issue, use Safari Incognito window.
Both the links work perfectly on all browsers except the first one redirects to the base url on Safari. Requesting some help here or some direction to help me fix the issue.
Technical details

YOURLS version: 1.7.2
PHP version: 7.0.15
OS: Ubuntu, using LAMP stack

Have you tested on multiple instances of Safari 10? Different user account, different installation/Mac? Could be a cached state or some issue with the user profile.

@dgw Yes, have tried to reset cache, tried different macbook machines, all using the same os and browser. Also, tried on crossbrowsertesting.com

@gitChirag Sounds like an odd bug, then. As far as I know the API creates links the same way as the web interface…

I won't contribute here because I don't use Safari, but that very looks like a client / cache bug.
Yes, the API or the admin interface all use the same functions and once stored, nothing in the DB tells the client how or why a short URL was created. Also, nothing in the code checks what user agent requests a redirection before redirecting it (unless, of course, plugins interact)
Closing because I believe it's not a YOURLS bug per se but feel free to provide additional details till someone can provide any helpful tip.
(also, I think you copy/pasted the same URL twice)

@ozh Thanks for your response. Request you to help me a bit or give me some direction here because that's not a cache issue. The 2nd url has one character omitted in the end because I tried copy/pasting the same url in the admin panel and check if any character in the string is causing the issue.
The 2nd url is working on all safari browsers but the first one is not working on any safari browser.

There's a difference between these two links: first one redirects to http://amber.infeedo.com/#/token:bleh, second one redirects to https://amber.infeedo.com/#/token:bleh -- note the https
I think here's your problem: server misconfiguration regarding SSL and/or Safari doing something weird on this HTTP vs HTTPS request. All other tests I've run show nothing unexpected regarding the redirection headers that your links send. Not sure what tools exists for Safari but you can check server responses using web based tools such as http://headers.cloxy.net/ or http://www.webconfs.com/http-header-check.php

@ozh Thanks a lot. Your attention to detail saved me. Short URL generated via admin panel with only http caused the issue too. I just need to put https everwhere instead and fix the issue.


3.2.6 artifacts missing/causing issues

I updated my build.gradle to depend on 3.2.6 (from 3.2.5):
implementation("com.mikepenz:fastadapter:3.2.6@aar") {
  transitive = false
}

implementation "com.mikepenz:fastadapter-commons:3.2.6@aar"

but the gradle sync fails unless commons is 3.2.5 (no error message, just fails).
I looked in maven central and jcenter, and there are no artifacts for 3.2.6
Do they come from somewhere else, or were they not deployed successfully?

Have you considered jcenter? I've had a much easier time with them than maven central (and they sync to maven central nightly I believe).

I upload it to both. not sure why jcenter was not getting it yesterday


site: https://golang.org/doc/install incorrectly lists minumum kernel version for linux/arm as 2.6.23

https://golang.org/doc/install states that the minimum kernel version for all linux platform is 2.6.23. This is not correct. The minimum for linux/arm is 2.6.27 (possibly 28), however this contradicts information from the wiki, https://github.com/golang/go/wiki/Linux
See #3897
See also https://codereview.appspot.com/7225047/

The minimum requirements page seems to offer an explanation:

Linux/ARMv5 requires much newer kernels, at least v3.1 (for __kuser_cmpxchg64).

https://github.com/golang/go/wiki/MinimumRequirements
Not claiming this is correct, just noting this here so if we uniform the docs one way or the other we can update every place at once.

@ALTree see #3897, i'd forgotten that we'd tried to address this yonks ago.

Kindly paging @cherrymui @benshi001 if y'all have some bandwidth. @davecheney might you be free to help send a CL for this change? Thank you.

Maybe we can just add MinimumRequirements link to https://golang.org/doc/install page so we can fix  #3897 and #30559. For instance:
For other content on installing, you might be interested in:

Minimum Requirements -- What operating system version you need to run golang.
Managing Go installations -- How to install multiple versions and uninstall.
Installing Go from source -- How to check out the sources, build them on your own machine, and run them.

The wiki page now exists, and the install page no longer lists incorrect information


phpstan error on filament macro

Package
filament/filament
Package Version
v3
Laravel Version
v11
Livewire Version
v3
PHP Version
8.3
Problem description
Since filamentphp uses a custom macroable trait phpstan, larastan does not recognize the custom macros we add to the components.
Expected behavior
According to this issue https://github.com/larastan/larastan/issues/1935 we need a phpstan extension that adds the filament macroable to it.
Steps to reproduce

add a custom macro to your service provider
use your macro in the code base
analyze the code using phpstan

Reproduction repository
https://github.com/ariaieboy/filament-phpstan-issue
Relevant log output
No response

This is a feature request really, so going to close. Feel free to release an extension as a package that people can pull in


"platform" definition uses ambigious and non-standard strings

While scripting the download of a suitable chromedriver binary, I noticed an issue regarding the JSON that is returned from the API endpoints. For example this one, which contains items like:
"chromedriver": [
  {
    "platform": "linux64",
    "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/linux64/chromedriver-linux64.zip"
  },
  {
    "platform": "mac-arm64",
    "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/mac-arm64/chromedriver-mac-arm64.zip"
  },
  {
    "platform": "mac-x64",
    "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/mac-x64/chromedriver-mac-x64.zip"
  },
  {
    "platform": "win32",
    "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/win32/chromedriver-win32.zip"
  },
  {
    "platform": "win64",
    "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/win64/chromedriver-win64.zip"
  }
],

Scripting this for mac and linux requires custom logic to accommodate the non-standard platform values, for example:
# Set reported platform
REPORTED_PLATFORM="$(uname -m)"

# Set platform for querying endpoints URL
# Ideally that URL would have just used the value reported by uname...
if [ "${REPORTED_PLATFORM}" == "arm64" ]; then
  PLATFORM="mac-arm64"
elif [ "${REPORTED_PLATFORM}" == "x86_64" ]; then
  PLATFORM="mac-x64"
else
  echo "Unsupported platform: ${REPORTED_PLATFORM}, exiting"
fi

etc etc
Why not use the same value as the OSes in question report themselves, for example though uname?
$ echo "$(uname -s)-$(uname -m)"
Linux-x86_64

$ echo "$(uname -s)-$(uname -m)"
Darwin-x86_64

$ echo "$(uname -s)-$(uname -m)"
Darwin-arm64

Meaning, if the JSON keys looked like this, scripting would be much easier:
        "chromedriver": [
          {
            "platform": "Linux-x86_64",
            "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/linux64/chromedriver-linux64.zip"
          },
          {
            "platform": "Darwin-arm64",
            "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/mac-arm64/chromedriver-mac-arm64.zip"
          },
          {
            "platform": "Darwin-x86_64",
            "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/mac-x64/chromedriver-mac-x64.zip"
          },
          {
            "platform": "win32",
            "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/win32/chromedriver-win32.zip"
          },
          {
            "platform": "win64",
            "url": "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6124.0/win64/chromedriver-win64.zip"
          }
        ],

Also, it explicitly makes it clear that there are no aarch86 builds for Linux....

I'll answer the why: We named the builders/bots for CfT resembling the precedent of existing Chromium builders. Here is one example: https://crsrc.org/c/third_party/angle/testing/buildbot/waterfalls.pyl. You can find there things like "linux64", "arm64", and so on.
That said, we could take your report as a FR, so I'll leave this open for now.

I think we could add aliases to make the lookup easier. Although that would probably only work on Linux/MacOS. Windows might return things like CYGWIN_NT-X with uname so it would not match. WDYT? cc @mathiasbynens

Naming things is hard :)
Changing the builders + archive names + archive structure to slightly simplify scripting doesn’t seem worth it at this point. We’d have to add aliases for the “legacy” names anyhow to maintain backwards compatibility.
The list of supported platforms is captured in the README. Scripts already have to know about this list, since we don’t support every possible platform identifier that uname can output (and what you’re proposing might incorrectly create the impression that we do).
In your own scripts, it’s easy enough to create a mapping from the uname identifiers you wish to support to the platform labels we’re using. You kind of already have to do this anyway since you likely want to error or fall back to some default option when an unrecognized platform is used.