Won't allow to query outside of document information

Describe the bug
Even though we have set AZURE_SEARCH_ENABLE_IN_DOMAIN and SEARCH_ENABLE_IN_DOMAIN set as "false" in the Azure environment variables, the chat bot will still not return queries outside of our documents. For example, if I ask, "Write a funny story about three cats", it responds, "I'm sorry, but I couldn't find any documents related to funny stories about cats. Is there anything else I can help you with?". I have also changed all the default values for all ENABLE_IN_DOMAIN variables to false just in case. This bug only works for 3.5-turbo (0301), and not for gpt-4o. Both deployments have the same content filter that should not cause this behavior.
To Reproduce
Steps to reproduce the behavior:

Set AZURE_SEARCH_ENABLE_IN_DOMAIN to false in the Azure environment variables
Try to query the bot outside of its document data, e.g., "Write a funny story about three cats"
Observe that the bot refuse to respond to the prompt.

Expected behavior
I expect the chat bot to respond outside of the document domain.
Screenshots

Configuration: Please provide the following

Azure OpenAI model name and version: gpt-3-turbo 0301
Is chat history enabled?: Yes
Are you using data? If so, what data source?: Azure AI Search
Verify the startup command and runtime configuration by showing the output of the following az CLI command:

az webapp show --name <app name> --resource-group <resource group name> --query "{startupCommand: siteConfig.appCommandLine, runtime: siteConfig.linuxFxVersion}"
```:

{
  "runtime": "PYTHON|3.11",
  "startupCommand": "python3 -m gunicorn app:app"
}

**Logs**

1. If the application deployment is failing, please share the deployment logs using the following az CLI command:

az webapp log deployment show --name  --resource-group

4. If the application is crashing after deployment, please share the application logs using the following az CLI command:

az webapp log tail --name  --resource-group

**Additional context**
Add any other context about the problem here.

I fixed this issue by uprevving the GPT 3.5 model we were using, our model was too old.


Kicking the plate does not seem to generate lateral tire forces of any significant magnitude.

If you apply a lateral kick plate speed of 10 m/s you'd expect to generate significant side slip and thus significant lateral forces at the rear wheel. Quick calc:
600 N * 11.46 * atan( 10 m/s / 4.6 m/s) = 7836 N
If I start with the bicycle state all at zero except a forward speed of 4.6 m/s I get these results:

Key thing is that no slip angle is developed at the impulse in ydot, thus no lateral force, thus the contact point stays put. It is like there is no friction.
If I do a normal simulation with just an initial roll rate, 100N of lateral force is generated.

Here is a u4=0.5 initial condition with no kick (for reference):

Andrew just gave me a likely simple obvious solution: just add a force to the contact point instead of specifying distance deviation.

Moved to a kick plate force, which seems to work correctly. I abandoned the position specification.


New gnome keyring

Switches #56 to use a branch from this repo so we can easily collaborate on it
I have also fixed most of my review comments on that PR so we can replace it with this one

Does it make sense to store the session along with an Item. As in,
pub struct Item {
    inner: RwLock<portal::Item>,
    path: OwnedObjectPath,
    keyring: Arc<Keyring>,
    locked: bool,
    session: OwnedObjectPath,
}

and then, store the same session inside Collection,
pub struct Collection {
    keyring: Arc<Keyring>,
    pub(crate) items: RwLock<Vec<super::item::Item>>,
    alias: RwLock<String>,
    label: String,
    locked: AtomicBool,
    created: Duration,
    modified: Duration,
    path: OwnedObjectPath,
    sessions: Vec<OwnedObjectPath>,
}

with this way we get access to all the available sessions and we can retrieve a session based on an objectpath. wdyt?

Does it make sense to store the session along with an Item. As in,
pub struct Item {
    inner: RwLock<portal::Item>,
    path: OwnedObjectPath,
    keyring: Arc<Keyring>,
    locked: bool,
    session: OwnedObjectPath,
}

and then, store the same session inside Collection,
pub struct Collection {
    keyring: Arc<Keyring>,
    pub(crate) items: RwLock<Vec<super::item::Item>>,
    alias: RwLock<String>,
    label: String,
    locked: AtomicBool,
    created: Duration,
    modified: Duration,
    path: OwnedObjectPath,
    sessions: Vec<OwnedObjectPath>,
}

with this way we get access to all the available sessions and we can retrieve a session based on an objectpath. wdyt?

Storing the session is required yes, but not just it ObjectPath. Instead you need to store the Sesssion itself which would contain more information than just the object path. Ideally we can store it as HashMap<OwnedObjectPath, Session>, same thing for collections & items I would say.

Does it make sense to store the session along with an Item. As in,
pub struct Item {
    inner: RwLock<portal::Item>,
    path: OwnedObjectPath,
    keyring: Arc<Keyring>,
    locked: bool,
    session: OwnedObjectPath,
}

and then, store the same session inside Collection,
pub struct Collection {
    keyring: Arc<Keyring>,
    pub(crate) items: RwLock<Vec<super::item::Item>>,
    alias: RwLock<String>,
    label: String,
    locked: AtomicBool,
    created: Duration,
    modified: Duration,
    path: OwnedObjectPath,
    sessions: Vec<OwnedObjectPath>,
}

with this way we get access to all the available sessions and we can retrieve a session based on an objectpath. wdyt?

Storing the session is required yes, but not just it ObjectPath. Instead you need to store the Sesssion itself which would contain more information than just the object path. Ideally we can store it as HashMap<OwnedObjectPath, Session>, same thing for collections & items I would say.

Understood. Yeah I agree using a HashMap make sense. I think it make sense store all these inside struct Service

Note: dropped following commits due to this change and rebased.

client: make key generation methods public and encrypt(): 8dcc58f5af2de7b48fe6005e96c7bcd4f3bb6ad6
client: make crypto crate public under unstable feature: 145f9644db950635be7a125be47be48b629d0db4
client: Expose native_crypto API generate_iv() and encrypt(): e694e2e05c8d0696288ad66826038498ef2746ce


JBPM-4625 Generation of JPA enabled models

persistence.xml descriptor processing, basically marshall/unmarshal  xml <-> model

@wmedvede Hi Walter, can you explain why these classes are in droolsjbpm-knowledge (I'm not saying they should not be, but since they're used by the WB I'd have thought kie-wb-common was more appropriate - given my limited knowledge of this change). Also, should the Serializable classes also have a serialVersionUID?

@wmedvede I know it's your choice, but why do you have these classes and similar in kie-wb-common and then (un)marshall between the two sets of classes? Would one set of classes be easier to maintain - and change the XML<->Objects marshalling to use another XML parser (e.g. SAX/StAX) instead of JAXB?

I asked this query to my self too. I think this classes are now only used by the workbench, but I'm 90% sure that in the future they will be also used by the jbpm deployment services o even by the unifided execution server. At some point when a project with persistence is about to be deployed, we should excecute code that will create the EntityManagerFactory for the given project, etc. I don't know where this  code will be at this moment.
Assuming that the PersisteneDescirptor will be used at some poing by core components (as I believe) then it's not bad to have the Portable representation of the descriptor. In this way the core stuff is maintained separate from the Portable stuff, etc.

Walter, Mike, I don't think we are going to use these classes on runtime when deploying and bootstrapping the persistence for given project. jBPM itself does delegate the read of persistence.xml (and to interpret it) to JPA provider (in our case hibernate). jBPM does not really care what's inside the persistence.xml and expect to get EntityManagerFactory when invoking Persistence.createEntityManagerFactory. Nothing else. So the main requirement is to ensure that persistence.xml is in expected location (META-INF/persistence.xml) so JPA provider can find it.

I guess that likely the runtime don't really care at this moment, cause you are doing a kind of Standalone deployment relaying all the deployment to the Persistence.createEntityManager(XXX). But as soon as we wants to do something more controlled, like pre-check if the data base already has a schema with tables inside (and send an alert to the user), etc., then we will need it.
e.g. when the module is about to be deployed in UI mode, we can rise an alert to the user saying "hej, the database already contains data, do you still want to deploy"
I'm not sure if we should provide a mechanism that do the persistence deployment only for jBPM projects.
Sooner or later I guess we will need something more elaborated, for example, a platform service that can do the formal instanciation of the EntityManagerFactories. And likely keep an internal registry with the registered persistence units, etc. Having this, modules like the dashbuilder that wants to do JPA queries query on a given persistence unit can consume this service too.
Another example is probably the FormModeller, for example, if we have an entity Currency, when a form is about to be painted, and we want to show a dropdown with all the available currencies, likely the form runtime will need to get access to the EntiyManager in order to populate the dropdown with the values from DB.

To not enter in a never ending discussion I've sent part of previous work to the transh, and moved everithing to kie-wb-commons


Preload imports on startup from safe endpoint

@garrettmflynn Can you point me to the relevant code on the front-end that launches the first call to the Flask endpoint? (I think it used to have something about 'echo'? Or maybe it's the thing that checks if the backend is connected and running?)
I'd like to add a simple endpoint to trigger various imports just after launch (but as separate hidden operation) to reduce the instantaneous speed of the now locally scoped operations

https://github.com/NeurodataWithoutBorders/nwb-guide/blob/54681eb66f6e6c11f9bf5776b6176195a9681d13/src/renderer/src/index.ts#L99


Added CODEOWNERS and MAINTAINERS files

Added CODEOWNERS and MAINTAINERS files for the new repository (ref: https://github.com/notaryproject/.github/issues/30)
Once the PR is approved we should create a GH Team for the repo maintainers.

I have updated the files as per the discussions we had in the community meetings.


Client Security NO_SEC for Leshan Server

Is it not possible to register a client with NO_SEC in Leshan Server Demo? I can vividly remember that it was possible a year ago(?). While trying to connect to the non DTLS port @ 5683. I get this annoying print:
DEBUG SecurityChecker - Client 'helloworld' must connect using DTLS

I suspect you have SecurityConfig for client 'helloworld'.
Check in "security tab" of leshan-server-demo web UI ? If I'm right you need to remove it and it should work.

Yes. That particular attempt had PSK configured for the endpoint. However trying to register a new device/endpoint. The Security Mode selection only has three options: PSK/RPK/X509. Alas NO_SEC is missing. I built Leshan Server demo from master a few days ago. Did I forget a compile flag or setting?

If you want your device being able to connect without security, just remove the entry.

Thanks. That was easy :smile: Memory is a tricky thing :smiley:


Tidy whitespace

What is this PR?
This is a:

[ ] documentation update
[x] bug fix with no breaking changes
[ ] new functionality
[ ] a breaking change

Checklist

[x] I have verified that these changes work locally on the following warehouses (Note: it's okay if you do not have access to all warehouses, this helps us understand what has been covered)

[ ] BigQuery
[x] Postgres
[ ] Redshift
[ ] Snowflake

[ ] I have updated the README.md (if applicable)
[ ] I have added tests & descriptions to my models (and macros if applicable)
[ ] I have added an entry to CHANGELOG.md

Tenets to keep in mind

A metric value should be consistent everywhere that it is referenced
We prefer generalized metrics with many dimensions over specific metrics with few dimensions
It should be easier to use dbt’s metrics than it is to avoid them
Organization and discoverability are as important as precision
One-off models built to power metrics are an anti-pattern

Description & motivation
Closes #93
Played around with this for what many experts are calling "way too much time" and got to a place where I'm reasonably ok with the outputs. I probably went a bit overboard in terms of the number of -s placed that don't do much of anything, so happy to roll back any that aren't useful and are just cruft.
I also did not get to test every permutation of dimension/calendar dimension/ secondary calculation in this first cut. Going to rely on the integration tests to make sure none of my changes cause breaking SQL errors!
Right now, for this sample metric call:
select * from
{{
    metrics.calculate(
        [metric('total_customers'), metric('total_value')],
        grain='week',
        dimensions=['state', 'customer_id'],
        secondary_calculations=[
            metrics.period_over_period(comparison_strategy="ratio", interval=1),
            metrics.period_over_period(comparison_strategy="difference", interval=1)
        ],
        end_date='2020-01-01'
    )
}}

compiles to this:

Check it out
select * from
-- depends on: "postgres"."dbt_dconnors"."dbt_metrics_default_calendar"

(

with calendar as (

    select
        *
    from "postgres"."dbt_dconnors"."dbt_metrics_default_calendar"
    where date_day <= cast('2020-01-01' as date)
)

, total_customers__aggregate as (
    select

        date_week,
        state,
        customer_id,
        count(property_to_aggregate) as total_customers,
        bool_or(metric_date_day is not null) as has_data

    from (

        select

            cast(report_date as date) as metric_date_day, -- timestamp field
            calendar_table.date_week as date_week,
            -- ALL DIMENSIONS
            state,
            customer_id,
            customer_id as property_to_aggregate

        from "postgres"."dbt_dconnors"."incremental"
        left join "postgres"."dbt_dconnors"."dbt_metrics_default_calendar" calendar_table
            on cast(report_date as date) = date_day

        where 1=1
            and (
            cast(report_date as date) <= cast('2020-01-01' as date)
            )

            and (
                state != 'connecticut'
                and state = 'massachusetts'
                )

    ) as base_query

    group by 1, 2, 3
)

, total_customers__dims as (
    select distinct

        state,
        customer_id

    from total_customers__aggregate
)

, total_customers__spine_time as (

    select
        calendar.date_week
        , total_customers__dims.state
        , total_customers__dims.customer_id

    from calendar
    cross join total_customers__dims
    group by 1, 2, 3

)

, total_customers__final as (

    select
        total_customers__spine_time.date_week,
        total_customers__spine_time.state,
        total_customers__spine_time.customer_id,
        coalesce(total_customers, 0) as total_customers

    from total_customers__spine_time
    left outer join total_customers__aggregate
        using (
            date_week
            , state
            , customer_id
        )

    where (
        total_customers__spine_time.date_week >= (
                select
                    min(case when has_data then date_week end)
                from total_customers__aggregate
            )

        )

)

, total_value__aggregate as (
    select

        date_week,
        state,
        customer_id,
        sum(property_to_aggregate) as total_value,
        bool_or(metric_date_day is not null) as has_data

    from (

        select

            cast(report_date as date) as metric_date_day, -- timestamp field
            calendar_table.date_week as date_week,
            -- ALL DIMENSIONS
            state,
            customer_id,
            val as property_to_aggregate

        from "postgres"."dbt_dconnors"."incremental"
        left join "postgres"."dbt_dconnors"."dbt_metrics_default_calendar" calendar_table
            on cast(report_date as date) = date_day

        where 1=1
            and (
            cast(report_date as date) <= cast('2020-01-01' as date)
            )

            and (
                state != 'connecticut'
                )

    ) as base_query

    group by 1, 2, 3
)

, total_value__dims as (
    select distinct

        state,
        customer_id

    from total_value__aggregate
)

, total_value__spine_time as (

    select
        calendar.date_week
        , total_value__dims.state
        , total_value__dims.customer_id

    from calendar
    cross join total_value__dims
    group by 1, 2, 3

)

, total_value__final as (

    select
        total_value__spine_time.date_week,
        total_value__spine_time.state,
        total_value__spine_time.customer_id,
        coalesce(total_value, 0) as total_value

    from total_value__spine_time
    left outer join total_value__aggregate
        using (
            date_week
            , state
            , customer_id
        )

    where (
        total_value__spine_time.date_week >= (
                select
                    min(case when has_data then date_week end)
                from total_value__aggregate
            )

        )

)

, first_join_metrics as (

    select
        date_week
        , coalesce(
            total_customers__final.state,
            total_value__final.state
        ) as state
        , coalesce(
            total_customers__final.customer_id,
            total_value__final.customer_id
        ) as customer_id

        , nullif(total_customers,0) as total_customers
        , nullif(total_value,0) as total_value

    from
        total_customers__final
        left outer join total_value__final
            using (
                date_week
                , state
                , customer_id
                )
    )

, joined_metrics as (

    select
        first_join_metrics.date_week
        , first_join_metrics.state
        , first_join_metrics.customer_id
        , coalesce(first_join_metrics.total_customers,0) as total_customers
        , coalesce(first_join_metrics.total_value,0) as total_value

    from first_join_metrics

)

, secondary_calculations as (

    select
        *
        , cast(coalesce(total_customers, 0) as FLOAT) / nullif(

            lag(
                total_customers, 1
            ) over (
                partition by state, customer_id
                order by date_week
            )
        , 0) as total_customers_ratio_to_1_week_ago

        , coalesce(total_customers, 0) - coalesce(

            lag(
                total_customers, 1
            ) over (
                partition by state, customer_id
                order by date_week
            )
        , 0) as total_customers_difference_to_1_week_ago

        , cast(coalesce(total_value, 0) as FLOAT) / nullif(

            lag(
                total_value, 1
            ) over (
                partition by state, customer_id
                order by date_week
            )
        , 0) as total_value_ratio_to_1_week_ago

        , coalesce(total_value, 0) - coalesce(

            lag(
                total_value, 1
            ) over (
                partition by state, customer_id
                order by date_week
            )
        , 0) as total_value_difference_to_1_week_ago

    from joined_metrics
)

, final as (

    select
        *
    from secondary_calculations
)

select * from final

) metric_subq

Appreciate you @dave-connors-3


moved dockerfiles

 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.:x: flomader sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Support imporing palette

Sorry if it has already supported.

I'm not the dev, but the bottom left corner of the app has a textbox with the current palette in hex codes that lets you export/import via copy-pasting.

@kazerniel Oh, I hadn't realise... Sorry for silly issue.


CSS splitting per component

Since CookieConsent will be used in the PunchUp project, splitting CSS for each component will allow the developer to import only necessary stylesheets.
Current usage
import<EMAIL_ADDRESS>
Expectation
/* Required typography utility classes */
import<EMAIL_ADDRESS>
/* Used components */
import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>
Note that the index.css should be kept the same.

Fixed in 8d8a33aa39cbe34ee650ec65084651a036899033 and b96be6f1f5e8144a41125ab18c3058d053bc33ef


False positive results when fuzzing for dirs

Is it supposed to give empty results?
Lately it has been happening several times.

Yeah, it's working as intended, your wordlist has some whitespace characters and the matches are for those.

You are very right about that!!
I investigated and found out that the list has some lines that start with 1 or more spaces.
Thank you for the fast response !


[Feature] Python implementation for exact dedup

Search before asking

[X] I searched the issues and found no similar issues.

Component
Transforms/universal/ededup
Feature
Python version for exact deduplication logic that can work across both code and NLP.
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

we have this now https://github.com/IBM/data-prep-kit/tree/dev/transforms/universal/ededup/python


Better handling of updating modules

Summary
Disabling modules deletes all resources created and not a good approach.  A far better way would be to implement a update module.
Why is this important?
Disabling modules can cause downtime and lose of configuration.
Are you interested in contributing to this feature?
No

Thanks for raising the issue @scottsananderson
Ref #3678, including a suggestion regarding how we could approach this: https://github.com/canonical/microk8s/issues/3678#issuecomment-1397301414


start development server error Cannot find module 'consola'

when I start the server with "yarn dev" it will give me this error
note I'm using typescript also.

Hi @faysal146 Please properly fill issue template use use discord to ask questions.
Issue seems local. Cleaning node_modules and yarn.lock may help.


Added TypeDef support

This isn't fully complete and requires/contains #3301.
The last function I debugged is as follows. You can see that FILE * is still being cast which the whole purpose of this is to prevent. This function was able to decompile in the decompiler without a problem but gets stuck in an infinite loop in Ghidra and I have yet to figure out why. One thing I was not 100% sure about is the type ordering and how to properly handle the CompareDependency for TypeAlias.
void _lock_file(FILE *_File)

{
  __crt_stdio_stream *this;
  __crt_stdio_stream_data *p_Var1;
  __crt_stdio_stream local_18 [24];

  this = __crt_stdio_stream::__crt_stdio_stream(local_18,(_iobuf *)_File);
  p_Var1 = __crt_stdio_stream::operator->(this);
  EnterCriticalSection((LPCRITICAL_SECTION)(p_Var1 + 0x30));
  return;
}

The class is named TypeAlias because TypeTypedef or TypeTypeDef was just 🤮

The dependency ordering is going to be the death of me. Non-trivial comparisons in a red-black tree is a nightmare.


test: write some more - [merged]

Merges 15-tests -> development

#15
#52
closes #57
docs publishing nofusscomputing/infrastructure/website!62

mentioned in commit 54c34a95f59e32ca393c71ca2e579d9ee69f5eff

mentioned in commit 0a1aba7ca8e5c639fa56bede846c980ea0a5fb4e

mentioned in commit 9eda12c232106b760868d9bb73e31db74920927e

added 2h 50m of time spent

mentioned in commit 92fe05d083e4d3ea0b102ccb97a24c6782d723fc

mentioned in commit 5280db876767435939ec7435899a75c7f21d7b11

mentioned in commit 4a19bb2ecc101914deb10cd7da6ee8a1375e5515

mentioned in commit 372eefa5c41a6d39eb680de2840d531ab8066bec

mentioned in commit 733a31ad7110bd99d86e19ad47fe8d8fb9b8e0b7

mentioned in commit b7a2bfc61280024b503e8b1e9f6b25e918c465fd

mentioned in commit d64108331fa538cb2d0857a606c76c47c845e7b6

mentioned in commit 29a89692882177ae3c044065974ec21218c0f86f

mentioned in commit 7f1a7eaa0d1c4450280e02b47d4f412d67ff8c6c

mentioned in commit 1220ddbd002c0efdd056aaf39b0cfab574899379

mentioned in commit da746b897787889fe6ff52331c4bec3a033ef6ce

mentioned in commit 34db5f863a172eb00dcae7f47023e973f559aea1

mentioned in commit d2bf0e54d7d47e0f6b4f6659d9170b17cf9953ad

added 14 commits
8af59754...4a19bb2e - 4 earlier commits733a31ad - test(access): ensure team user history is created and removed as required372eefa5 - test(access): test team historyd6410833 - test(itam): ensure history is removed on device delete3b3ee9fc - fix(config_management): Add missing parent item getter to modelb7a2bfc6 - test(config_management): test history on delete for config groups54c34a95 - fix(core): dont attempt to access parent_object if 'None' during history save9eda12c2 - test(itam): ensure history is removed on device model delete5280db87 - test(itam): ensure history is removed on operating system delete92fe05d0 - test(itam): ensure history is removed on software delete34db5f86 - test: add placeholder tests
Compare with previous version

mentioned in commit 3faca17eb1bbcdd40b80230910cffaf419a7160b

mentioned in commit e72eedf077600c6bd8f1594d21fd0e4d09899583

added 6 commits
da746b89 - test(itam): ensure child history is removed on config group software delete1220ddbd - test(itam): history entry tests for device software29b104a6 - test(itam): history entry tests for device operating system7f1a7eaa - test(itam): history entry tests for device operating system versiond2bf0e54 - test(itam): history entry tests for software category3faca17e - test:refactor history entry to have test cases in abstract classes
Compare with previous version

added 2h 55m of time spent

added 1 commit
e72eedf0 - test: refactor model permission tests to use an abstract class of test cases
Compare with previous version

mentioned in commit 6286b0627041b555ac5a363739b7ab9532ef91be

added 1 commit
6286b062 - test: refactor history entry to have test cases in abstract classes
Compare with previous version

mentioned in commit 29b104a6ce1710f69893b5de1331ff1c31ec88ea

mentioned in commit 9f55fa4ab4ec36250fcb1906f96bd9ccbf407bc5

added 1 commit
9f55fa4a - docs(development): Add test case documentation
Compare with previous version

mentioned in merge request gitlab-ci!83

added 2h 57m of time spent

ToDo
ensure that git module website-template updated on merge of nofusscomputing/infrastructure/website-template!16

mentioned in merge request nofusscomputing/infrastructure/website-template!16

mentioned in commit gitlab-ci@e9b5925be31a021204d131ace115353e4102f28c

mentioned in commit nofusscomputing/infrastructure/website-template@2f3982eb3eeaefae92eb22f64d035c23a60ed6d7

mentioned in commit 5eec41fe57f5cd26943cddae53623a74ad1ddc58

resolved all threads

completed 9f55fa4ab4ec36250fcb1906f96bd9ccbf407bc5

mentioned in commit<PHONE_NUMBER>3430c7c0c14b4566e6f025c4a904c1

added 1 commit
5eec41fe - docs(development): Add test case documentation
Compare with previous version

mentioned in commit dbcb2825487cd425fac6e60a3aeb9f02d18de96c

mentioned in commit ceb1929d8c67a3ea32f144d9f4ded2118596f6fa

added 3 commits
dbcb2825 - docs: docstrings show category headingsceb1929d - test: refactor history permission tests to use an abstract class of test cases36133182 - test: move tests to the module they belong to
Compare with previous version

added 1 commit
d27b3800 - docs(development): add device model to api docs
Compare with previous version

mentioned in commit d27b38009a0b5689470e220d6820434d7f6ef3cc

added 1 commit
320d3f1a - test: refactor api model permission tests to use an abstract class of test cases
Compare with previous version

mentioned in commit 0607137fdc06611a10872de0fd813d1bf112dfd9

mentioned in commit 320d3f1a131fd6cf783ad5bbf1ce71463b01b18e

added 7h 18m of time spent

added 1 commit
f861295b - docs(development): add device model to api docs
Compare with previous version

added 1 commit
0607137f - docs(development): add device model to api docs
Compare with previous version

mentioned in commit f861295b1c48ea843cdaeef107e3652468328814

added 11m of time spent

added 2 commits
2be4810e - test: move manufacturer to it's parent44afa4f7 - test(core): tests for manufacturer history entries
Compare with previous version

mentioned in commit 44afa4f7de771723fdbf06be0fb3b2fb58f5d981

mentioned in commit 2be4810ed4e0a5513cc354cb10d90545270b4e65

added 1 commit
a6e569ea - test(core): skip invalid tests
Compare with previous version

added 1 commit
78216116 - fix(itam): remove requirement that user needs change device to add notes
Compare with previous version

mentioned in commit e517c5fd761e9f84dc589468da96b26979f6b33f

mentioned in commit b20b426432efcd515b6d45b89e5ad384f665da46

added 1 commit
b20b4264 - test(itam): tests for device type history entries
Compare with previous version

mentioned in commit a6e569eaef07bea4dfa514be04c46365a931560a

mentioned in commit 78216116dfdfca8542daa95e530bcb8855ec8cb6

mentioned in merge request nofusscomputing/infrastructure/website!62

mentioned in commit nofusscomputing/infrastructure/website@2cf1bb1f9c253a841191f6e0afaa1b23378a321a

mentioned in commit nofusscomputing/infrastructure/website@20726d1712b6bf26838929b2a1717cf5617de676

mentioned in commit nofusscomputing/infrastructure/website@83721b262014b9eabe0c4d32214ac79ea2161116

mentioned in commit nofusscomputing/infrastructure/website@4e356abe3be3c8d44e6eb6633fcc318269853e47

added 1 commit
ddead8eb - docs: restructure to sections administration, user and devlopment
Compare with previous version

mentioned in commit a3afd9ac605d2b3291307f5927aeb04b96c9fc82

added 1 commit
a3afd9ac - docs: add badges to index
Compare with previous version

mentioned in commit ddead8eb56a06570926bc9aeeef877162a7d06fd

added 1 commit
ba13636a - docs: restructure to sections administration, user and devlopment
Compare with previous version

mentioned in commit nofusscomputing/infrastructure/website@4efb97b72894dd11acbc877511fef8d034654d5a

mentioned in commit 2bbf78d888c2dd1b8b73fea05dcd8261f4379977

added 1 commit
afb5a709 - docs: add badges to index
Compare with previous version

mentioned in commit afb5a709d7f19a042dcf451d227e29c26f3e04dc

added 40m of time spent


*** TEST ONLY - NOT TO BE MERGED ***

Codecov Report

Merging #152 into master will decrease coverage by 3.34%.
The diff coverage is 31.57%.

@@            Coverage Diff             @@
##           master     #152      +/-   ##
==========================================
- Coverage   76.13%   72.78%   -3.35%
==========================================
  Files          10       10
  Lines         905      948      +43
  Branches      164      172       +8
==========================================
+ Hits          689      690       +1
- Misses         71      113      +42
  Partials      145      145

Impacted Files
Coverage Δ

src/aker_msgpack.c
88.09% <100%> (+0.91%)
:arrow_up:

src/wrp_interface.c
62.59% <25%> (-25.32%)
:arrow_down:

src/md5.c
87.69% <0%> (-3.08%)
: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 199e08a...d54e098. Read the comment docs.


FIX: Consecutive calls for AbstractWriter::getData() will result in t…

Q
A

Bug report?
Yes

Feature request?
No

BC Break report?
No

There is a bug that when you create two QR-codes, the AbstractWriter always returns the first QR-code. This is reproducible by re-adding the if-statement I removed and running the unit tests.

Hi @eddypouw thank you. This should be fixed in 3.2.6.

@endroid the commit you've merged is missing the tests

@iltar No need for that. I extended the existing tests so that the validation reader text is matched against the original text for consecutive setText calls so this is covered.


[Improvement] provision OB with pre-assgiend IPs and PORTs

Closed as not supported.

assign a NODE-IP as OBServer local-ip, leading to OBServer init failure.


Increase default results count from 10 to ?

Could we increase the default display number here (personally I dislike the page scrolling, I would prefer to see all of the results at once, or at least as high a default as possible, is this prohibitive?).
At the moment the maximum is 100  per page (this would be a more useful default, but its still often too low).
This would  also not be quite so annoying if the filters were 'sticky'
Currently none of the filters are sticky.
So if I have filtered on "pombase", and switched the filter to show  100 annotations, if I then access a gene product, and then go back to this page using the back button, I need to reset both the organism and the result count  to  100

@ValWood There is a cost to increasing the default number per page. As well, I've talked to other users who prefer to be able to quickly filter to get to the results they want, rather than having the slower response/render time of 100 results.
The "stickiness" would be #339 or #50.

I don't know how a filter would work for most terms? If I want to see the genes annotated to mitotic cell cycle,  or chromosome segregation for most organims its going to be over 100 genes.  I guess this might work as an option for an organism with little annotation, or for a leaf node term, but its not a universal  solution.
v

How many users did you poll?

Informal feedback during initial development for widget, likely less than a half-dozen, but no formal notes.

Responsivity is important, I don't like having to wait for annotations
if I just want to jump to a term page and see the term info (and maybe a
distribution over species or something)
However, when I do want to look at annotations, the 10 is rarely
satisfying. I typically set my filters then max out the limit (unless
it's a rare case when we have a very specific term with only a handful
of annotations in the species of interest). The lack of stickiness
probably bothers me less as I have a different usage pattern.
Not sure what the answer is, but just that I don't think it's unusual to
want to pack your screen with as much information as possible and/or use
browser scrollbars.
There are undoubtedly smarter ways to compact this too, but lots of us
still like big lists.

Again, this will all be sorted out with some stickiness in the bookmarking/url tickets mentioned above.


Add langChanged$ observable

Is your feature request related to a problem? Please describe.
TranslocoService provides an observable that emits when the language is about to change. But there is no observable that emits when the language has changed.
Current behavior
When using langChanges$ to trigger rerendering a pipe the pipe rerenders but the language has not been loaded yet and therefor the pipe rerenders in the same language as before. This would be useful for https://github.com/ngneat/transloco/issues/443

You can use events: https://ngneat.github.io/transloco/docs/translation-api/#events

This will not work, please reopen. From the docs:

Note that these events will only fire when the translation is loaded from the server, meaning that when switching from a given lang and back won't trigger the events again since the language is loaded from the cache.

I face with the very same problem in our project as well. I've already tried with events$ which can help when the first lang change happens, but it is not fired after that.
I need to translate computed keys programmatically in the controller. So this is working fine now:
    this.transloco.langChanges$.subscribe(() => {
      this.buildHRParams();

      // this is needed to fix translation when the other language is loaded for the first time and so is not available
      // but is not enough since this is never called again later
      this.transloco.events$.pipe(
        filter(e => e.type === 'translationLoadSuccess'),
        pluck('payload'),
        first()
      ).subscribe(() => {
        this.buildHRParams();
      });
    });

But is this really a good API to use? Why should I call buildHRParams() twice? Why should I subscribe in a subscription for the (kind of the) same event?
langChanges$ is fired before loading the other language file
events$ fired only when real loading happened and not the cache has been used. We could say that it's "bug" should be fixed and fire a translationLoadSuccess event even when loaded from the cache but I'd still say that why should I do 2 subscription for the 1 event I am interested of.
It's easy to see that there is a valid need to have a langChanged$ event which is fired always after having the new translations available.

I dont see a use case for having an event that emits BEFORE the language has changed as well but an urgent need for an event AFTER the language has changed.

Is it possible to make the "events$" observable to emit a new event like 'langChanged' when it is triggered?

@shaharkazaz is it possible to open this issue again? It's a nice addition to the library

I dont know why this has been closed. It is an essential feature to have.

@MickL @gabriel-gn You are welcome to open a PR

@MickL @gabriel-gn You are welcome to open a PR

will try asap

Added PR https://github.com/ngneat/transloco/pull/534

@shaharkazaz
Are there any plans or roadmap when will this be merged?

Upvoting this issue, a langChanged$ observable would definitely help properly handling language switching.

@gabriel-gn, In order for everyone to benefit from your PR, please, correct the commit messages so they follow the guidelines.
feat: Add langChanged$ observable
fixes #461
PR Close #534
docs: Add langChanged$ observable
test: Add langChanged$ observable

Available in v3.2.0.


Multlislider does not set min value more than 100

I  have used below code to set min and max value for slider.
`MultiSlider multiSlider5 = (MultiSlider)findViewById(R.id.range_slider5);
    multiSlider5.setMin(3000,true, true);
    multiSlider5.setMax(5115,true, true);`

Min value is set at 100, instead of 3000.  It should set 3000.

It's library internal check logic. You can't set min value greater than internal max and vice versa. That's because you get min value = 100.

Library requires add func setMinMax for set Min and Max values at the same time.

I found one solution as per current logic. We need to set setMax first then set min will solve the issue.

Fix for both situations
if (new_min > ms.getMax()) {
   ms.setMax(new_max, true, true);
   ms.setMin(new_min, true, true);
} else {
   ms.setMin(new_min, true, true);
   ms.setMax(new_max, true, true);
}

Convenience method to set both would be good, and maybe throw exceptions when setting wrong bounds, so the dev will know what is wrong right away...


Error while updating property 'd' in shadow node of type: RNSVGPath

I'm using this library
but I got this error message:
Error while updating property 'd' in shadow node of type: RNSVGPath
        <View style={{width:'100%',height:'100%'}}>
            <Text style={{fontSize:20,fontWeight:'bold'}}>
            pichart
            </Text>
            <PieChart
              data={chartAnswered}
              width={chartWidth} // from react-native
              height={220}
              chartConfig={{
                backgroundColor: colorConstants.ONE_APP_COLOR,
                backgroundGradientFrom: colorConstants.ONE_APP_COLOR,
                backgroundGradientTo: '#044675',
                color: (opacity = 1) => `rgba(255, 255, 255, ${opacity})`,
                style: {
                  borderRadius: 16
                }
              }}
              bezier
              style={{
                marginVertical: 8,
                borderRadius: 16
              }}
            />
          </View>

my data:
chartAnswered:[
      { name: 'Italy', population: Math.random() * 10000 },
      { name: 'Mexico', population: Math.random() * 10000 },
      { name: 'France', population: Math.random() * 10000 },
      { name: 'Argentina', population: Math.random() * 10000 },
      { name: 'Japan', population: Math.random() * 10000 }
    ]

my package.json:
  "dependencies": {
    "jalali-moment": "^3.2.1",
    "moment": "^2.22.2",
    "native-base": "^2.6.1",
    "paths-js": "^0.4.7",
    "react": "16.3.1",
    "react-native": "0.55.4",
    "react-native-chart-kit": "^1.1.5",
    "react-native-contacts": "^2.2.2",
    "react-native-document-picker": "^2.1.0",
    "react-native-fs": "^2.11.15",
    "react-native-image-resizer": "^1.0.0",
    "react-native-material-bottom-navigation": "^1.0.0",
    "react-native-progress-bar-animated": "^1.0.6",
    "react-native-slider": "^0.11.0",
    "react-native-svg": "^6.5.2",
    "react-native-vector-icons": "^4.6.0",
    "react-navigation": "^2.8.0",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0",
    "watchman": "^1.0.0"
  },

Same

react-native link react-native-svg is ok

any solution?

In my case, the graph was trying to load the data before being received by the state.
So I did the validation.
Example:
{
          // eslint-disable-next-line react/destructuring-assignment
          this.state.dataGrafico.length > 0 && (
          <View style={styles.boxPcn}>
            <Text style={styles.title02}>Seu progresso no PCN</Text>
            <LineChart
              data={{
                labels: this.state.labelGrafico,
                datasets: [{
                  data: this.state.dataGrafico,
                }],
              }}
              width={Dimensions.get('window').width - 40} // from react-native
              height={220}
              chartConfig={{
                backgroundColor: '#fff',
                backgroundGradientFrom: '#fff',
                backgroundGradientTo: '#fff',
                color: (opacity = 1) => `rgba(0, 0, 0, ${opacity})`,
                style: {
                  borderRadius: 16,
                },
              }}
              bezier
              style={styles.boxChart}
            />
          </View>
          )
        }

I have the same issue on andorid :( Any solution?

on android the react-native-chart-kit was trying to use the data before it was properly set by the state.
a simple solution is to add an indicator until the data is properly loaded .
hint (this.setstate({isloading:false,data:[] }))
OR
use const data =[]   in your render method and pass this data directly to the chart without using state

you must add value of array first befor you load the data from API. example data = [0]


Excel random FillForegroundXSSFColor evertime it's called

Hi,
During development I need to analyze Excel file and find proper types of information. Excel is really huge, but well formatted. To achieve my goals I have to check if data label is in proper "section". Sections are divided by different styles.
When using NPOI I have a small methods that checks if fill is not white, which means, that I can stop processing rows:
private bool IsOtherRow(ICell cell)
{
    if (cell?.CellStyle.FillPattern != FillPattern.SolidForeground) return false;

    XSSFCellStyle style = cell?.CellStyle as XSSFCellStyle;
    XSSFColor fillColor = style.FillForegroundXSSFColor;

    return fillColor?.ARGBHex != "FFFFFFFF";
}

Pretty easy and straightforward. But everytime I check for ARGBHex or RGB fields, values are different.

Where actural color is #D9D9D9

(Cell E33)

What is happening behind the scenes? :)
How can I make sure, that color taken from code is exactly the same as in Excel GUI?
This is really a blocker, so any help would be appreciated.
Thanks

Are you talking about the cellstyle are always different while getting the same cell E33? This doesn't make much sense to me. Is it possible you are iterating different cell styles? then the fillforeground are different?


Show a warning when an alchemy key is necessary for Iron to work properly

In this change, we add a notice when the user uses a network supported by Alchemy but doesn't have an Alchemy key setup. This should make it straightforward for users that they do not see balances, txs, etc., because the key is not set.
Extra:

Added the dependency notistack to handle stacking notices on top of each other. This also allowed the removal of the style overrides for Alerts in the theme.
Because of notistack, I refactored the existing notice for new versions to be a hook instead of a component.
Added a notification when the settings are changed so the UI can react to it.
Added a command to check if a chain is supported by alchemy.

@naps62 ended up changing many things during the refactor, let me know what you think

ty @naps62 🙏 I'm going to finish this up now that I'm back from vacations

@naps62 I rebased the PR with main and did a couple of changes.
Now, about the discussion we had a few weeks ago, the issue with this is that we are checking for the existence of an alchemy key, but we don't know if the key is working. Sure, we can add a validation in the form to ensure the key works before we save it to storage, but if someone deletes their key in Alchemy's dashboard, we will never be informed that there's an error. I still think this change makes sense, but we may also need some general-purpose mechanism to notify the user of errors in the background, for instance, during sync.

@gabrielpoca I agree. sounds like we also need to discuss how that would work though
I would focus on this individual notification for now, until we understand how best to handle these more generally on the frontend (maybe during the retreat we can discuss it?)

@naps62 👍 shall we merge this then?


Make options consistent across CLI sub-commands

Category
Other
Describe the feature you'd like to request
The CLI subcommands do not consistently use the same long and short names for options.
For example, most commands take a Cedar policy file as input using the --policies and -p options.

authorize accepts only the long option --policies for the policies file. The short option -p specifies the principal.
evaluate does not accept a policy file, instead reading expression from an argument, but does use the short option -p for the principal.
validate accepts the long option --policies or the short options -p for policies.
check-parse accepts --policies, -p, or policy text from standard input.
link accepts --policies-file or -p.
format accepts the policies file as a positional argument after any other options, or from standard input if no positional arguments are provided.

There may be other ways that the sub-commands are inconsistent.

The format inconsistency still isn't resolved, and check-parse reads from stdin unlike most other.

@john-h-kastner-aws That's what I was hoping to bring up discussion of, do you have an idea of how it should be fixed? Take away positional and make it by argument only for format? Remove standard input from the ones that use it or add standard input to the ones that don't? Thanks.

IMO the stdin option only makes sense when there's only one input file (check-parse and format), so we can justify leaving these as these as reading from stdin when there's not explicit policy file.
If we make format use -p and --policies instead of a positional argument, then I think we can call it good.


Facade with magic methods not generating methods

So i have a object under a facade with @method comments, that are "overloaded" with __call functionality, and they are not copied over to the _ide_helper.php. As i see no PHPDoc blocks that precede a class are copied over. Is this intended?
A small workaround i found is to put  @method comments into the facade class, but that's not sufficient enough too as the autocompletion still does not work for the first level of function calls.
Is there a way to have those magic methods generated, or at least the PHPDoc blocks added to _ide_helper.php?

Some of the past issues recommend replacing extends Model in your models with extends \Eloquent. There's a whole discussion in the Laravel framework repo about this and a bit here in older issues. I'm not sure what the status on a solution with less manual tweaking is though.

It's not about the models, i have a custom package created. Sorry not to mention that.

@barryvdh IMHO this can be closed because in the meantime the phpdoc @method are copied over to the _ide_helper.php file, I just checked it :}


Example networkpolicy example was wrong

Ingress.from[] takes in podSelector arrays not a map

I signed it!

See also #832

@saad-ali Another one.

@bprashanth Can you take a look at this?

LGTM , you have conflicts

Seems like they updated the docs
On Jul 15, 2016 9:07 PM, "Prashanth B"<EMAIL_ADDRESS>wrote:

LGTM , you have conflicts
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes.github.io/pull/833#issuecomment-233106854,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFkbZmn3u8yHqL-pDFKobwsKgsmcrOhaks5qWFkfgaJpZM4JLtfV
.

cool thanks for the pr anyway, please reopen if it needs to go in


API changed

just created a fix for that. no longer using the vlaanderen api. fetching all required info straight from recycleapp. should be ok again. apologies for the delay.

Hi,
Thank you for opening an issue.
It appears that the API has indeed changes. I will create a fix right away.

Commit 0469616 should have fixed the issue. Please reopen if you're still experiencing issues.


Enabled Windows build with CMake and GCC.

Hi.
I had a problem linking output binaries on Windows using GCC 7.1 (installed from Scoop), CMake 3.9 (from Scoop) and zlib 1.2.3 (from GnuWin32 package). I had to explicitly link iconv in order to build it.
Kind regards,
Vladimir.

Thanks, looks simple enough! But... would you be able to setup an automated build on https://www.appveyor.com/ for this? ;)

Lol I accidentally installed scoop on AppVeyor build container. I think I will do it.

I made another fix to enable build on GCC 7.2 (and with AppVeyor). It was packaged in slightly different way.
Settings are as follows. Initialization script (PowerShell):
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
scoop bucket add user https://github.com/excitoon/scoop-user.git
scoop install cmake
scoop install gcc
scoop install user/make # repository in main repo is broken
scoop install user/zlib-dev

Build script (PowerShell):
mkdir bin
cd bin
cmake ../ -DBUILD_STATIC=ON -DUSE_OUR_OWN_MD5=ON -G "Unix Makefiles"
make

I never had experience with AppVeyor before, looks like it is awesome tool.

https://ci.appveyor.com/project/excitoon/unshield

What does your AppVeyor script look like? So I can use it on my account.

Thank you very much!


fix incorrect key checking in default-props branch

use key in defaultProps instead of defaultProps[key] to avoid evaluate condition as true for falsy value

I'm using that branch and being hit by this bug I think

Thanks.
This was included in this PR.


Create a mechanism to limit the requests to the online tools

Programmatic access could put a substantial load on the service if multiple requests are made with high frequency.
Suggest an enhancement to govern the rate at which requests from the same user and/or IP address is made.
This could also apply to the web access.

@goneall @pombredanne
I shall start working on this.

@rtgdk @goneall @pombredanne
If that is fine by you; I would like to use this: https://django-ratelimit.readthedocs.io/en/stable/

@goneall @pombredanne
I have sumitted a PR for this issue.
The license sumission is reduced to 100 per hour by a particular user.
When the limit is reached, the modal below is shown.

@goneall @rtgdk @pombredanne
I have updated the PR of this issue.


use the expected_dk metric on each step of GET queries, not just storing nodes

Currently we only use the expected_dk metric after finishing the GET query to find out where to store data.
However there is a possibility that the first response to a GET query contain nodes that are all Sybil nodes and all closer to the target than any other nodes. Because the way the query works, we will only consult these Sybil nodes, and thus the responders ClosestNodes, will all be Sybil.
Usually nothing will be affected by this, since most of the time expected_dk is at the 20th node anyway.
But when the current dht size estimation is 0 because there are no previous queries, we might take too many nodes to query in parallel at once, that might cause too many packet to be dropped by our router. So we need to check https://github.com/pubky/mainline/issues/38

The only way this could happen is if your routing table is poisoned ... maybe we can make some checks for keeping buckets diverse ID and IPs wise ... but not in the query.


Fix expanded output ports disconnection on updating in visual shader

Fix https://github.com/godotengine/godot/issues/94865

Thanks!


[devops:bot] update deps in nix/sources.json (from: rhino-core@413012e

update nix refernces for rhino-core and|or nixpkgs to match https://github.com/rhinofi/rhino-core/blob/413012e79bd7161cab0aef11847970b02ea08554/nix/sources.json (branch: dev)

superseded by #129


Logic: Added multiple keywords that link to the same command.

Difficulty: Tried to change the COMMAND_WORD to a string array and add all the relevant key words but broke the parser.
Solution: Made an alternative COMMAND_WORDS for the string array and redid the parser to search the array for the command word.
Difficulty: Help message was not updated with the various keywords.
Solution 1 (failed) : Use COMMAND_WORD = concatenate(COMMAND_WORDS) with "-OR-" in between, ended up breaking many tests
Solution 2: revert COMMAND_WORD to the original word and use the concatenate function explicitly in each command message

Coverage increased (+0.3%) to 92.455% when pulling 3533a7c9ad74f36221bf0365c1023e1e6df20d89 on Juxarius:Logic_Try into 3768c505c06f2ae64a3a8743ee91f88e87ed344d on T13-B1-JAROP:master.


Rotation transformation: examples and refactoring

As it is, examples of the rotation transform don't work properly because of the normalising the canvas to (0, 0) from the API.
The rotation operation still considers the origin to be (250, 250) (with default canvas dimensions of 500, 500), and as a result the returned shapes often fly out of canvas.
We should fix it.
Moreover, I think the current code is not very easily understandable to me. I suggest refactoring it to use a conversion from cartesian coordinates to polar coordinates, then rotate, then convert back to cartesian coordinates. This would be simpler to understand. Alternatively, adding some comments might also be helpful.

Can I work on this?

@nangahamandine sure, please go ahead!


Getting Unnecessary error when using Redis as Cache Driver in laravel 5.2

I got a provisioned server in forge and local
im using phpredis branch php7 then added your package...
everything is working fine using the facade
$redis = PHPRedis::connection();
$redis->set('key', 'value');
return $redis->get('key');

even as Pub/Sub works great...
But Majority that is Out of the Box from laravel
i believe there is also an issue in laravel 4.2...
that the cache driver is not being recognize properly...
I tried to install it in 5.2 then run php artisan make:auth
which uses ThrottleLogin Trait, which uses RateLimiter Class ,
that uses CacheRepository...
Even if i Login correctly im can get an error.
Too many login attempts. Please try again in -1458033818 seconds.
The problem occurs when the has method is being called...
$this->hasTooManyLoginAttempts($request)
if i dive into this it is calling this piece of code
if ($this->cache->has($key.':lockout')) {
            return true;
        }

and is returning false.... instead of null
so it triggers the method that is it true...
so when this method is called
public function availableIn($key)
    {
        return $this->cache->get($key.':lockout') - time();
    }

literally the get has nothing to get causing -negative time...
I hope you can fix this bug thanks

The only thing i did to fix this is use predis/predis package then still use your package,
but i dont know if im still using the phpredis .. cause it is already installed in my system
cause when i try to use php artisan tinker
im getting Predis\Client Object ....
Im not getting a bool value of true...
which is the default before when using the facade with only your package...
please check on this, you got a really good package...

I have the same error "Too many login attempts. Please try again in -1458033818 seconds." when using this package...

I am using https://github.com/tillkruss/laravel-phpredis now, seems to work correctly with cache also


feat: allow passing custom quotes to the component

closes #14

Well, hello there! 👋
Thanks so much for this! 🚀
I've been on a mad one today so will take a look tomorrow!
Thanks again!

Love it! Thanks a lot!
🚀


Hello-World

Azure documentation issue guidance
Thanks for opening an issue in the Azure technical documentation repository.
We use GitHub issues as the primary channel for customer and community feedback about the Azure documentation.
Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/forums/34192--general-feedback.

@UnsnappedKhan8 Thank you for your feedback! Since this channel is for driving improvements towards MS Docs, could you provide the URL of the specific documentation that your feedback is applicable to? That way, we are able to make sure your feedback is addressed by the right team.

@UnsnappedKhan8 As with your other issue, I've mapped this thread to your PR. I'm going to proceed to close this thread.

PR?

Pull request.


Sendmany Bitcoin transaction is ignored by coins.rb daemon in case it contains recipient address which doesn't belong to Peatio

Example deposit:
{:id=>"cef78e917a5e920ea3f458688940eda9462d47f84631030a09e2a2174d3cfb6f", :confirmations=>3, :entries=>[{:amount=>0.55998878e0, :address=>"2N5hGKgd4HvXEpUCvMqwgZNSAFU5BQhpZSw"}, {:amount=>0.9e-1, :address=>"2NExB34JEV7VqphrurPciYemZDsveP9MPxo"}], :received_at=>2018-05-04 10:04:10 UTC}

Fixed via #1049.


Workspace no-show in specific scenario

In this sequence of events, the workspace display does not show:

Host and pewpew turned off (and connected)
Turn on pewpew
Turn on host

Workaround: reboot pewpew.

Question is: is that something we might be able to fix or is it something we need to document as a limitation of the system.

Not sure ... Might be anything from trivial to extremely hard :)
Just wanted it put down somewhere while I remembered the reproduction steps...


Module Tested on OneUI 5.0 ✅

Module working well with S22Ultra (OneUI 5.0 - S908B) except Telegram app
[tested on: GBoard, WhatsApp, Facebook Messenger, Snapchat, Instagram]

POCO X3 Pro Android 13 (CrDroid custom rom)
Works super fine on all applications and all emojis are fine except this one: 🫡


Tag paging is non functional for Gelbooru source

All pages for a tag using gelbooru as a source display only the first page of images.
Version: 4.1.7

me also. more precisely, the number of total pages and number of images are shown as "?"

Ok, this should be fixed now. I did not want to make a new version number for such a quick fix so it's still labelled as 4.1.7 (I uploaded a new installer in the place of the previous one). :smile:
The images/page limit is forced to 42 since you cannot customize it outside the API (which they disabled for now). Make sure to also set it to this value when batch downloading or it'll skip images.


Please tag a release

For restic, we'll switch to dep shortly, and it would be very helpful if you could tag a release. Thanks!
https://dave.cheney.net/2016/06/24/gophers-please-tag-your-releases

Fixed

Thanks! I'm sorry to bother you again, but may I ask you to consider using semantic versioning? The tag you've used (v1.0) is not compatible as far as I can see. The equivalent would be v1.0.0. Would that be possible?

@fd0 Thank you for your note. I didn't even know that it's incompatible with semver...
Fixed!

Awesome, thanks!


Mpv plugin bookmark 20180320.lua

mpv-plugin-bookmark
mpv plugin for recording last play in current playing folder and you can resume to play
this plugin will also load the playlist from the playing folder automatically
Things done

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

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

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

@jfrankenau Can you review this PR?

What is the difference between the upstream light and master branch? The former one is the default one. Also please squash those commits.

stalled please reopen, if you wish to continue working on this.


invalid url in 'InfluxQLNode' page

URL for relevant page?
http://docs.influxdata.com/kapacitor/v1.5/nodes/influx_q_l_node/
What products and version are you using?
Kapacitor v1.5
Where did you look before opening the issue?
http://docs.influxdata.com/kapacitor/v1.5/nodes/influx_q_l_node/
url for 'InfluxQL functions'  seen on this page is 'http://localhost:1313/influxdb/v1.5/query_language/functions/'
perhaps someone forgot to change it back before releasing this page

Nice catch. Thanks!


Thanks for creating

Hi @amithkoujalgi ,
Thanks for creating this library! I've just implemented it in an experimental project for our Open Source library, Datafaker.net.
You can find the repo here should you be interested: https://github.com/datafaker-net/datafaker-experimental/tree/main/ollama-api
Cheers,
Erik

Hi @bodiam,
Thank you for reaching out and for implementing Ollama4j in your project for Datafaker.net! It's exciting to see the library being used in such innovative ways.
I've had a look at the Datafaker library, and it appears to be a valuable tool for generating fake data. Combining it with Ollama4j for fake data generation is a brilliant idea. Great work!
I've added Datafaker to the list of Ollama4j usages/implementations here: https://github.com/amithkoujalgi/ollama4j?tab=readme-ov-file#whos-using-ollama4j 😃
Best regards,
Amith


[native] Establish a libdxvk ABI

This is mostly a follow-up for #3321, #3322, and #3323. It's also an attempt to document the occasional one-off discussions Joshua and I have had re: making WSI work long-term. That said, this should not be considered a definitive document for how this will be implemented until all maintainers have formally approved it!
Where we're at
Currently, dxvk-native acts pretty much like Win32 DXGI would, except we just treat the HWND window handle as an SDL_Window* instead and implement the rest with a custom WSI backend in dxvk. This has worked fine up until now, but will fall apart pretty soon:

GLFW and None WSI implementations cannot use the same fields with the same runtime library
SDL3 will eventually replace SDL2, and will hit the same problems as GLFW and None

What we can't do
My first gut reaction would have been to turn the HWND into a public structure, similar to that of SDL_SysWMInfo, where applications could inform dxvk of which WSI driver to use...
/* Don't get too excited, remember, this is the BAD example */

#define DXVK_WSI_VERSION 0

typedef enum
{
    DXVK_WSI_SDL2, /* Default */
    DXVK_WSI_SDL3,
    DXVK_WSI_GLFW,
    DXVK_WSI_NONE
} DXVKWSIPlatform;

typedef struct DXVKWindow
{
    uint32_t version; /* Application sets this to DXVK_WSI_VERSION */
    DXVKWSIPlatform platform;

    union
    {
#if DXVK_HAS_WSI_SDL2
        struct
        {
            SDL_Window *window;
        } sdl2;
#endif /* DXVK_HAS_WSI_SDL2 */
#if DXVK_HAS_WSI_SDL3
        struct
        {
            SDL_Window *window;
            /* Maybe something else...? */
        } sdl3;
#endif
        /* etc... */
        void* padding[16]; /* Up to 16 pointers are supported */
    };
} DXVKWindow;

... but this doesn't work because of one specific question: When does the WSI initialize? Unlike SDL, which has a clear startup location at SDL_Init, D3D has a handful of calls that could be the first. There's each D3D version's CreateDevice, combined with the possibility of passing a window handle or not (usually just for feature level testing, but still), as well as CreateDXGIFactory1. From what I understand, a DXGI factory is made when one isn't available in the CreateDevice function, so I'm inclined to lean towards doing this in CreateDXGIFactory, but that of course doesn't have any parameters with which we could pass WSI information, and there are just way too many assumptions that have to be made for it to determine which WSI it should use.
The best option we have for a custom CreateDXGIFactory without adding new functions would be to expose custom interfaces, so one could do this...
/* Sorry, still in Bad Example Land! */

CreateDXGIFactory1(
#ifdef DXVK_NATIVE
	&D3D_IID_IDXGIFactoryDXVK_SDL2,
#else
	&D3D_IID_IDXGIFactory1,
#endif
	&factory
);

... but then there's the question of just how many backends dxvk would actually need to support. This adds a lot of maintenance burden to the project that doesn't really have anything to do with implementing Direct3D over Vulkan, so I fully understand why this would be undesirable.
There's also one last detail, which is that libdxvk is technically out in the wild already, via Source 1 and FNA's Linux D3D11 Alpha. While not a huge deal for myself and Joshua to just update to the new ABI, there might still be some hesitation to break the ABIs on the existing sofiles, so no matter what we do we're kind of stuck with the current SDL2 path with the given sonames.
What we can try
The above work led me to one last idea, which was to offload WSI responsibility entirely to applications, so instead of there being D3D_IID_IDXGIFactoryDXVK_SDL2, D3D_IID_IDXGIFactoryDXVK_SDL3, etc, we'd just have D3D_IID_IDXGIFactoryDXVK:
/* Okay, good-ish examples begin */

#define DXVK_WSI_VERSION 0

typedef struct DXVKWSI
{
    uint32_t version; /* Application sets this to DXVK_WSI_VERSION */
    /* Function pointers for junk like mode enumeration and dxvk's current WSI responsibilities */
} DXVKWSI;

typedef struct IDXGIFactoryDXVKVtbl
{
    /* IDXGIFactory7 declarations or whatever */

    HRESULT (STDMETHODCALLTYPE *SetWSI)(DXVKWSI *wsi);
} IDXGIFactoryDXVKVtbl;

Then, instead of having the WSI be in dxvk, we would instead just have single-file headers like "dxvk_sdl3.h" for platforms that are widely re-used, which would fill in this function table for developers automatically.
As for the current ABI, there are two things we can do to keep things as stable as possible:
First, establish a versioning scheme, so that new applications 100% always link to a new libdxvk_dxgi1.so.0, for example. Packagers will probably want this anyway, so this seems like a good time to get that over with. Second, we can actually keep the current SDL2 path as-is, and when applications do not use the DXVK interface, it will be assumed that the application intends to use DXVK's existing SDL2 path, as shipping applications currently do. Maybe some day that functionality can be deprecated, but for now this seems like the best route for keeping as many applications happy as possible.

This is all super high-level, and Joshua and I haven't dug into this a whole lot (despite the wall of text suggesting otherwise), but I'm happy to get into the gritty details to make this all work!

What exactly would this look like from an app PoV?
If we have an interface that the app needs to query from the DXGI factory then something like D3D11CreateDeviceAndSwapChain with a NULL adapter basically cannot work with anything other than the default path, so I'm not entrely sure if I understand the proposal correctly.

I've made a branch of FNA3D that demonstrates what a port might look like. This demonstrates the changes needed for both the NULL and non-NULL adapter paths, and does so complete with dynamic loading of the D3D/DXGI libraries:
https://github.com/FNA-XNA/FNA3D/commit/cc09a34d8708789bbb56c6924f759517849de198

Second revision of the port example: https://github.com/FNA-XNA/FNA3D/commit/242c0985e77112348a518dce2c10c71c015d8bb3
The main change is that I remembered that QueryInterface is a thing, so instead of having to construct a special DXGIFactory explicitly we only have to create any DXGIFactory of our choosing. Then, the single-file headers can call QueryInterface with a DXVK-specific IID that exposes the SetWSI() call.
So, with the new design in mind:

Applications must create the DXGIFactory manually (does not need to be a special interface)
Applications are strongly encouraged to statically link a single-file header that hooks up the WSI library of their choosing, and call dxvkInitWSI(factory).
If SetWSI is not explicitly called, it will be assumed that SDL2 is the WSI

This has the added benefit of working nicely with IDirect3D9, which DXVK can implement with the exact same interface; instead of a factory the application would pass the IDirect3D9 pointer and the code is otherwise identical.

Apologies for repeat posting, but did a third revision since it wasn't much work to fake an IDxvkWsi interface to show the idea off a little better:
https://github.com/FNA-XNA/FNA3D/commit/f86b7023832d7e0bac2584b9c36e2b6caad1cf0a

Slapped together a draft of the documentation:
Integrating DXVK in a Linux Build
DXVK provides its own DirectX headers that allow for building existing client
code with as few changes as possible - this includes:

d3d9.h, d3d11.h, dxgi.h, etc.
A minimal windows.h implementation (basic typedefs, macros, etc.)
dxvk_wsi.h, used for custom Window System Integration

As-is, your client should build without changing any Direct3D code. You may
have to replace Win32 API calls for non-Win32 platforms (for example, DXVK does
not implement calls like MonitorFromWindow), so you are encouraged to design
your rendering abstraction layer to consider D3D as a multiplatform renderer,
rather than just a Windows renderer.
Window System Integration
Because non-Windows platforms will not be using the expected HWND window
handle, DXVK is designed to support custom window system APIs using the HWND
as a multiplatform opaque pointer. For example, applications can instead pass
an SDL_Window* pointer where appropriate, and DXVK will be able to process the
information correctly.
By default, DXVK assumes that native applications will be using SDL 2.0 as the
windowing API. However, it is possible to use any API of your choice by
providing a custom WSI function table to either the IDXGIFactory or the
IDirect3D9 handle. You can find the API in dxvk_wsi.h.
As for example implementastions, the community has written a series of
single-file headers that allow quick integration of a number of popular APIs,
including SDL, GLFW, and a headless "None" WSI. These headers can be found
here.
WSI Example
Consider the following D3D call:
/* Test to see if we meet the system requirements */
HRESULT res = D3D11CreateDevice(
	NULL,
	D3D_DRIVER_TYPE_HARDWARE,
	NULL,
	D3D11_CREATE_DEVICE_BGRA_SUPPORT,
	levels,
	ARRAYSIZE(levels),
	D3D11_SDK_VERSION,
	NULL,
	NULL,
	NULL
);
CHECK_HRESULT(res) /* Pretend this actually means something */

By default, this creates a DXGI Factory in the background - as a result, this
assumes that SDL2 is used for window management. To explicitly set a WSI, an
IDXGIAdapter must be passed to this function, and therefore you must
explicitly create your own IDXGIFactory. If you already do this, or you're using
D3D9 (and thus create an IDirect3D9 instead), you can skip the following
example.
The above example will now look something like this:
HRESULT res;
IDXGIFactory1 *factory;
IDXGIAdapter1 *adapter;

/* Create the adapter manually so we can set WSI for non-Win32 */
res = CreateDXGIFactory1(&D3D_IID_IDXGIFactory2, &factory);
CHECK_HRESULT(res)

/* Feel free to use IDXGIFactory6_EnumAdapterByGpuPreference instead... */
res = IDXGIFactory2_EnumAdapters1((IDXGIFactory2*) factory, 0, &adapter);
CHECK_HRESULT(res)

/* Test to see if we meet the system requirements */
res = D3D11CreateDevice(
	(IDXGIAdapter*) adapter, /* This is the only change for this call!  */
IDXGIAdapter1_Release(adapter);
IDXGIFactory1_Release(factory);

This sets up the application to change the WSI, but we have not done it just
yet! For this example we will be explicitly setting SDL2 as our WSI. The
single-file headers are designed to work like this:
#define DXVK_SDL2_IMPL /* Define this in exactly one build unit */
#include "dxvk_sdl2.h"

/* Later... */

void* yourFactoryOrIDirect3D9;
HRESULT res = dxvkInitWSI(yourFactoryOrIDirect3D9);
CHECK_HRESULT(res)

As a result, the final example will look like this:
HRESULT res;
IDXGIFactory1 *factory;
IDXGIAdapter1 *adapter;

/* Create the adapter manually so we can set WSI for non-Win32 */
res = CreateDXGIFactory1(&D3D_IID_IDXGIFactory2, &factory);
CHECK_HRESULT(res)

/* For non-Win32, set the custom WSI */
#ifndef _WIN32
res = dxvkInitWSI(factory);
CHECK_HRESULT(res)
#endif /* _WIN32 */

/* Feel free to use IDXGIFactory6_EnumAdapterByGpuPreference instead... */
res = IDXGIFactory2_EnumAdapters1((IDXGIFactory2*) factory, 0, &adapter);
CHECK_HRESULT(res)

/* Test to see if we meet the system requirements */
res = D3D11CreateDevice(
	(IDXGIAdapter*) adapter,
	D3D_DRIVER_TYPE_HARDWARE,
	NULL,
	D3D11_CREATE_DEVICE_BGRA_SUPPORT,
	levels,
	ARRAYSIZE(levels),
	D3D11_SDK_VERSION,
	NULL,
	NULL,
	NULL
);
CHECK_HRESULT(res)

/* Don't forget to clean up! */
IDXGIAdapter1_Release(adapter);
IDXGIFactory1_Release(factory);

Note that the WSI does not persist statically, you will need to set the WSI for
each factory you create!
From then on, you can treat the HWND handle as the type of your choice - for
example, an SDL application using D3D11 might have something like this:
HWND GetWindowForDXGI(SDL_Window *window)
{
#ifndef _WIN32
	/* DXVK accepts the SDL_Window* directly */
	return (HWND) window;
#else
	SDL_SysWMinfo info;
	SDL_VERSION(&info.version);
	SDL_GetWindowWMInfo(window, &info);
	return info.info.win.window;
#endif
}

...

DXGI_SWAP_CHAIN_DESC swapchainDesc;
swapchainDesc.OutputWindow = GetWindowForDXGI(sdlWindow);

I was thinking about the "wsi interface provided by the app" idea, but I have some gripes with that approach.
The major one being that if there are any subtle bugs in that wsi interface implementation and a game ships that, we can't fix it from the DXVK side.
There are enough broken linux native ports (especially around windowing...) so I think we definitely need for the implementations to be resident in DXVK (but we can still use an interface internally).

I imagine we would do something like this and converge the stuff into an interface per WSI:
  class IDXVKWsi {

  public:

    /*********************
     * Monitor Interface
     *********************/

    /**
      * \brief Default monitor
      *
      * \returns The default monitor
      */
    virtual HMONITOR GetDefaultMonitor() = 0;

    /**
      * \brief Enumerators monitors on the system
      *
      * \returns The monitor of given index
      */
    virtual HMONITOR EnumMonitors(uint32_t index) = 0;

    /**
      * \brief Enumerators monitors on the system
      * \param [in] adapterLUID array of adapters' LUIDs
      * \param [in] numLUIDs adapterLUID array size (0 for all monitors)
      * \param [in] index Monitor index within enumeration
      *
      * \returns The monitor of given index
      */
    virtual HMONITOR EnumMonitors(const LUID *adapterLUID[], uint32_t numLUIDs, uint32_t index) = 0;

    /**
      * \brief Get the GDI name of a HMONITOR
      *
      * Get the GDI Device Name of a HMONITOR to
      * return to the end user.
      *
      * This typically looks like \.\\DISPLAY1
      * and has a maximum length of 32 chars.
      *
      * \param [in] hMonitor The monitor
      * \param [out] Name The GDI display name
      * \returns \c true on success, \c false if an error occured
      */
    virtual bool GetDisplayName(
            HMONITOR         hMonitor,
            WCHAR            (&Name)[32]) = 0;

    /**
      * \brief Get the encompassing coords of a monitor
      */
    virtual bool GetDesktopCoordinates(
            HMONITOR         hMonitor,
            RECT*            pRect) = 0;

    /**
      * \brief Get the nth display mode
      *
      * \param [in] hMonitor The monitor
      * \param [in] modeNumber The nth mode
      * \param [out] pMode The resultant mode
      * \returns \c true on success, \c false if the mode could not be found
      */
    virtual bool GetDisplayMode(
            HMONITOR         hMonitor,
            uint32_t         modeNumber,
            WsiMode*         pMode) = 0;

    /**
      * \brief Get the current display mode
      *
      * This is the display mode right now.
      *
      * \param [in] hMonitor The monitor
      * \param [out] pMode The resultant mode
      * \returns \c true on success, \c false on failure
      */
    virtual bool GetCurrentDisplayMode(
            HMONITOR         hMonitor,
            WsiMode*         pMode) = 0;

    /**
      * \brief Get the current display mode
      *
      * This is the display mode of the user's
      * default desktop.
      *
      * \param [in] hMonitor The monitor
      * \param [out] pMode The resultant mode
      * \returns \c true on success, \c false on failure
      */
    virtual bool GetDesktopDisplayMode(
            HMONITOR         hMonitor,
            WsiMode*         pMode) = 0;

    /**
      * \brief Get the EDID of a monitor
      *
      * Helper function to grab the EDID of a monitor.
      * This is needed to get the HDR static metadata + colorimetry
      * info of a display for exposing HDR.
      *
      * \param [in] hMonitor The monitor
      * \returns \c EDID if successful, an empty vector if failure.
      */
    virtual WsiEdidData GetMonitorEdid(HMONITOR hMonitor) = 0;

    /**
      * \brief Get the size of a monitor
      *
      * Helper function to grab the size of a monitor
      * using getDesktopCoordinates to mirror the window code.
      */
    inline void GetMonitorClientSize(
            HMONITOR                hMonitor,
            UINT*                   pWidth,
            UINT*                   pHeight) {
      RECT rect = { };
      getDesktopCoordinates(hMonitor, &rect);

      if (pWidth)
        *pWidth = rect.right - rect.left;

      if (pHeight)
        *pHeight = rect.bottom - rect.top;
    }

    /*********************
     * Window Interface
     *********************/

    /**
      * \brief The size of the window
      *
      * \param [in] hWindow The window
      * \param [out] pWidth The width (optional)
      * \param [out] pHeight The height (optional)
      */
    virtual void GetWindowSize(
            HWND      hWindow,
            uint32_t* pWidth,
            uint32_t* pWeight) = 0;

    /**
      * \brief Resize a window
      *
      * \param [in] hWindow The window
      * \param [in] pState The swapchain's window state
      * \param [in] width The new width
      * \param [in] height The new height
      */
    virtual void ResizeWindow(
            HWND             hWindow,
            DxvkWindowState* pState,
            uint32_t         width,
            uint32_t         weight) = 0;

    /**
      * \brief Sets the display mode for a window/monitor
      *
      * \param [in] hMonitor The monitor
      * \param [in] hWindow The window (may be unused on some platforms)
      * \param [in] mode The mode
      * \returns \c true on success, \c false on failure
      */
    virtual bool SetWindowMode(
            HMONITOR         hMonitor,
            HWND             hWindow,
      const WsiMode&         mode) = 0;

    /**
      * \brief Enter fullscreen mode for a window & monitor
      *
      * \param [in] hMonitor The monitor
      * \param [in] hWindow The window (may be unused on some platforms)
      * \param [in] pState The swapchain's window state
      * \param [in] modeSwitch Whether mode switching is allowed
      * \returns \c true on success, \c false on failure
      */
    virtual bool EnterFullscreenMode(
            HMONITOR         hMonitor,
            HWND             hWindow,
            DxvkWindowState* pState,
            [[maybe_unused]]
            bool             modeSwitch) = 0;

    /**
      * \brief Exit fullscreen mode for a window
      *
      * \param [in] hWindow The window
      * \param [in] pState The swapchain's window state
      * \returns \c true on success, \c false on failure
      */
    virtual bool LeaveFullscreenMode(
            HWND             hWindow,
            DxvkWindowState* pState,
            bool             restoreCoordinates) = 0;

    /**
      * \brief Restores the display mode if necessary
      *
      * \returns \c true on success, \c false on failure
      */
    virtual bool RestoreDisplayMode() = 0;

    /**
      * \brief The monitor a window is on
      *
      * \param [in] hWindow The window
      * \returns The monitor the window is on
      */
    virtual HMONITOR GetWindowMonitor(HWND hWindow) = 0;

    /**
      * \brief Is a HWND a window?
      *
      * \param [in] hWindow The window
      * \returns Is it a window?
      */
    virtual bool IsWindow(HWND hWindow) = 0;

    /**
      * \brief Update a fullscreen window's position/size
      *
      * \param [in] hMonitor The monitor
      * \param [in] hWindow The window
      * \param [in] forceTopmost Whether to force the window to become topmost again (D3D9 behaviour)
      */
    virtual void UpdateFullscreenWindow(
            HMONITOR hMonitor,
            HWND     hWindow,
            bool     forceTopmost) = 0;

    /**
      * \brief Create a surface for a window
      *
      * \param [in] hWindow The window
      * \param [in] pfnVkGetInstanceProcAddr \c vkGetInstanceProcAddr pointer
      * \param [in] instance Vulkan instance
      * \param [out] pSurface The surface
      */
    virtual VkResult CreateSurface(
            HWND                hWindow,
            PFN_vkGetInstanceProcAddr pfnVkGetInstanceProcAddr,
            VkInstance          instance,
            VkSurfaceKHR*       pSurface) = 0;

  };

That all makes sense to me, except for one thing: We could still override the vtable with patched functions if we knew of a title that used an old WSI impl and we recognized the executable name.
I'm okay with either internal or external, but wanted to throw the idea of external out there in case WSI was looking to be a maintenance burden with all these backends coming up.

I would definitely like to avoid more app profiles (especially for native linux games) going forward. :-)

@Joshua-Ashton do I understand correctly that you want the implementation of that interface to reside within DXVK but off-load the responsibility of creating an instance of that interface to the app and have some IDXVKDXGIFactorySomething::InitWindowSystem function to do so?
(all of which sounds perfectly fine to me, just want to confirm if this is what we're going for)

Yes, the mechanism for how an app will pick an interface is still a little TBD though.

Trying to itemize this task as best as I can... would this be an acceptable route to getting this done? It's less the details and more about the process itself:

[ ] native: Load SDL via dlopen instead of linking to libSDL2
[ ] native: Load glfw via dlopen instead of linking to libglfw
[ ] wsi: Refactor dxvk::wsi to IDxvkWsi, selects a WSI backend on startup
[ ] dxvk: Refactor DxvkPlatformExts to IDxvkPlatformExts, selects a platform backend on startup. Platform is determined by DXGI's active IDxvkWsi.
[ ] meson: Make dxvk/wsi backends optional. At least one backend must always exist, but all backends can exist at the same time if available.
[ ] dxgi: Expose IDxvkWsi via QueryInterface

Took the first couple steps to getting this done:

Consolidating the WSI calls to one location via #3737
Loading SDL2 dynamically via #3736

I don't have experience with glfw so it'd help a lot to find someone who knows what they're doing to make sure we're not breaking that backend (and also to implement the dlopening for it...?). Once that's done all we have to do is the refactoring to support multiple backends in one binary and that should be the MVP for establishing ABI version 0 that all applications can use. The IDxvkWsi may not necessarily need to be present right from the start, as we could probably steal from SDL's design and expose a DXVK_WSIDRIVER variable for GLFW and None to use.

First, establish a versioning scheme, so that new applications 100% always link to a new libdxvk_dxgi1.so.0, for example. Packagers will probably want this anyway, so this seems like a good time to get that over with.

To accompany a new, stable ABI, it would be good if we can resurrect something similar to #3325 and use that to provide a new, stable build-time interface.
On that PR, I wrote:

It's a bit unfortunate that one of these is dxvk_ and the other is dxvk-. I've kept the naming from the Fedora packaging for now, but I'd be very tempted to change it to dxvk_d3d9.pc, dxvk_glfw_dxgi.pc and so on, to be consistent with the library names and avoid having two subtly different name-prefixes.

and perhaps this would be a good opportunity to make that change official?

Cleaned up the wsi-dynamic branch, #3738 is the result. It should pass CI and it works on the games I've tested it with!

Took a guess at trying to establish the soname and wasn't able to get the Windows build to cooperate - the Linux/macOS conventions are fine but I don't see any way to make Meson produce the right DLL name without forcing the version numbers in. CMake does this by default so I don't really know if there's a good way to do this elsewhere... here's the patch if someone knows how to do this correctly:
diff --git a/meson.build b/meson.build
index b571729d..6f52a690 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,10 @@
 project('dxvk', ['c', 'cpp'], version : 'v2.3', meson_version : '>= 0.49', default_options : [ 'cpp_std=c++17', 'warning_level=2' ])

+dxvk_abi_version   = '0'
+dxvk_major_version = '2'
+dxvk_minor_version = '3'
+dxvk_so_version    = dxvk_abi_version + '.' + dxvk_major_version + '.' + dxvk_minor_version
+
 cpu_family = target_machine.cpu_family()
 platform   = target_machine.system()

diff --git a/src/d3d10/meson.build b/src/d3d10/meson.build
index 51db067c..b68d41b1 100644
--- a/src/d3d10/meson.build
+++ b/src/d3d10/meson.build
@@ -23,6 +23,7 @@ d3d10_core_dll = shared_library('d3d10core'+dll_ext, d3d10_core_src, d3d10_core_
   vs_module_defs      : 'd3d10core'+def_spec_ext,
   link_args           : d3d10_core_ld_args,
   link_depends        : [ d3d10_core_link_depends ],
+  version             : dxvk_so_version,
 )

 d3d10_core_dep = declare_dependency(
diff --git a/src/d3d11/meson.build b/src/d3d11/meson.build
index 9b51e6ea..1f86b00e 100644
--- a/src/d3d11/meson.build
+++ b/src/d3d11/meson.build
@@ -86,6 +86,7 @@ d3d11_dll = shared_library('d3d11'+dll_ext, dxgi_common_src + d3d11_src + d3d10_
   vs_module_defs      : 'd3d11'+def_spec_ext,
   link_args           : d3d11_ld_args,
   link_depends        : [ d3d11_link_depends ],
+  version             : dxvk_so_version,
 )

 d3d11_dep = declare_dependency(
diff --git a/src/d3d9/meson.build b/src/d3d9/meson.build
index dd6b2316..06c1a5d1 100644
--- a/src/d3d9/meson.build
+++ b/src/d3d9/meson.build
@@ -65,6 +65,7 @@ d3d9_dll = shared_library('d3d9'+dll_ext, d3d9_src, glsl_generator.process(d3d9_
   vs_module_defs      : 'd3d9'+def_spec_ext,
   link_args           : d3d9_ld_args,
   link_depends        : [ d3d9_link_depends ],
+  version             : dxvk_so_version,
 )

 d3d9_dep = declare_dependency(
diff --git a/src/dxgi/meson.build b/src/dxgi/meson.build
index a6e83b54..e293bf51 100644
--- a/src/dxgi/meson.build
+++ b/src/dxgi/meson.build
@@ -29,6 +29,7 @@ dxgi_dll = shared_library('dxgi'+dll_ext, dxgi_src, dxgi_res,
   vs_module_defs      : 'dxgi'+def_spec_ext,
   link_args           : dxgi_ld_args,
   link_depends        : [ dxgi_link_depends ],
+  version             : dxvk_so_version,
 )

 dxgi_dep = declare_dependency(

I don't see any way to make Meson produce the right DLL name

What do you consider to be the right DLL name?
What you pasted above should produce a regular file libd3d10core.so.0.2.3 plus runtime symlink libd3d10core.so.0 and development symlink libd3d10core.so on Linux, and meanwhile should produce libd3d10core-0.dll on Windows, if I'm understanding correctly. (And similar for all the other libraries.) Is that what you want?

For Linux and macOS this is correct, I don't think Windows can have those version numbers in the name - it would probably be okay if they didn't link between each other since we could always just rename them, but since they do depend on each other it means they no longer match up to Windows' official filenames for the DLLs.

Figured out a possible solution: #3743

If what you are aiming for is the situation I described above on Linux, but with an unversioned name like libd3d10core.dll (not what I described above) on Windows: then, yes, I think the only way to achieve that is to specify a version when building for Linux but leave the version unspecified when building for Windows, similar to #3743.

Spent some time getting Fedora's dxvk-native package updated to 2.3, to see if anything new had come up since 1.9 that packagers would care about: https://src.fedoraproject.org/rpms/dxvk-native/tree/rawhide
Thankfully the move to submodules actually made it a bit easier, though the directx header copies will probably raise an eyebrow or two. It's not wildly different compared to before though, so ¯_(ツ)_/¯
Aside from that, #3325 getting finished should make packaging this as straightforward as possible. Preemptively rebasing on #3738 and #3743 could help verify this.

@flibitijibibo: feel free to take over #3325 if it would be useful to you, I'm unlikely to have much time to work on it any time soon.

#3834 reworks #3325, and I can confirm both Windows and Linux builds work as intended with the new changes.

All known issues have been resolved as of the latest head revision! Now's a great time for packagers to try everything out give feedback in case there's anything we missed.

I tried packaging DXVK for Debian and the Steam Runtime, and didn't notice any remaining showstopper issues with the libraries. #4025 should be resolved at some point, but isn't a blocker.


Land-sea mask use, threshold

Hi,
I was wondering, if there is any chance to create a land-sea mask over certain threshold in the preprocessor? For example, mask out the cells with the land fraction under 50%?
If I understand it correctly, the current feature
mask_landsea:
mask_out: sea
fx_variables: [{'short_name': 'sftlf', 'exp': 'piControl'}]
will just mask out only  sea cells, right?
Or such a custom masking should be done in a diagnostic?
P.S. I'm planning to create a python diagnostic, if it is relevant.

Hi @malininae ,
You're right, the mask_landsea preprocessor masks out any cells where the majority (>50%) is either land or sea.
There is also a mask_above_threshold function, but that is directly applied to a cube itself, rather than to other cubes like you would want. Maybe you could use this in your diagnostic script though (also see here, and maybe take inspiration from _apply_mask).
Let me know if this is sufficient for you, or whether this is really blocking your application.

Hello @Peter9192 ,
Thank you for your answer! So the mask_out: sea will mask the the cells, which are covered > 50 % with sea and not 100%? Then it is exactly what I was looking for :+1: :) Sorry, should have read the source code more attentively.

Great! I'll close this issue then :+1:


Lint redundant explicit activation events in package.json

Following the addition of implicit activation events in the November release, we'd like to provide lint warnings via the extension-editing extension when an extension declares activation events which are already implied by its declared contributions.

cc @jrieken as a heads up--we previously discussed this in https://github.com/microsoft/vscode/pull/166485 and at the time agreed that a simple warning for the reserved/internal onNotebookSerializer event was sufficient. We've since updated the docs and extension samples to mention that you don't need to explicitly list many events anymore. In discussion with Kai, the next step to round out this work and make extension authors aware of the new behavior is to provide lint warnings for all redundant events in the extension-editing extension. Let me know if you have any questions or concerns.


Crate a ci job for every chip feature

I fail to see the improvement; while ci/build.py pulled all chipfeatures from Cargo.toml this list needs manual maintanance.

Yeah, that's true. I just tried it out to see if we have build time improvements. But there are none, as we can see. The current version is better as you said, because we won't have to update the travis file manually :)

There has been a lot of talk about GitHub Actions lately. I have no experience with that, but everyone says it's so much better than Travis, so maybe we should give it a try.

I've heard about that, and I am excited about GitHub Actions. I've run into some issues with travis, so I would like to move away from it.   (I still don't know why two instances of travis are spawned running the same CI twice)
My plan was to update this PR to GitHub Actions, but I have not yet found the time to try it out.

So should we close this PR and create an issue for migrating to GA instead?

Yeah, that sounds reasonable :)

Closing in favor of #113.


refactor(Datatable): convert to function expressions

@PrincAm I figured out how to use generics with function expressions :D


Read OUTPUT_DIRECTORY properties from main library target

Previously, the properties were read from the wrong target. The IMPORTED_LOCATION property needs to be set on the internal target, but the OUTPUT_DIRECTORY properties set by the user will be set on the user facing target (without -static or -shared suffix).
Closes #240

@mnutt Could you have a look if this PR also fixes your original problem?


The simplest way to use checkpoint to maximize the GPU memory usage

❓ The simplest way to use checkpoint to maximize the GPU memory usage
Hi, guys,
I am learning about how to use the checkpoint to optimize the GPU memory usage, and I see there is a example in densenet.py as
    @torch.jit.unused  # noqa: T484
    def call_checkpoint_bottleneck(self, input):
        # type: (List[Tensor]) -> Tensor
        def closure(*inputs):
            return self.bn_function(*inputs)

        return cp.checkpoint(closure, input)

Firstly, I think using checkpoint to maximize the GPU memory usage only apply to activation modules, such as ReLU. So, why not just create an new Module like:
class cp_ReLU(nn.Module):
    def __init__(self, inplace) -> None:
        super(cp_ReLU, self).__init__()

        relu = nn.ReLU(inplace = inplace)

    def forward(self, x):
        y=cp.checkpoint(relu, x)
        return y

And use cp_ReLU instead of original ReLU in all the places where a ReLU is need as:
if self.memory_efficient:
    self.add_module('relu2', nn.ReLU(inplace=True)),
else
    self.add_module('relu2', cp_ReLU(inplace=True)),

I think this kind of implementation will make best use of the checkpoint.
Am I right?
Or would checkpoint also have effect to other kinds of modules like, Conv2d or BatchNorm2d?
Your suggestion and answer will be appreciated!

Hi,
We use GitHub to track features / bug requests.
Questions like this are better suited for the discussion forums http://discuss.pytorch.org/, could you post your question there?
Thanks!

Hi, @fmassa  Francisco,
in fact, I don't quite understand "Conv2d has intermediate activations", as far as I know, there is no activation function in Conv2d, which is a linear mapping operation.

What I meant by activation is that it has an output, and the output is stored in memory for backpropagation, and thus it is affected by checkpoint