Dynamic Config QOL

Checklist

[X] I've searched the issues and pull requests for similar looking suggestions.
[X] I've checked the Unreleased section of the changelog for newly added features that sound like my suggestion.

Describe your Suggestion
Hello!
Ive been messing around with the Dynamic Config URL as i was adviced in the last issue i created. It is working great and doing everything we could possbily want, however i have some suggestions to potentially improve it. One issue i have ran into is that when we remove items from the lootItemAllowlist it does not get removed upon a restart of RuneLite for the players that use the config URL.
I went and did some digging in the repo and found this line:
if (webhookConfigKeys.contains(key) || "ignoredNames".equals(key) || "lootItemAllowlist".equals(key) || "lootItemDenylist".equals(key))

Would it be possible to add some checkbox to decide if you would like to override these settings individually?

I understand this might make it more messy under the advanced tab so perhaps it would be good to add a new tab for Dynamic Config URL as a whole, it is a very powerful tool and it would be awesome to have some more configuration for it.

A Reload button to fetch all the data from the Dynamic Config URL again without having to restart RuneLite or manually resetting the settings and then placing the URL in there again, closing the panel and opening it again. (I understand closing and opening the panel is not something we can get around, i think?)

An option to change how often it fetches the config, for example:

Upon each login (not world hops)
Upon start of RuneLite (current setting?)

If any of these settings seem reasonable and are added, it would be nice to have those added to the config as well so we can set that as a default right away so the user does not have to manually enable some of these settings.

Reasoning
I understand the reasoning why it merges for the ignoredNames, that is not something we have gotten around to using yet, but we would like to take advantage of it in the future so items do not post from people playing multiple accounts if possible. However this could also be solved with a custom webhook handler recommended by iProdigy in my last post.
I added "Bones" to the whitelist of items while testing and then removed it later, but some people ended up getting the updated config, but once the bones had been removed from the config it wouldnt remove it from the people that got that update within the 1-2 hours it was there during development of the Discord Bot. If an opsie happens during a Clan vs Clan bingo with an item, where there are hundreds of participants it would be great to be able to simply update the config and know that it will be gone upon the next restart for all of the users. This is also why it would be good to have a button to fetch all the settings again (though it is hard enough as it is to get people to even use a plugin to begin with)
Hence my suggestion, allow us to completely replace the lootItemAllowlist and lootItemDenylist while leaving the ignoredNames untouched or having it merge as it does now by using checkboxes. Currently these three are the only special cases so if all the settings that has to do with Dynmaic Config URL was placed in its own tab it wouldnt be too messy to have those 3 extra checkboxes i reckon.
The part about having it fetch the new data upon each login would be nice because often before a bingo we will ask all participants to relog to make sure websites such as WiseOldMan, TempleOSRS, etc will update so that XP/boss kc is tracked correctly. This would also allow us to make sure everyone receive the latest version of the config upon logging in just before the event starts w/o having to do anything special.
Thanks for reading!

Via #595, users will be able to customize whether config imports (including the dynamic config url) should overwrite certain string lists or merge (current default)

What other customization are you imagining?

The runelite config panel doesn't allow us to easily/cleanly add arbitrary buttons. Instead, people can toggle Dink off & on to pull the latest dynamic config

imo if you make a bingo adjustment that you'd like to see immediately reflected, you should just ping @here in discord saying to toggle the plugin off & on

imo the user should set the config overwrite vs. merge policy once & it shouldn't be modified by config imports

Via feat: allow overwriting string lists on import #595, users will be able to customize whether config imports (including the dynamic config url) should overwrite certain string lists or merge (current default). i didn't see a use case for overwriting ignoredNames rather than merging, so didn't include that as an option

Oh this is great, i mustve missed it because i specifically looked for "Dynamic Config" when creating the issue, sorry for the duplicate but im glad you guys are already working on that!

What other customization are you imagining?

I was mostly thinking that it could be "clean" to have all the settings related to Dynamic Config in a tab of its own in case it grows in the future, but no need if u guys can fit it nicely in the advanced section. But to be fair i did miss that this feature even existed originally because it feels a little bit hidden away in the settings.

The runelite config panel doesn't allow us to easily/cleanly add arbitrary buttons. Instead, people can toggle Dink off & on to pull the latest dynamic config

I see, so buttons are not so easy to add. Honestly speaking i never actually thought of just turning on and off the plugin lol, thats my bad in hindsight, obviously it would load it upon reloading the plugin. That will be fine!

imo if you make a bingo adjustment that you'd like to see immediately reflected, you should just ping @here in discord saying to toggle the plugin off & on

Thats a fair point, im just wondering if there would be any downside to having it read the config upon each login? (not including world hops) Or at least having it as an option that is turned off by default? Could that cause any problems? Personally i feel like it would be nice to make sure the people using Dynamic Configs always have the latest version upon logging in, i myself sometimes dont close the client for 2-3 days when i leave my PC on from time to time. Obviously turning the plugin on and off would be an option but it would be nice if it just happened in the backgroud if its not a too expensive task to perform?

imo the user should set the config overwrite vs. merge policy once & it shouldn't be modified by config imports

Thats fair, as long as the option is there that would be great!

 I only created that PR after you made this issue
Yeah if we were doing separate checkboxes for "Overwrite webhooks" and "Overwrite item lists," I can see the argument for a separate config section. right now I think we can fit all the customization we need into that multi-select box within the advanced section
Perfect, yeah we probably should add that to the README (and/or the tooltip for the config option) so it's more clearly documented
Perhaps that can be a separate PR where: on login, if dynamic config hasn't been pulled in x hours, pull the latest config
Yeah we're creating a release this weekend, so #595 will likely go into the release after that, pending maintainer feedback

Sounds great, looking forward to next release! Thanks for all the work you and the other contributors put into this!

Perhaps that can be a separate PR where: on login, if dynamic config hasn't been pulled in x hours, pull the latest config

This would also be a cool solution, then it would be able to pull the latest settings while youre logged in as well i suppose.


adds alacritty

this uses an msi rather then a portable version

rather then a portable version

I'm sorry but that's the point of Scoop, at   least for me. Unless using portable version is impractical, we generally don't accept them.


Add application/graphql mime type

This doesn't appear to exist in MimeDB but it is recommended for serving graphql, see https://graphql.org/learn/serving-over-http/#post-request

I wonder, what may it take to get application/graphql standardized eventually.
GraphQL keeps gaining popularity quite a bit, so I suppose that its mime type should become a part of the standard at some point (https://www.iana.org/assignments/media-types/media-types.xhtml)

We have precedent for this with text/event-stream.  I hoped MimeDB would outsource arguing about which media types were important enough for a constant and which aren't, but it hasn't worked out as well as I'd hoped.

It's missing a couple that people care about.
It includes a bunch of obscure ones, including proprietary formats of defunct companies.

Anyway, :+1: to this one.


Clarify usage of parallel relationships

This PR tries to implement the agreement we came up in #1361.
I struggled with the wording to be honest. I found it difficult to distinguish between the different kinds of parallel relationships. For sake of clarity let me show them in code:

Different relationships
{
  "data": {
    "type": "articles",
    "id": "1",
    "relationships": {
      "author": {
        "data": {
          "type": "users",
          "id": "12"
        }
      },
     "editors": {
       "data": [
         {
           "type": "users",
           "id": "12"
         }
       ]
     }
  }
}

Intermediate resource
{
  "data": {
    "type": "teams",
    "id": "1",
    "relationships": {
      "members": {
        "data": {
          "type": "teamMembers",
          "id": "12"
        }
      },
     "editors": {
       "data": [
         {
           "type": "teamMembers",
           "id": "13"
         }
       ]
     }
  },
  "included": [
    {
      "type": "teamMembers",
      "id": "12",
      "attributes": {
        "startDate": "2021-01-01",
        "endDate": "2021-12-31",
      },
      "relationships": {
        "user": {
          "data": {
            "type": "users",
            "id": "23"
          }
        }
      }
    },
    {
      "type": "teamMembers",
      "id": "13",
      "attributes": {
        "startDate": "2022-06-01",
        "endDate": "2022-12-31",
      },
      "relationships": {
        "user": {
          "data": {
            "type": "users",
            "id": "23"
          }
        }
      }
    }
  ]
}

Multiple, direct reference on same relationship
{
  "data": {
    "type": "teams",
    "id": "1",
    "relationships": {
      "members": {
        "data": [
          {
            "type": "users",
            "id": "23",
            "meta": {
              "startDate": "2021-01-01",
              "endDate": "2021-12-31",
            }
          },
         {
            "type": "users",
            "id": "23",
            "meta": {
              "startDate": "2022-06-01",
              "endDate": "2022-12-31",
            }
          }
        ]
      }
    }
  }
}

We only aim to discourage using the third type of parallel relationships. We recommend to use the second type instead. I'm not sure how well this is expressed in the current wording.
Open questions:

Do we want to backport this recommendation to v1.1?
Do we need a better wording to distinguish between relationships of a resource (author, editors) and references to resource in such relationships?

Closes #1361

Hey. We're using the JSON:API spec for some REST APIs at TIDAL, and have discussed the topic of parallell relationships. We have weighed some pros and cons for a specific case, and we will probably go for a solution where we support parallell relationships. The SHOULD NOT wording seems to strike a good balance in the specification.
In addition to adding the SHOULD NOT clarification on to-many relationships, would it make sense to also update the wording in the Updating to-many relationships section? Currently it reads, for POSTs:

If a given type and id is already in the relationship, the server MUST NOT add it again.

Changing MUST NOT to SHOULD NOT also for CRUD operations wrt parallell relationships, would keep the recommendation not to support parallell relationships, but also clarify that it is a valid implementation.
Thanks!

In addition to adding the SHOULD NOT clarification on to-many relationships, would it make sense to also update the wording in the Updating to-many relationships section? Currently it reads, for POSTs:

If a given type and id is already in the relationship, the server MUST NOT add it again.

Changing MUST NOT to SHOULD NOT also for CRUD operations wrt parallell relationships, would keep the recommendation not to support parallell relationships, but also clarify that it is a valid implementation.

I feel we should keep the MUST NOT in this case. One of the design goals of JSON:API is ensuring that a client can change the server's state without needing to know it. That eases consumers a lot. E.g. in case a request to add a relationship fails, the client can send the request again without needing to check before if the server has processed the request or not.
Maybe we should add a similar clarification that a DELETE request for a specific member must delete all references to that member on the relationship. And not only a subset of it if the resource is referenced multiple times.
I get that this requires using full replacement to manage parallel relationships. But in my perspective that's only one of the many drawbacks you get when using that discouraged pattern. The benefits for the recommended usage of relationships strongly outweigh that trade-off in my perspective.
Please note that the primarily reason for using SHOULD NOT instead of MUST NOT for parallel relationships is not introducing breaking changes. So far I have not seen any use case, which is better solved by parallel relationships than intermediate resources.

Thank you for the swift and clear reply @jelhan, much appreciated.
First of all, I do agree that from a modelling perspective, using intermediate resources most likely represents the best solution. The reason we are leaning towards supporting parallell relationships are strictly practical. We are in essence retrofitting JSON:API on top of a previously existing system/API.
The way our data is currently structured, and the way we handle includes, would mean either quite a bit of work for us, or quite a compromise on performance and flexibility for clients, if we relied on intermediate resources. Also, each resource in the relationship will have a unique id in meta, making sure we have a way to uniquely address each relationship in the relationship object.
A few follow ups, just to make sure I understand correctly:

Does using SHOULD NOT wording in general for to-many relationships, and MUST NOT wording for mutation operations for to-many relationships, imply that - strictly speaking - it is valid JSON:API for a server to expose a read-only to-many relationship containing parallell resources, but not a mutable one?

Refs:

One of the design goals of JSON:API is ensuring that a client can change the server's state without needing to know it.
Got it, makes sense. What is your take on how compatible this goal is with the note in section <IP_ADDRESS>, essentially saying that an implementation may choose to treat a to-many relationship as ordered (something we are also doing for several to-many relationships!). In essence, if an implementation chooses to treat a to-many relationship as ordered, doesn't the ordering of the to-many relationship represent a state that a client may need to relate to before mutating the relationship?

Thank you.

First of all, I do agree that from a modelling perspective, using intermediate resources most likely represents the best solution. The reason we are leaning towards supporting parallell relationships are strictly practical. We are in essence retrofitting JSON:API on top of a previously existing system/API.
The way our data is currently structured, and the way we handle includes, would mean either quite a bit of work for us, or quite a compromise on performance and flexibility for clients, if we relied on intermediate resources. Also, each resource in the relationship will have a unique id in meta, making sure we have a way to uniquely address each relationship in the relationship object.

I struggle imagining such a scenario. Would be great if you could elaborate. Maybe I'm missing relevant use cases for parallel relationships.
I assume it's just a matter of the serialization if representing it as an intermediate resource or not. If I get you right, you already have a unique identifier for each reference to a resource in that parallel relationship. In that case you already have an id for the intermediate resource. The type could be derived from the types of the related resources and the names of the relationship.
I expect you have a serialization such as the following today:
{
  "data": {
    "type": "teams",
    "id": "1",
    "relationships": {
      "members": {
        "data": [
          {
            "type": "teams_members",
            "id": "23",
            "meta": {
              "id": "101"
            }
          },
         {
            "type": "users",
            "id": "23",
            "meta": {
              "id": "102"
            }
          }
        ]
      }
    }
  }
}

What additional challenges due you face serializing it as the following:
{
  "data": {
    "type": "teams",
    "id": "1",
    "relationships": {
      "members": {
        "data": [
          {
            "type": "teamsMembers",
            "id": "101"
          },
         {
            "type": "teamsMembers",
            "id": "102"
          }
        ]
      }
    }
  },
  "included": [
    {
      "type": "teamsMembers",
      "id": "101",
      "relationships": {
        "user": {
          "type": "users",
          "id": "23"
        }
      }
    },
    {
      "type": "teamsMembers",
      "id": "102",
      "relationships": {
        "user": {
          "type": "users",
          "id": "23"
        }
      }
    }
  ]
}

Unless I missed something, I have just moved existing information around and made up a type for the intermediate resource. I know it is more complex if a unique identifier for the reference in the relationship does not exist yet. But that doesn't seem to be the case for you.

Does using SHOULD NOT wording in general for to-many relationships, and MUST NOT wording for mutation operations for to-many relationships, imply that - strictly speaking - it is valid JSON:API for a server to expose a read-only to-many relationship containing parallell resources, but not a mutable one?

No. Mutation of parallel relationships are possible. But with the limitation that full replacement must be used in some cases:

Adding more than one reference to a resource to the same relationship requires full replacement. POST to a relationship link does not support adding a second (or more) references to the same resource to a relationship.
Removing only some references to a resource on the same relationship requires full replacement. DELETE to a relationship link will delete all references to the resources referenced by the provided resource identifier objects.

One of the design goals of JSON:API is ensuring that a client can change the server's state without needing to know it.

Got it, makes sense. What is your take on how compatible this goal is with the note in section <IP_ADDRESS>, essentially saying that an implementation may choose to treat a to-many relationship as ordered (something we are also doing for several to-many relationships!). In essence, if an implementation chooses to treat a to-many relationship as ordered, doesn't the ordering of the to-many relationship represent a state that a client may need to relate to before mutating the relationship?

The JSON:API specification does not define how a client can change the order of an ordered to-many relationship. If sending the same request multiple times could lead to unexpected results depends on the specific implementation. I expect that most implementations does not have such a problem. E.g. if the order is mutated by a full-replacement of the relationship, the client describes the desired state in the request independently of the server state. The result is the same regardless if the request is successfully processed once or multiple times. The same is true if the implementation provides some way for a client to specify adding a reference in a specific position of a relationship. It's only an issue if an implementation allows mutation depending on current state (e.g. "move one up/down").

Unless I missed something

You didn't miss anything, and your example illustrates exactly how we would model it using intermediate resources.
As I mentioned, the reasons we're leaning towards not using intermediate resources are strictly practical and a result of some design decisions/trade offs, and our current implementation. One concrete example is our logic that generates compound documents (included section). It currently doesn't support inclusion of nested paths. So, either we would have to rebuild our inclusion logic to support nested paths and generate full linkage (which with the current setup we have would most likely introduce a performance decrease), or we would have to accept that clients would have to make two consecutive calls to our backend in order to retrieve the same information. Basically, 1/ GET /teams/?include=members, and 2/ GET /teamMembers/?include=user.

No. Mutation of parallel relationships are possible. But with the limitation that ...

Thanks

The JSON:API specification does not define how a client can change the order of an ordered to-many relationship. If sending the same request multiple times could lead to unexpected results depends on the specific implementation. I expect that most implementations does not have such a problem. E.g. if the order is mutated by a full-replacement of the relationship, the client describes the desired state in the request independently of the server state. The result is the same regardless if the request is successfully processed once or multiple times. The same is true if the implementation provides some way for a client to specify adding a reference in a specific position of a relationship. It's only an issue if an implementation allows mutation depending on current state (e.g. "move one up/down").

Thanks, and yes - it is the "It's only an issue if an implementation allows mutation depending on current state (e.g. "move one up/down")." case I had in mind. "Move up/down" could be one scenario. "Insert after" could be another.


Suggestion??

Gottcha.  Need to do some research on that.

if possible just use code that works in nether. maybe could just do a flag to use overworld/nether/end

@resinate I basically replaced fog handling in DS in the recent BETAs.  If you could give me feedback on how the fog works with what you are seeing RE: sunrise/sunset I would appreciate it.  The coloring of the sunset is kinda weird because Minecraft uses the players current view angle to tint the color.

sry extremely late reply, it seems the config doesnt load at all now i get this error.
[BiomeRegistry] had issues loading [custom.json]! but theres no examples anymore


Question: submit buttons for Sign In & Facebook Sign In

Checklist for this issue
If your issue is about the regex used in email rule, please note that as of version 1.12.0 this plugin is using the same regular expression that the HTML5 specification suggests for browsers to use (https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address). We will follow their lead and use the same check. If you think the specification is wrong, please report the issue to them. If you have different requirements, consider using a custom method.
In case you need to adjust the built-in validation regular expression patterns, please follow the documentation (http://jqueryvalidation.org/jQuery.validator.methods/).
Subject of the issue
Hi, I have two submit buttons in the same web page one for my application Sign In and one for Facebook Sign In. I only want to perform validation for my application's submit button and not for Facebook Sign In submit button. Is it possible to validate one button and not validate another button?
Thanks beforehand,
Javier
Your environment
This is a question before we use the control in order to know if it can help us.
Steps to reproduce
None
Expected behaviour
One button must be validated and another must not.
Actual behaviour
No testing yet

See https://jqueryvalidation.org/reference/#link-skipping-validation-on-submit

Skipping validation on submit
To skip validation while still using a submit-button, add the attribte "formnovalidate" to that input:
<input type="submit" name="go" value="Submit">
<input type="submit" formnovalidate name="cancel" value="Cancel">

This used to work by adding class="cancel" to the input, this is now deprecated.


Issue #518: Footer

Created footer. Need team to provide links.

Hey Sean, I'm not sure why but  the diff is showing a lot of unrelated changes. Could you merge the latest master into this branch?


[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.rounded
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.safecopy
[ ] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sbv
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.scan-metadata
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdl2-cairo
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp-binary
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp-deepseq
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp-hashable
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp-io
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp-quickcheck
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp4bytestring
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp4text
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp4unordered
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sdp4vector
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.sequenceTools
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.serversession-backend-acid-state
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.shake-plus-extended
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.sized
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.slope-field
[ ] splot

[:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] toplevel
[:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages

[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.squeeze
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.stm-actor
[ ] taskell

[:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] toplevel
[:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages

[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.telegraph
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.threadscope
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.timeplot
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.unicode-names
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.userid
[ ] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.verifiable-expressions
[ ] [:iphone::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.webkit2gtk3-javascriptcore
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.wholepixels
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] tests.writers
[ ] [:iphone::heavy_check_mark:] [:apple::heavy_exclamation_mark:] [:penguin::heavy_check_mark:] haskellPackages.xbattbar
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.xdot
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.xmonad-screenshot
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.yesod-media-simple
[ ] [:iphone::heavy_exclamation_mark:] [:apple::heavy_check_mark:] [:penguin::heavy_check_mark:] haskellPackages.yi-frontend-pango

Report generated with maintainers/scripts/haskell/hydra-report.hs

I've merged haskell-updates into master.  Thanks to everyone that fixed things over the past week or so.  Special thanks to @sternenseemann for fixing a bunch of the aarch64 and darwin builds.  For the first time, we have over 20,000 Haskell-related packages building (over x86_64-linux, aarch64-linux, and darwin)!

@jonringer Just FYI for 21.05, this will be the last time haskell-updates is merged into master before the branch-off.  Any Haskell-related problems should be fixed directly on the release-21.05 branch moving forward.
We still have about 250 failing packages, all of which are either on darwin or aarch64-linux.  All of our x86_64-linux packages are either correctly marked broken, or can be built successfully.


chore: allow Nexus::new to create and register children

Moves the bdev::nexus::nexus_bdev_children::Nexus::create_and_register which
bdev::nexus::nexus_bdev::nexus_create invokes during it's execution into
bdev::nexus::nexus_bdev::Nexus::new.
Previously it would only call bdev::nexus::nexus_bdev_children::Nexus::register_children, not bdev::nexus::nexus_bdev_children::Nexus::create_and_register. This created potential for misuse,
as users could pass a child which was not created, and it would be registered invalidly. :boom:
This has progress towards https://mayadata.atlassian.net/browse/CAS-771.

bors try


Control over serial port

This issue is to discuss possible information and implementation on the control of registry values through the daikin protocol I.

Maybe http://es.intpre.daikineurope.com/binaries/Configurator_v2_3_0_tcm705-334155.zip + https://www.decompiler.com?
Snd_Nbyte_mon in file Cls_CommDriver.cs seems promising.

Maybe http://es.intpre.daikineurope.com/binaries/Configurator_v2_3_0_tcm705-334155.zip + https://www.decompiler.com?
Snd_Nbyte_mon in file Cls_CommDriver.cs seems promising.

Maybe http://es.intpre.daikineurope.com/binaries/Configurator_v2_3_0_tcm705-334155.zip can give some hints...
Edit: original comment deleted.

Maybe http://es.intpre.daikineurope.com/binaries/Configurator_v2_3_0_tcm705-334155.zip can give some hints...
Edit: original comment deleted.

I've had a quick look already but gave up as Configurator do not work with Altherma.
I'll have a deeper look to see if it can give some hint anyway.
Thanks.

I've had a quick look already but gave up as Configurator do not work with Altherma.
I'll have a deeper look to see if it can give some hint anyway.
Thanks.

This Daikin Configurator is for AC units only and definitely not compatible with the Altherma

This Daikin Configurator is for AC units only and definitely not compatible with the Altherma

The configurator should be compatible with Altherma, but not yet in the release mentioned by @miguelangel-nubla .
Attached latest SW and all info I could find.
IOM configurator 4PEN328530-1G.pdf
Configurator_v2_8_0.zip
Features and release notes Daikin Configurator_2.8.0.pdf

The configurator should be compatible with Altherma, but not yet in the release mentioned by @miguelangel-nubla .
Attached latest SW and all info I could find.
IOM configurator 4PEN328530-1G.pdf
Configurator_v2_8_0.zip
Features and release notes Daikin Configurator_2.8.0.pdf

Unfortunately the HPSU / ECH2O internal unit uses a Rotex/Kromschröder controller in a unique combination with the Daikin A1P board. That is different to all other Althermas.

Unfortunately the HPSU / ECH2O internal unit uses a Rotex/Kromschröder controller in a unique combination with the Daikin A1P board. That is different to all other Althermas.

I'm also interested in control over serial port. Like the "powerful DHW heating" option in the discontinued Daikin app.

I'm also interested in control over serial port. Like the "powerful DHW heating" option in the discontinued Daikin app.

@stosoorok , download the new Daikin Residential Controller app. I can control it over there (Altherma 3 R F)

Does not work with HPSU / R 3 ECH2O!

I'm now following another track: on the secondary board that holds the user interface of my Altherma 3 there are two RJ11 port that are connected to two CAN transceivers.

The Esp32 has a CAN controller. So it would just require an extra CAN transceiver (eg TJA1050) to connect to it.
I will try this.
I know that the CAN bus is directly accessible on ROTEX. Can Daikin ALTHERMA users confirm if they have these RJ11 ports also on their machine?

Hi @raomin , today I was taking down the front panel, because of my Smart Grid system. I can confirm those two RJ11 connectors, thinking from the beginning about what they are for.
Altherma 3 R F (Air to floor).
I remember that the Daikin mechanic told me that the usb port should be used for uploading new firmware by user. However, this is not 100%.
Once the M5Stick come, I will definitely use it for automation of my photovoltaics excess power - I need to switch off the heating to make it work.
Thanks, keep on the good work!

A new possible breakthrough to follow...: #40

Congratulations @raomin to a very nice project!
I am able to control my Daikin Altherma, through the P1P2 port. Here is my project, build on the excellent work done by Arnold-n:
https://github.com/budulinek/Daikin-P1P2---UDP-Gateway
It is a simple P1P2 <-> Ethernet UDP gateway. No fancy GUI, no MQTT (too small RAM on Arduino). Only HEX data via UDP. But it works and it is reliable.
Very briefly about P1P2 port: it is not a CAN bus. Actually, P1P2 is Daikin's implementation of the "Home Bus System (HBS)". It is used to communicate between the heat pump and the main controller (user interface).
I believe that P1P2 port is the best (and probably the only) way to both monitor and control Daikin Altherma:

It works. I have been using my P1P2 gateway for almost a year in real life, as my main way to remotely monitor and control my Altherma (through Loxone home automation system).
P1P2 was developed by Daikin for the purpose of controlling the heat pump. Actually, it is used not only by Daikin's own controllers (main user interface, LAN adapter), but also by 3rd party controllers (KNX adapter by Zennio, Modbus adapter by Intesis, and few more). When you use P1P2, you are not "hacking" into some internal communication line of the heat pump.
It is safe. The P1P2 gateway listens to the communication between the heat pump and the main controller in order to monitor the heat pump. But when it comes to writing (controlling), the P1P2 adapter does not control the heat pump directly, it only sends commands to the main controller (user interface). This is how all other commercial adapters and controllers attached to the P1P2 port work.
The commands sent by my P1P2 adapter are immediatelly reflected on the display of the main controller (user interface) of the heat pump. For example, when you change the target temperature remotely, within a second the display of the main controller shows the new value.

Of course, there are also problems and obstacles when it comes to the P1P2 port:

The P1P2 protocol is proprietary and the only way to identify the commands is by reverse engineering. I was able to identify a lot of commands, incl. on/off, heating/cooling, DHW boost, temperatures (for room temp, and for the leaving water temp) - see https://github.com/budulinek/Daikin-P1P2---UDP-Gateway/blob/main/Payload-data-write.md . But more work is needed.
You need additional HW (transciever). Arnold at https://github.com/Arnold-n/P1P2Serial built a "P1P2 adapter" for Arduino, using the Mitsumi MM1192 transciever (I got one adapter from him). MM1192 is a very old chip, it could be hard to find. But fortunatelly, Maxim Integrated recently released new HBS transciever: MAX22088.

MAX22088 looks very promissing (see https://www.maximintegrated.com/en/products/interface/transceivers/MAX22088.html for specs, sample circuits and brief summary of the Home Bus). I would like to try the MAX22088 chip, but the problem is that I do not have the skills to build the PCB. I do not have the soldering skills (MAX22088 is too small for hand soldering). I do not know how to design a circuit.
So this post is actually a call for help - is anyone interested in the P1P2 port? I did my bit with reverse engineering the protocol and Arduino programing, but I need help with the hardware design and testing:

Can anyone design a PCB for the P1P2 <-> Serial adapter with the MAX22088 transciever?
MAX22088 is too small for hand soldering, but if there is enough demand, we can collectivelly order a batch of PCBs at one of the PCB assembly services in China.

P.S. Few notes regarding the X10A port:
I looked into it few years ago. It has some advantages. Easy to connect (serial) and freely available register definitions (the easiest way: download apk for an Android app called "Daikin AC Monitoring Tool(GLB)", unpack the apk, browse to \assets\DataModule\Global\Conv\ and here you can find registry definitions for individual models).
But after studying manuals for Daikin programs and devices which connect to X10A (for example https://nanopdf.com/download/daikin-configurator-v2xx-1-introduction-2-features-3-minimum-pc_pdf http://tinlavir.ro/parteneri/2_VRV/2_Outdoor_Units/01_RYYQ-T_VRV-VI-CH-HP/Documents/4_Accessory_Manuals/IOM_VRV_configurator_EKPCCAB.pdf or http://daikinspare.com.ua/download/dmmt/Mobile Monitorint Tool User Manual Android.pdf )
I came to conclusion that X10A can be used for:

monitoring
downloading and uploading settings
updating FW

But I am quite sceptical about the possibility of using X10A for controlling the heat pump during normal operation.

Thanks to both @raomin and @budulinek for your great work!
I have a few MAX22088s here and intend to make a PCB with it that is pin-compatible with the MM1192-hat. But given that it is a tiny chip, not sure when/whether that will succeed.

Hi Arnold,
nice to hear you again! Yeah, I saw the specs for the chip, it is tiny. I really think that PCB assembly service is a way to go (https://blog.squix.org/2019/09/pcb-assembly-service-review.html).
Design a PCB. Build one prototype (by hand or using a PCBA service - even though it may be a bit expensive to do that with a single prototype). Test the prototype. Order a larger batch of PCBs from a PCBA service to get a reasonable price. Distribute PCBs among ourselves. Sell excess PCBs on https://www.tindie.com/.

Hi @budulinek, thanks for your interest.
I'm well aware of P1P2 protocol and the nice work by @Arnold-n on it (I also got on of his pcb to connect to it). I do believe a canbus-like port is good for controlling a heatpump and chaining controllers, that's make complete sense. Still, I was a frustrated that it would take so much to interact with an heat pump while connecting on a serial port is so simple.
That's why I did ESPAltherma, so that everyone could monitor (and to a very little extend control) his/her heatpump with an esp32 and 4 cables.
You know that the Daikin Configurator (not supported in late Altherma if I understood well) set registries values through X10A, and if you look at #40 you'll see that the X10A port is also used by the communication of the main board with the dual zone, so I still believe this serial port has more capabilities than you suggest. Let's hope that we'll find out soon how to exploit them.

@raomin Yes, I saw https://github.com/raomin/ESPAltherma/issues/40 .I looked at the logs, But they do not look familiar to me from what I saw on port P1P2. I wish you luck on X10A, I was just bit afraid that we are duplicating our efforts. Figuring out the timings and finding out when it is save to write to the port? Arnold already did that for P1P2 port. Changing settings on Altherma and monitoring the port? Sounds familiar to me...
@Arnold-n Maybe this could help you with prototyping MAX22088:
https://www.aliexpress.com/item/4001054495151.html
Still bit expensive, but I am ready to support you.
Regarding the form factor, maybe it is not necessary to do it pin-compatible with Arduino. So that it could be used with other microcontrollers (such as ESP32). The disadvantage of the MM1192 adapter is that it relies on software serial. My hope is that MAX22088 would behave differently and that it would connect to normal HW serial which would make the adapter platform-independent.

Thanks for your support, @budulinek, but I think I can reflow solder the MAX22088 even though it is 0.5mm pin distance and would like to try that first. Unfortunately the MAX22088 does not do any HBS<->serial conversion, so an ATmega and P1P2Serial library (or similar) is still needed. The MAX functionality is really very similar to the MM1192 except that it provides some termination circuitry and more importantly a bus-based 5V 70mA power supply - as a result there is no need for a separate 5V DC/DC convertor to power the P1P2-side from the Si8621. Cost-wise the components of the overall solution will be the same (MAX replacing the DC/DC convertor); and just a bit smaller and perhaps more reliable. Supply of XL1192S so far is good, I just got a new set of them.
As to X10A vs P1P2, an advantage of X10A over P1P2 might be that it is - perhaps - more standardized over different heat pumps. I have the impression that the P1P2 protocol varies too much over different models. But indeed P1P2 is less intrusive as it only mimics an auxiliary controller and does not require access to the X10A connector.

I did a little bit of googling and came across a patent for the HBS <-> RS232 converter:
https://patents.google.com/patent/CN201252573Y/en
The patent protection already expired, so it is free for us to use. What do you think @Arnold-n ? Isn't it  too complex? There is a circuit diagram in the patent application, but I could not find specifications for resistors and capacitors used in the circuit.

In my opinion it is too complex: it uses many components instead of an Arduino (which could be a Arduino nano if size matters). Also, the possibility to detect bus collisions (and interrupt transmission) is lost. For converting P1P2 to (but not from) serial there is a working solution including component values: M-NET-Sniffer.

This thread is nice!
I have the password Q3UjYU1hJlUhc2Y= (base64 encoded!) for the Access Database of "D-Updater"
I flashed my RHYHBH08AAV3 to a RHYHBX08AAV3
Pin4 is to enable the bootloader that you can flash the application.

I've got @raomin 's M5StickC solution working great for monitoring and I had a Realtime RTD LT/CA unit lying around which does control most things EXCEPT turning DHW on or off.  @Arnold-n I'd be happy to chip in and help fund a native P1P2 hardware interface if that helps?

@martindell:

I'd be happy to chip in and help fund a native P1P2 hardware interface if that helps?

Thanks for the support but at the moment not needed: the first PCBs for a stand-alone bus-powered P1P2-MAX22088-Atmega-ESP-wifi/mqtt prototype have been ordered, and a breadboard version is running here. In a couple of weeks I hope to have this working. It will fit nicely in a small enclosure.
Is that what you meant with native?

Ah great news @Arnold-n thank you for progressing this. I'm really looking forward to trying this out as soon as it's available.

Hi @martindell, the first PCB is running here succesfully (picture and details). The (renewed, to be released) ATmega code is working great even at 4MHz; I am now cleaning up and improving the bridging code to MQTT on the ESP.

Great work @raomin! Been using ESPAltherma for 2 months now and drawing beautiful graphs with HomeAsssistant.
I have observed as well work by @Arnold-n and will try it out too.
Has anybody tried using the Daikin Demand PCB board EKRP1AHTA for power limitation? Internet is very blank on that keyword. That looks somewhat as a simpler alternative to program via ESP or Arduino instead of SG1/2 that seem to me are only available for my second Alterma gen via BRP069A61 (which I don't have).

according to the latest findings, is there a way to set the LWT (leaving water temperature) via ESPAltherma?

@FMode where can I find the new firmware and how do I update this?

You can register (for free) as Daikin partner
or this one:
http://ybshare.com/download/rdvt6hxrx9#download

Thanks for the download. Where can you register? I tried to register on the Daikin business portal, but Daikin rejected my registration.

I registered some years ago with my company's email from work ....

according to the latest findings, is there a way to set the LWT (leaving water temperature) via ESPAltherma?

I am also very interested in this. Setting it up via the Daikin it was changing too much. Now I’ve set it as static, and change it (if needed) once a day. If I could automate this it would be great!!

You can try setting averaging time in your Altherma unit.
Quote from the manual:

The average timer corrects the influence of ambient temperature variations. The weather-dependent setpoint calculation is done on the average outdoor temperature.
The outdoor temperature is averaged over the selected time period.

Hello,
Last week i got my hands on ROTEX RKHBH008BA9WN.
I found commands which read or modify the eeprom values. Quickly wrote some code to extract the eeprom values. Located the actual eeprom on the back of the PCB and desoldered and dumped it. When comparing the two i didn't find any difference.
After that i found which address changes when changing the setpoint from the remote, but when i write new value it does not change.
I am sure that command for writing in eeprom work, because i was able to change the unit from heating only to heating/cooling.
Tried to disconnect the remote, but writing to that setpoint address was again not possible.
What could be preventing me to change the value?
Tried some other newer Altherma's to read and write some adresses of their "eeprom" with success.

You can manipulate the eprom with the D-Updater - there is also an Access Database describeing the eprom contents. Do you have more information about what can be changed there? Changing from heating to heating/cooling is easy if you compare the flash files.

I have a new Daikin Altherma 3 H MT W connected with the DCOM LT/MB Modul.
I can set via Modbus the following values:
1 Leaving Water Main Heating Setpoint / 25 .. 55ºC
2 Leaving Water Main Cooling Setpoint / 5 .. 22ºC
3 Operation Mode / 0: Auto, 1:Heating, 2:Cooling
4 Space Heating/Cooling On/Off / 0:OFF 1:ON
6 Room Thermostat Control Heating Setpoint / 12 .. 30ºC
7 Room Thermostat Control Cooling Setpoint / 15 .. 35ºC
9 Quiet Mode Operation 0:OFF 1:ON
10 DHW Reheat Setpoint / 30 .. 60ºC
12 DHW Reheat On/Off / 0:OFF 1:ON
13 DHW Booster Mode On/Off / 0:OFF 1:ON
53 Weather Dependent Mode / 0:Fixed 1: Weather Dependent 2: Fixed+Scheduled 3: Weather Dependent+Scheduled
54 Weather Dependent Mode LWT Heating Setpoint Offset / -10 .. 10ºC
55 Weather Dependent Mode LWT Cooling Setpoint Offset / -10 .. 10ºC
It works quite well.

Thanks @MichaelST01. That modules acts as a gateway P1P2 <-> Modbus.
I would be interested to see the components on the board to see if there is some intelligence in there or if it's more a raw can <-> modbus interface. Could you post a pict of the PCB?

Sure, here it is:

I'm now following another track: on the secondary board that holds the user interface of my Altherma 3 there are two RJ11 port that are connected to two CAN transceivers.
The Esp32 has a CAN controller. So it would just require an extra CAN transceiver (eg TJA1050) to connect to it. I will try this.
I know that the CAN bus is directly accessible on Rotex (https://github.com/Spanni26/pyHPSU) . Can Daikin ALTHERMA users confirm if they have these RJ11 ports also on their machine?
Does anyone have a clue why there are 2 can buses?

Hey there, I did a bit of digging and I found that the two CAN bus connectors seems to be used for the RoCon CAN bus system
https://www.daikin.fr/content/dam/document-library/operation-manuals/heat/air-to-water-heat-pump-low-temperature/RoCon HP_EHS157034_EHS157068_0081420844_Operation manuals_English.pdf

Sorry for all. I know my question does not belong to this thread. I try to reach Fmode (Steffen). My message can for sure be  deleted after Steffen read this. I try to change the Indoor Unit from an hybrid to an wp only model.
@FMode Hallo Steffen, ich finde leider keine andere Möglichkeit Dich zu kontaktieren, außer hier zu schreiben. Ich würde mich super freuen wenn ich Dich paar Sachen fragen dürfte.
Es geht darum die Daikin / Rotex von HPU (Hybrid mit Gas) auf das reine Wärmepumpen Modell umzuflashen.  Error "HJ-11 Keine Kommunikation mit dem Gasmodul"
5 Poliger X10A ist vorhanden.  Hast du vielleicht eine Email Adresse von Dir oder Telefonnummer, die du mir zugänglich machen kannst damit ich dich erreichen kann?
Beste Grüße
Marcel

Do you have the firmware image of this device without heating device?
If not: have you looked inside the database to find some codeing value to disable the heating device?

Thanks a lot for your fast reply Steffen,
How to enable the bootloader? Pull Pin4 to GND and then power up the device? without an resistor?
my outdoor unit is RVLQ05CAV3 = hybrid. when i have a look at the datasheets, i think the device: RRLQ004CAV3 is equal (baugleich)
and my indoor unit RHYHBH05AAV3 = hybrid should then be flashed to RHBX04CB3V (+ cooling) or RHBH04CB3V (heating only) when i am right.
unfortunately I do not have the firmware for all of these devices. I thought the D-Updater will download it or do some magic :-D
I only had a few looks to the database until yet. I need some time to understand the structure.
I saw that you have an hybrid model, too? do you use the gas boiler modul?
Best regards!
Marcel

If unsure always add a resistor when pulling inputs 5V / 330Ohm = 15mA instead of short circuit ampere of your PSU.
I think pull to GND... when I remeber correctly.
The Database contains xls files (!) which are EPROM and Flash maps...
exchange the needed files and let D-Updater do the magic...

@FMode slowly I begin to understand the structure. But unfortunately I can not find a switch to disable the need of a gas boiler. Sorry I am not an developer. I will investigate further tomorrow. But I think without more hints from you, I will brick the WP when I try to disable the boiler :-(
nice evening
Marcel

I was successful to run the D-Updater without any manipulation of the database. now the indoor unit has software: ID4302 and EEPROM AS1706407-10. The version of the outdoor unit and the remote is the same. not changed.
@FMode what have you done in the database to change your unit model? I don't know how to solve the problem.
I dont want to brick the device

tabase contains xls files (!) which are EPROM and Flash maps...

I have found these xls files now! that will be exciting when I replace them

unfortunately my indoor unit (RHYHBH05AAV3) has CPU R5F3651E
and
the HSPU without gas boiler (RHBH04CB3V) has CPU R5F3651M
dont know is this will work, when I only replace the EEPROM files und keep the software as it is (ID4302). I think it will not work when the software does not match the eeprom values

Never flash the bootloader - if anything fails you can reflash the Application back.
does the RHYHBH05AAV3 and RHBH04CB3V have the same eprom value names?
Then you might be able to code "gas boiler" to "zero".

Hi together,
I tried to change the model in comp_model_range for Procedure_key from RHYHBH05AAV3  to RHBH04CA3V . That model has the same CPU type and eeprom map.
But this does not work. Something is compared with each other and it is not the ID/name of the model in "comp_model_range"
In my opinion it would have the same result if I replace the xlsx files inside the eeprom table from RHBH04CA3V to RHYHBH05AAV3 and try it with procedure_key 60. But I have not tried yet, because the software has also to be upgraded from 4302 to 4304.

The big question is. If the updater is successful, but the device does not boot anymore.... How can I revert to the original firmware (eeprom). The updater checks if the devices is bootet with 9600baud. And ONLY if yes, it continious and upgrades the eeprom with ?57600? baud from the bootloader (pull pin 4 to ground and power cycle).

@DDoykov can you help me the read the eeprom values? is it possible to get your code you mentioned? maybe I can then comprehend what the updater tool reads and why its not compatible.
with best regards!
Marcel


shuffle=False in all Dataloaders

Hi, great work! But I just found out that all dataloaders(sup or unsup) are all set to shuffle=False during training. Can you explain why?
For example, in pascal_voc.py code 116 ~ 157
        data_list_unsup = cfg["data_list"].replace("labeled.txt", "unlabeled.txt")
        dset_unsup = voc_dset(
            cfg["data_root"], data_list_unsup, trs_form_unsup, seed, n_sup, split
        )

        sample_sup = DistributedSampler(dset)
        loader_sup = DataLoader(
            dset,
            batch_size=batch_size,
            num_workers=workers,
            sampler=sample_sup,
            shuffle=False,
            pin_memory=True,
            drop_last=True,
        )

        sample_unsup = DistributedSampler(dset_unsup)
        loader_unsup = DataLoader(
            dset_unsup,
            batch_size=batch_size,
            num_workers=workers,
            sampler=sample_unsup,
            shuffle=False,
            pin_memory=True,
            drop_last=True,
        )
        return loader_sup, loader_unsup

Thanks in advance.

Hi, thanks for your attention of our work.
In fact, we simply follow AEL, which is previous state-of-the-art, where shuffle=False for all loaders.
See https://github.com/hzhupku/SemiSeg-AEL/blob/main/semseg/dataset/pascal_voc_semi_cp.py.
Maybe you could try switching shuffle=True.


Task - Interactive key - descriptor link is broken

When I am in an interactive key an click on the descriptor to see depictions, I have 500 error message (tested on Erythroneura interactive key in 3i project).

does not work as well when I access the same descriptor depiction using Matrix Row Codder interface.


About the human 3. 6m dataset

hi:
First of all, congratulations on your good work. I am a graduate student inShanghai,At present, I am studying the direction of human posture detection, which requires the use of human 3.6m data set. Do you have any? Could you share it with me? Thank you for any reply @lck1201

Hi, you could download dataset from HM3.6M official website, the size of entire dataset is more than 130GB, so it is difficult for me to share with you online. Sry

hi:
I am very glad to receive your reply. I sent an email on the official website for the permission, but I haven't received any reply for a long time. I am a student of Shanghai research institute of Chinese academy of sciences, and now I need this data set for my research,so could you give me any guidance?thanks @lck1201

Sorry, in fact I sent them emails but no reply. I don't know whether the website is being maintained or not. I think the only way now is to download dataset from other mirror source, or find someone who upload the dataset online.

So do you own the dataset? Could you share it with me please?I can give you my Baidu cloud.Also if you want ,i can pay you.
@lck1201

Hi, I don't know whether it's legal for me to distribute their dataset. It's better to download from official source. Sorry I cannot help you. Further, the discussion is beyond the method itself, so I will close this issue.


Cache management for pictures has some unnecessary time wastes

Here is a picture of a piece of a frame with a lot of animations. It raises a couple of questions.
Towards the middle there is a row of orange boxes which are DisplayListLayers under Preroll. Each has a magenta box descending from it representing the Prepare call for the display list cache. Those Prepare calls cost 60us apiece. That doesn't sound like a lot at first, but there are a number of them and they can add up.
On both sides you can see other DisplayListLayers that have much thinner magenta "Prepare" boxes descending from them. These Prepare calls only cost 18us.

My suspicions on this is that the 60us Prepare calls are seeing those display lists for the first time and so there is no cache entry for them and one has to be inserted into the map. While this does need to be double-checked, it does raise the point that map insertion is not exactly a free operation and we should be able to avoid it. In these cases, if these DisplayLists have never been seen before then we can do our pre-cache checks, the most common one is "has the DisplayList been seen at least N times before" before we create and populate the cache key. This would prevent cache entries for single-use pictures from needing to be added and removed on every frame.
There are also conditions checked in the Prepare method that would permanently ban the picture from being cached (things like it has the will-change flag or not enough rendering complexity or the transform is singular). If those conditions are true then we should note those up front in the DLLayer and never try to Prepare the cache entry again (at least until the matrix changes and potentially becomes non-singular).
Finally, rather than compute the cache key inside Prepare on every use, we should store that key in the Layer. While the construction of the cache key is not that expensive, it is an easy thing to record and reuse.

See also: https://github.com/flutter/flutter/issues/92962

In this specific case, several of those layers should probably have willChange set to true and do not.

Whether or not they do or should have willChange set, a simple "count to 3" in the layer itself before it even talks to the cache would prevent all cache overhead because the picture will change and reset the count.

Actually, if willChange is set, the Prepare method never makes a cache key. It is checked before the cache key is even constructed and so before it can be inserted in the map. That would suggest that these pictures probably do not have the flag set, otherwise they'd be shorter than the 18us cases.

What if, instead of storing the key in the layer, we stored it in the DL object itself? This way, if the same DL is used in multiple parts of the tree (or is otherwise moved from one part of the tree to another), it won't matter if it's part of the same layer or not.

Cache keys have matrices in them so each DL might have multiple keys. Also note that the hash part of the key is just the uniqueID of the DL (for speed I guess to avoid having to hash the matrix?), but the == part of the key compares both the ID and the matrix.
The 99% case will be the same matrix every time as most of the pictures in the cache I'm guessing are only scaled by the DPI, but the matrix is an important part of knowing if we can reuse a given cache entry.

This is about raster cache workloads which should soon become obsolete 🤞🏽 . Lowering the priority but keeping it around.

The raster cache is a legacy feature at this point (no plans on adding it to impeller) so I'm going to close this.


Fix dependency hell

Fixes #23

Bummer, this would bump the minimum required PHP version to 5.5.9. Are you okay with that?

maybe fork off a php-5.whatever branch before merging to keep a compatible version available and easy to port fixes to? The main branch shouldn't have to hide from the future

Is there a reason to force PHP 5.5 as minimum version?

If people want to use it as a library in a symfony 3 app? (not totally sure on that)

I've released 2.0.0 which has this PR merged in
Thanks!

@gordalina thanks for the quick merge! The reason for bumping to 5.5.9 specifically is because the Symfony components require that same version anyway.

Yup, I saw that :+1:


[BUG]: Remove leftover files of old patch driver version in csm-operator

Bug Description
Remove leftover files of old patch driver version in csm-operator for all ci drviers and modules to clean up the repository and maintain quality.
https://github.com/dell/csm-operator/tree/main/operatorconfig/driverconfig/powermax/v2.10.0, etc.
Logs
https://github.com/dell/csm-operator/tree/main/operatorconfig/driverconfig/powermax/v2.10.0
Screenshots
No response
Additional Environment Information
No response
Steps to Reproduce
The leftover files are present in csm-operator. For eg.: https://github.com/dell/csm-operator/tree/main/operatorconfig/driverconfig/powermax/v2.10.0
Expected Behavior
There should be no leftover code left in csm-operator for old patch driver versions.
CSM Driver(s)
csi-powerscale
csi-powerstore
csi-powermax
csi-powerflex
csi-unity
Installation Type
No response
Container Storage Modules Enabled
No response
Container Orchestrator
k8s
Operating System
RHEL

Removed the leftover code. We can close this issue.

link: 27107


Missing info

Hi.
Why does this page not clarify what the following options do:
-perform windows setup compatibility scan without starting upgrade
-dynamically update windows setup with windows update
-override policy and use default microsoft update
The point of docs.microsoft.com should be to document everything.
Everything should be listed and explained, clarified, as not everything is always self-explanatory.
For example, I didn't realize that ticking -perform windows setup compatibility scan without starting upgrade will just result in my OS upgrade TS doing nothing. I thought it would perform a compatibility scan, and, if all is fine, continue and upgrade.
It turns out it won't.

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

ID: 2cfe3442-b59d-0d77-d9af-f18e787ec99d
Version Independent ID: 60cb54a2-d1fd-92b5-b027-de8a85c7af64
Content: Create an OS upgrade task sequence - Configuration Manager
Content Source: sccm/osd/deploy-use/create-a-task-sequence-to-upgrade-an-operating-system.md
Product: configuration-manager
Technology: configmgr-osd
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Hi @SirJewDanielBerg, thanks for the feedback, and I'm sorry for the misperception and issues you're having. The point of docs.ms isn't to document everything. The level of detail provided for a particular product/service, solution, scenario, or feature varies depending upon a number of factors. Certainly customer feedback is a part of that, but also things like product strategy and available resources (people, time, etc.).
If you notice under the bullet that talks about how to "Perform an inline compatibility assessment" there's a link "for more information". That link goes to more info about the step itself, which includes more details about the setting. Note the name of the setting is Perform Windows Setup compatibility scan without starting upgrade. The point of the /compat scanonly option is to only do a compatibility scan, write information to the Windows update logs, and return an error code to summarize the outcome.
I’m sorry that you’re having problems, and I want to make sure it gets to the right people that can help. There are a couple of options available to provide the best level of support for this:

Post on Configuration Manager forums. These are moderated by our community MVPs who are very experienced, knowledgeable, and helpful.
Use Microsoft Support to search for the issue, or open a case with professional support.
Contact your Microsoft Premier team, such as a Premier Field Engineer or Technical Account Manager.

If you think the product itself should handle this process better, I want to make sure it gets directly into the hands of the engineering team. Fortunately, we've got dedicated channels for that very purpose. :) See the Product feedback section in our docs. I think it’s important that you submit it directly, because that allows you to receive notifications and more closely monitor the progress.
I'm closing this issue as there's nothing actionable for docs at this time.
If you have specific suggestions on how we can improve this article for this scenario, please either reopen this issue with further detail, or file a separate issues with additional feedback.


Add coverage to parser file spec

This PR:

fixes the spec file name
refactors the test structure for the GitHubChangelogGenerator::ParserFile
enhances the coverage by covering the parsing of integer and truthy boolean values

@MatteoPierro Thank you for creating this!


Feature_Request Making the navbar look cool

Describe the feature you are requesting
Currently the navbar looks  very cringy. I want to give it a cool look
Additional context(if any)
Are you contributing under any open-source program ?
Aperture

@sayan-1210 go on! try to complete it within 2 days

@sayan-1210 any update of the work?

Please check it
I have made the PR


Adam/msgpack additional bindings (WIP)

Description
Moves more bindings to msgpack form
As well, one of the goals with the msgpack work was to cleanup a lot of the current duplication, this aims to do so
Checklist:

[ ] I have reviewed my diff in github, line by line.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to the issue(s) that it resolves.
[ ] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[ ] The branch has been merged or rebased against the head of its merge target.
[ ] I'm happy for the PR to be merged at the reviewer's next convenience.

I am picking up this work and I am closing this PR in favor of mine.


Removed endpoint used by Public.getSearch()

Public.getSearch() uses the endpoint /api/v1/search which has been removed since Mastodon 3.0.0. V2 endpoint needs to be used instead.

Since this endpoint is not only deprecated as others, but completely removed, I believe this needs to be considered a bug that should be fixed for 2.0.0.

Yes, that /v1/search endpoint will fail if called, so we should not offer it to our users like that. The least we need to do is to remove it. But searching is an important feature on social media, so it would be super cool, if we could ship a working implementation in the 2.0.0 release. I also like the new v2 endpoint because it searches for hashtags (which was newly introduced by Mastodon in the 4.x release).
I had a quick look at the endpoint documentation: The v1/search endpoint looks similar to the v2/search endpoint on the calling site, but the response is different. But most of the entities that are returned are already present in our code.
What about this:
We implement a working v2/search endpoint which returns the entities in the form we currently have. If some attributes are missing (e.g. in Account), we just ignore them for the moment (the deserializer will just ignore it). We can add them after the 2.0.0 release. This way, we can reduce the effort a bit but still deliver a search feature that works.
What do you think @bocops ?

Yes, offering something that works without going into too much additional details sounds like a good idea.

@andregasser Another thought: I believe you mentioned in a different discussion earlier that it would be sensible to support the recent Mastodon API version (4.x) and the one before it (3.x). Since this was removed in Mastodon API 3.0.0, we should be safe to remove it.
Should we codify this decision about supported APIs somewhere - and if so, where?

I think the best place at the moment would be API.md. I am currently creating an overview there, of what endpoints bigbone supports. But we could also easily add another section there.


Make ray an optional dependency

What this PR does / why we need it:
This PR implements the changes required to make Ray Serve an optional dependency. The code is fully backward compatible for users that don't use Ray. Users who are currently using KServe with Ray will need to make some minor changes to their code when upgrading.
Where before you could register a Ray handle directly and KServe would start the ray server:
ModelServer().start({"custom-model": AlexNetModel})

Now the user must wrap their deployment handle in a RayModel and start the Ray server:
app = AlexNetModel.bind()
handle = serve.run(app)
model = RayModel(name="custom-model", handle=handle)
ModelServer().start([model])

While we could continue to have KServe manage the lifecycle of the Ray server I believe it's cleaner and more flexible to require the user to perform this operation.
Type of changes
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Release note:

Make Ray Serve an optional dependency

Re-running failed tests

/rerun-all - rerun all failed workflows.
/rerun-workflow <workflow name> - rerun a specific failed workflow. Only one workflow name can be specified. Multiple /rerun-workflow commands are allowed per comment.

given the security vulnerabilities in ray, this is awesome

Seems like LGTM tag is removed, @terrytangyuan can you please review again?
We need this feature badly, wondering if we can target this PR for the upcoming release? @njhill @rachitchauhan43 @yuzisun

@yuzisun @sivanantha321 any idea when this changes gets merged? Anything pending here to address? We are also looking to build storage-initializer without ray, hence following up on this.

@yuzisun @sivanantha321 any idea when this changes gets merged? Anything pending here to address? We are also looking to build storage-initializer without ray, hence following up on this.

@cmaddalozzo is not available right now. I will raise a new PR with these changes shortly.

taken care of in https://github.com/kserve/kserve/pull/3834


MAINT: Modify codecov.yml for exclusions

Just to get the ball rolling, I've excluded tests and source directories to start with.
Closes #9074

Eh. Turns out we haven't been very good at test authoring 😃

Should we rethink about this since the drop would be quite significant? It has not provided the increase we have predicted I suppose.

Should we rethink about this since the drop would be quite significant? It has not provided the increase we have predicted I suppose.

I didn't expect an increase. Not too worried about this either way. Let's see what others think.

(I'm not involved enough anymore to say what I think would be appropriate for scipy)
For statsmodels I decided to leave the unit test in the coverage report and ignore any distortion of the overall coverage numbers (which don't say a lot about actual coverage anyway, i.e. having a line run by the unit test doesn't mean we actually "verify" all relevant cases, which we don't do.).
The main reason to include unit test in regular CI including coverage is that unit tests are code and need to be checked (e.g. the mentioned duplicate name problem). That's important for the diff in a PR, but every once in a while I go through coverage of individual modules or folders.
One reason why test coverage for a test module can be low is that it has tests that depend on version, platform or dependent packages that are optional, and they might not apply on the coverage test environment, which will also lower the coverage of the related code.
(Also sometimes I temporarily disable a test and then forget about it.)

I think the coverage checking tool is valuable when reading individual PRs, and looking at specific pieces of code. But I'm not so convinced that the total coverage percentages and keeping track of changes in them is very useful (the testing setup may be prone to spurious issues, and someone would have to spend time babysitting it that maybe could be used for something else).

I think we are all aligned that this is a non-issue hence I'm closing this to reduce the clutter.  We can revisit this later since we roughly know the numbers now.


Does DCGM supports creating groups of GPU from different hosts?

I’ve read the section on groups in the documentation, but I’m still unclear about the limitations of the Groups feature.
I’m not sure if it’s restricted to creating a group composed of GPUs from a single host, or if it’s possible to group cards from different hosts.
There is this line in the DCGM documentation that makes me think that GPU groups are limited to a single host:
"Almost all DCGM operations take place on groups. Users can create, destroy and modify collections of GPUs on the local node"
But then there is no reference to this limitation again, and in the overview it is written a generic:
"... and individual users managing groups of NVIDIA GPUs."
So I was wondering, are the groups limited to single hosts?
Thanks.

@deferen2,
Yes, groups are limited to a single nv-hostengine instance. Internally, groups are just a list of entities local to the hostengine without any special logic attached to it.
WBR,
Nik


doc: add 0.4.9 to 2.2 migration guide

Fix #3399

This will change the indexes, etc, right? We need to document what this could break.

@philips Updated.

@philips All resolved. I am going to merge this.


Testrun failure on adding non-essential dependencies.

Is your feature request related to a problem? Please describe.
Previous Testcases will fail on adding new dependencies (like telemetry calls) to the code.
Describe the solution you'd like
When outputs of dependencies are absent in context, then it should ignore the external dependency calls.
Describe alternatives you've considered
I have considered to create a new testcases with other app_id.

@re-Tick ig is #24 somewhate related to this issue?

@re-Tick ig is #24 somewhate related to this issue?

No it is not related to that. Here, suppose you had created some test cases for a route previously and now you are adding a  new dependency to the route handler. Therefore, previously recorded testcases will fail.


Demos images are broken

Just thought to let someone know that the images for the demos appear to be broken...

Thank you!


Pipeline job pytest_sqlite is failing on master and branches

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/1297
Originally created by @gtsiolis on 2019-11-13 10:49:01

For example, see job #349252767 for 8785774ad66de22850c60731ff7abe70a8a61c28.

View 40 previous comments from the original issue on GitLab


Add functional end-to-end tests for the chart

We need to test the Helm chart's functionality end-to-end:

Install the chart on a test Kubernetes cluster.
Run a test mock backend (can possibly reuse mock backends from Collector testbed).
Configure the chart to send collected traces, metrics and logs to the mock backend.
Run some test workload on the cluster. The workload should generate telemetry: application traces, metrics and logs and cluster metrics and logs.
Let mock backend to receiver generated telemetry and compare against expected data. It would be best that expected data is defined in a set of golden files.

Make sure end-to-end test is run on Github action as part of every PR and main branch build.

Looks like we are already using https://github.com/helm/chart-testing-action which supposedly is what we need to install the chart, so probably step 1 above is already covered.


Test ShowTyping_TestMiddleware_Context_Completes_Before_Typing_Interval is bad.

The test ShowTyping_TestMiddleware_Context_Completes_Before_Typing_Interval is unstable and intermittently fails.
Example: In this build, the test fails in the debug build and succeeds in the release build: https://fuselabs.visualstudio.com/SDK_Public/_build/results?buildId=105006&view=results

Yes, I saw this last week. I had some builds failing consistently.  I merged from master and subsequently the build passed, but I don't see any changes to anything that would affect that.

Seems OK now. Closing the issue.


⚠ Bofrost.lu has degraded performance

In 7778eb3, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1199 ms

Resolved: Bofrost.lu performance has improved in 2cd2a58 after 9 minutes.


How to compress video manually

Current behavior
Does anyone have any code example of a manual compression of a video? I cant figure out what to put for the bitrate for videos from the documentation and it makes the app crash.
Expected behavior
I just wish the documentation showed a better example of the manual video compression, its just showing an empty object as the compression options.
Platform

[] Android
[X] iOS

React Native Version
63.4
React Native Compressor Version
1.5.2
Reproducible Steps And Demo

Did you find any answer?
For example the bitrate, it says "number" and that's it, but no idea what it should be.
I tried lots of different values, yet it looks like video isn't compressed at all, same file size at the end regardless of the parameters I chose. :/

@pierroo nope, yea I tried a lot of different combinations as well, the app either crashes or no compression happens at all.
I would love to just put compression to auto and move on, less work for me but it compresses it too much

Did you guys fix the issue? Still having it and it is pretty annoying since I require different levels of compressions

Anyone encounter anything new since?

I'm not having an issue compressing video manually. This is the code I'm currently using:
const compressedVideoUri = await Video.compress(
  videoPath,
  {
    minimumFileSizeForCompress: 0, // minimumFileSizeForCompress is in Mb
    bitrate: 16,
  }
)

I've tried different combinations for bitrate in my IOS simulator and it looks like it doesn't work correctly - because I write 1 minute video then compress with varying options of bitrate (16, 20, 30, 5, 1) and my output video file size is doesn't change widely + bitrate also varies slightly. In my case, bitrate and video size drastically changed only in case if I set the bitrate to "1"

Here's the related issue of this library that indicates that bitrate is not doing anything under the hood - https://github.com/Shobbak/react-native-compressor/issues/108

🙏 sorry for a long ago I was not maintaining due to the huge office workload, hopefully, I am going to start fixing bugs on a weekend basis,
I will fix at least 2 issues on the weekend, for priority bugs you can join the discord channel https://discord.gg/dtYzk8sp where we can discuss which bug is most important

released in 1.7.2


[RUN] Fix exception on Dist/Step/Time pattern selection in settings

Fix additional entry in new menu and exception in old menu

Thanks!


Clean up profile configs

We should come up with a final (and clean) set of config profiles, and document them in the README
https://github.com/qbic-pipelines/root-tissue-analysis/blob/c56d579fc8972593b566a059a358799cf353f3ad/nextflow.config#L114

addressed in hotfix


Method to Get Old Index Path for New Index Path in Update

In https://github.com/TextureGroup/Texture we're looking to support using NodeControllers for each item, and having the NodeController survive across object updates (reloadItemsAtIndexPaths:) just like IGListSectionControllers do.
Since IGListKit submits reloads as delete/insert pairs, I can't see any public way for us to find out whether, in a given batch update, an insert corresponds to a delete – if an item was updated.
@rnystrom @jessesquires Would you be willing to support that or point me in the right direction?

Is this the same as #546?

It's like that issue, except for reloads rather than moves.

We could probably look into adding that after #657 lands. This is similar to #297 as well.
We can do this pretty easily w/out bothering to support UICollectionViewLayout (specifically UICollectionUpdateActionReload). We can add our new batch update reload pairs onto IGListBatchUpdateData.
@Adlai-Holler what sort of support are you thinking?

Currently seems additive, so marking this for 3.1

Bumped this to new 3.5.0 milestone since 3.4.0 was released already.

Nevermind, bumped to 4.0 since that's the next release. 😄

Bumping this to 4.1.0 since we don't have a need for this at Instagram right now. We would be happy to review and accept a PR if anyone wants to take this on.


result.json file contains weights?

Hi, mdribeiro:
Really appreciate your excellent work. May I ask that the result.json file contains the well-trained model's weights?
Thank you very much
Monica

Hi, mdribeiro:
Really appreciate your excellent work. May I ask that the result.json file contains the well-trained model's weights?
Thank you very much
Monica


Deploy November 2022 third publish

Learn Build status updates of commit 8175602:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sysinternals/downloads/adexplorer.md
:white_check_mark:Succeeded
View

sysinternals/downloads/contig.md
:white_check_mark:Succeeded
View

sysinternals/downloads/index.md
:white_check_mark:Succeeded
View

sysinternals/downloads/media/process-explorer/processexplorer.jpg
:white_check_mark:Succeeded
n/a (file deleted or renamed)

sysinternals/downloads/media/process-explorer/process-explorer.png
:white_check_mark:Succeeded
View

sysinternals/downloads/media/process-explorer/processexplorer2.jpg
:white_check_mark:Succeeded
n/a (file deleted or renamed)

sysinternals/downloads/process-explorer.md
:white_check_mark:Succeeded
View

sysinternals/downloads/sysinternals-suite.md
:white_check_mark:Succeeded
View

sysinternals/downloads/sysmon.md
:white_check_mark:Succeeded
View

sysinternals/index.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 6173b84:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sysinternals/downloads/adexplorer.md
:white_check_mark:Succeeded
View

sysinternals/downloads/contig.md
:white_check_mark:Succeeded
View

sysinternals/downloads/index.md
:white_check_mark:Succeeded
View

sysinternals/downloads/media/process-explorer/processexplorer.jpg
:white_check_mark:Succeeded
n/a (file deleted or renamed)

sysinternals/downloads/media/process-explorer/process-explorer.png
:white_check_mark:Succeeded
View

sysinternals/downloads/media/process-explorer/processexplorer2.jpg
:white_check_mark:Succeeded
n/a (file deleted or renamed)

sysinternals/downloads/microsoft-store.md
:white_check_mark:Succeeded
View

sysinternals/downloads/process-explorer.md
:white_check_mark:Succeeded
View

sysinternals/downloads/sysinternals-suite.md
:white_check_mark:Succeeded
View

sysinternals/downloads/sysmon.md
:white_check_mark:Succeeded
View

sysinternals/index.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Implement well known OpenID Configuration

Description
The PR #5378 initially implemented the OAuth2 provider. I love the idea to have gitea as my SSO provider :-)
However, it seems like the .well-known/... endpoints are missing. This is also stated in the PR, "will be implemented in another PR".
I'm trying to get ArgoCD to work (see this), and it seems like it tries to connect to https://<server>/ .well-known/openid-configuration, which does not exist and returns a 401.
I guess this goes into the same direction as https://github.com/go-gitea/gitea/issues/8534.
Would be cool if gitea had support for that as well!
Edit: More info on the endpoint can be found here

I think that's the part of OpenID provider standard but gitea doesn't implement.

Yes. Interestingly, there is a reference to this endpoint here: https://github.com/go-gitea/gitea/blob/232340f5e3ebe61787021bebea01fd755513c72b/options/locale/locale_en-US.ini#L1772
Sadly I don't think it is relevant at all 🙂

I have started implementing it

@lafriks Glad to see someone is working on it! Any news when we can except this feature to be merged? Thanks a lot!

I'm planning to finish it for 1.12

How would this work when Gitea is running in a subpath (ie, example.com/gitea/)? I'm thinking we could probably put in docs that it isn't supported for for subpath installations (because .well-known has to be served from root path)

@techknowlogick that is not true, it is supported to have it also in subpath

Hi there. I've been researching about OpenID Connect because I'm really interested in centralize auth credentials in gitea for our dev team.
I still don't fully undertand OIDC but correct me if I'm wrong. Would it be possible to implement my own ./well-known/openid-configuration if I write it and serve it statically from my http proxy before the request hits Gitea?
As far as I understand, that file is some sort of mapper of the available oauth endpoints and grant types, right?

any news update?

AFAIC this works already?

AFAIC this works already?

No, still missing userinfo endpoint.

any news update?

userinfo endpoint is in the works https://github.com/go-gitea/gitea/pull/14938
well-known needs someone to work on it

@artizirk I've just sent a PR for well-known: https://github.com/go-gitea/gitea/pull/15355

Looks like well-known and userinfo are merged. this can be closed then?

Closed by #15721 and #15355


Fix reverse imports for Django 2.0

Django 2.0 changed the import path for the reverse function, this PR fixes this in a backwards compatible way.

with this PR would the code work on previous versions as is or would the developers need to do any changes in settings.py? I'd like to support django1.11x(LTS version) and above (django2.x) and update the middleware to the new way introduced in django1.10

@abe312 These changes should work with older versions, I don't have any older versions of Django that use it. If you want to install it and try it out, you can install my branch locally with pip by running pip install -e<EMAIL_ADDRESS>and testing that the app boots up as normal.

@abe312 Any progress on this? Thanks.

I am yet to test it with django 1.11x so it doesn't break things with people using it in django 1.11
I'm currently preoccupied with other things.

@abe312 I prove the PR on django 2.2 and works perfectly. Thanks @iheanyi !

It would be great for this PR to be completed. Simple change that maintains compatibility with 1.11 and works through 3.0.

Sorry for waiting forever to get this done. Amazing work by @iheanyi 👍
I've been busy with college, interview preparation and my other Javascript projects.
I decided to start a django project today and HAD to set aside some time today for this and test everything out
Here's a dummy project for new people: https://github.com/abe312/testing-subdomains
Btw I pushed it to pypi too
pip install subdomains
new version is 3.0.1

Thank you, thank you! That's very helpful.

Sorry for waiting forever to get this done. Amazing work by @iheanyi 👍
I've been busy with college, interview preparation and my other Javascript projects.
I decided to start a django project today and HAD to set aside some time today for this and test everything out
Here's a dummy project for new people: https://github.com/abe312/testing-subdomains
Btw I pushed it to pypi too
pip install subdomains
new version is 3.0.1

Thank you! Awesome job :)

Thanks for landing it!


nixos/stage-2-init: Change permission of /etc/nixos only if it exists

When I boot there's a warning stage-2-init: install: cannot change permissions of '/etc/nixos': No such file or directory because my /etc/nixos is a symlink to $HOME/dotfiles.
/etc/nixos -> /home/artturin/dotfiles

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Tested and no more warning and system boots

nixosTests.simple works

This seems to cause problems on the installation media because /etc/nixos doesn't exist here: https://github.com/NixOS/nixpkgs/blob/24b3f82bc287b8b1c115cb5a590c0afc397a5244/nixos/modules/profiles/clone-config.nix#L102C3-L102C3

This seems to cause problems on the installation media because /etc/nixos doesn't exist here: https://github.com/NixOS/nixpkgs/blob/24b3f82bc287b8b1c115cb5a590c0afc397a5244/nixos/modules/profiles/clone-config.nix#L102C3-L102C3

All PR should be doing is not set the permissions if the directory does not exist already

Oh...
$ install -m 0755 -d $PWD/hello
$ ls
 hello/
$ ln -s something notexist
'notexist' -> 'something'
$ ls -l
lrwxrwxrwx artturin artturin 9 B Sat Sep  9 06:59:44 2023  notexist@ ⇒ something
drwxr-xr-x artturin artturin 2 B Sat Sep  9 06:59:36 2023  hello/
$ install -m 0755 -d $PWD/notexist
install: cannot change permissions of ‘/home/artturin/nixgits/my-nixpkgs/test/notexist’: No such file or directory

Then it should check for a broken symlink

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


#53 Script to send an automated Email

Added a python file that automates sending emails  by reading data from an external csv file

Please update external Readme.md

Sure I'll do that now!

Please resolve the merge conflicts


fix(Request.get): Request.get(headerName) returns headerValue

What:
Request.get(headerName) returns headerValue

Why:
Necessary when test subject references a header.

How:
Added implementation.  Added a test.

:tada: This PR is included in version 1.9.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Https with cacerts

This addresses #19 -
Adds a -https flag, which forces communication to https
Adds a -insecure flag, which allows self-signed certificates to work (bypassing cert validation)
Adds a -cacert flag, which allows you to specify the CA certificate to use during https (used for when the CA is a private CA, and not part of your system CA cert store)
This means that creating a client can now fail, if the CA cert provided is bad.

Hi,
Thanks for your contribution, it looks good to me, except this extraneous merge commit.
Can you rebase your branch to eliminate it?
Thanks!

Closing and opening a new PR without the merge commit.


Doesn't work unless the docker registry container is named "docker-registry"

I spent too much time wondering why it wasn't working until I realised that the name of the docker registry container must be set to "docker-registry".
Please update your Readme to stress that point!
Thanks, it's a useful container.

Actually, my fault.  I mistyped something and then noticed in the config upstream docker-registry!
It now works.
But it would be good to stress - don't change the name of the docker registry container.


WIP : Increase test coverage for core models

[ ] Add test to create an OmicsUnitType
[ ] Add test to create an OmicsUnit

Coverage increased (+0.4%) to 98.921% when pulling c8266c9592fe63bfd28fec079f60ac6b56755fb0 on increase-test-coverage into bc7799a68c345d8f5288af61e2956b3770e8e504 on master.

Coverage increased (+0.4%) to 98.919% when pulling 466255fb641a85567c7030a89888cee3c5dc75a5 on increase-test-coverage into bc7799a68c345d8f5288af61e2956b3770e8e504 on master.

Coverage increased (+0.4%) to 98.923% when pulling 0b630d8821782f4c0f3e5e6ba53645aaf3ea8bd8 on increase-test-coverage into bc7799a68c345d8f5288af61e2956b3770e8e504 on master.


filetype: rock_manifest and config.ld files cannot be recognized

Problem: Rock_manifest and config.ld files cannot be recognized.
Solution: Add a pattern for rock_manifest and config.ld files

thanks!


Backport authenticate_by to prevent timing-attacks.

Backport authenticate_by to prevent timing-attacks.
https://github.com/rails/rails/blob/main/activerecord/lib/active_record/secure_password.rb#L41.
Skipped tests, but if you want I can write the tests also :)

Hah, you beat me to it!
Should we only include this if the method doesn't already exist?

Yup, I agree. If you already done it, just close my PR np :)
If not I can do it :)

I haven't done it yet, so go for it. 👍
Makes me also want to backport the other authentication modules that Jonathan has been working on in 7.1. Should we do all of them and just use the new goodness everywhere?

I extracted into a Backports module so we can stash all the Rails 7.1 stuff in there and only include it for <= 7.0.