text:
Question: Performance of trickster and memory usage

Hi, we discussed this at the slack channel some time ago when I was deploying Trickster in our company and had some issues regarding memory usage and this leading to frequent OOM kills.
Since than I did not see anyone mentioning any bigger setups but now @SuperQ mentioned deploying it in GitLab so I'm wondering how is Trickster working for you?
Would it be possible to share any performance data?
Possibly we can take this to the slack channel
Thank's for any info on this

Yet another slack channel, happy to talk about it on the official #prometheus IRC/Riot channel.

Well Trickster performance is not Prometheus related actually, but ok will take it there.
Thanks

authors: FUSAKLA SuperQ

repo: Comcast/trickster


text:
Automap not identifying the method inside the same object - Compilation Error

Experiencing compilation error while using functions inside automap when the etl.util version is updated to 1.19.1-20150911071038-21493ff
Error Scenario :

Automap @automap def transform is defined in an execution object AutomapExecution
A function def  createKey defined in the execution object  AutomapExecution.
Automap transform is using the function createKey during its transformation

Previous working version of etl.util was 1.14.1-20150703071108-fb2a434
object SecuPrtyExecution extends SimpleMaestroJob {

  def getAsetIdnnBk(x: SecuPrty): String = s"FRL~CL~${x.tiamSecuI}"

   @automap def transform (x: SecuPrty): SecuPrtyTransformed = {
     asetQlfyC         := "CL"
     srceAsetN         := s"${x.tiamSecuI}"
     asetIdnnBk        := getAsetIdnnBk(x)
     asetIdnnHk        := Utils.generateMd5Hash(getAsetIdnnBk(x).toUpperCase).toUpperCase
     strtS             := ClmUtils.appendZeros(x.strtS, 23)
     endS              := ClmUtils.appendZeros(x.endS, 23)
     updtS             := ClmUtils.appendZeros(x.updtS, 27)
     mstrSrceSystC     := "FRL"
     startDate         := x.extracttimestamp
     endDate           := Some("\\N")
     recordDeletedFlag := Some("\\N")
     ctlId             := "101"
     fileId            := "ST_101_65_SECU_PRTY".substring(7, 9)
     processName       := "LD_101_65_SECU_PRTY"
     processId         := "1"
     updateProcessName := Some("\\N")
     updateProcessId   := Some("\\N")
     startTs           := Some("\\N")
     endTs             := Some("\\N")
  }
}

Compilation Error :
Got errors trying to create automap for au.com.cba.omnia.etl.farlo.clm.thrift.SecuPrtyTransformed.
Invalid type for transforming 'asetIdnnBk: not found: value getAsetIdnnBk.
Invalid type for transforming 'asetIdnnHk: not found: value getAsetIdnnBk.
Got no default or manual value for the these fields: asetIdnnBk, asetIdnnHk.

where getAsetIdnnBk is a function defined in the same object as automap is defined and is used to get the value for the fields  asetIdnnBk & asetIdnnHk
Please click to go to the code

Please find the bug reproduced in maestro-examples here

source: gharchive/issue

repo: CommBank/maestro

license_type: permissive

license_source: bigquery


text:
Issue with tellraw and customName

Hello,
I get error to parse tellraw commands:
/tellraw @a [{"selector":"@s"}," throws item"]

Error:
Updated error.
Line #1: Failed to parse 'tellraw @a [{"selector":"@s"}," throws item"]':
Parser 'minecraft:component' failed to parse '[{"selector":"@s"}," throws item"]': Expected a valid JSON.

And customName does not convert:
/summon item ~ ~ ~ {PickupDelay:70,CustomName:"Terracotta",CustomNameVisible:1,Item:{id:"minecraft:magenta_glazed_terracotta",Count:1b,tag:{display:{Lore:["lore line 1","lore line 2"]}}}}

I get this from spu:
/summon item ~ ~ ~ {PickupDelay:70,CustomName:"Terracotta",CustomNameVisible:1,Item:{id:"minecraft:magenta_glazed_terracotta",tag:{display:{Lore:["lore line 1","lore line 2"]}},Count:1b}}

It will execute but there is warning in console. The correct one seems to be:
/summon item ~ ~ ~ {CustomNameVisible:1b,PickupDelay:70,CustomName:"{\"text\":\"Terracotta\"}",Item:{id:"minecraft:magenta_glazed_terracotta",Count:1b,tag:{display:{Lore:["lore line 1","lore line 2"]}}}}

(From https://mcstacker.net/1.13converter.php)
Thanks.

Thank you for the quick fix.
I have sent you an email, please check that out.
Thanks again.

BTW The tellraw 1.13 result should be
/tellraw @a {"selector":"@a","color":"white","extra":[{"text":"throws","color":"white"}]}

It seems the extra section is only used for more than one segment in tellraw, like this:
/tellraw @a {"text":"test","color":"white","extra":[{"selector":"@s","color":"aqua"}]}

Arrays can still be used in text components.

authors: SPGoding phoenixlzx

repo: CommandBlockLogic/spu

license: MIT

license_source: github-api


text:
🛑 Community Lores Homepage is down

In fd2313e, Community Lores Homepage (https://community-lores.gq) was down:

HTTP code: 500
Response time: 3295 ms

Resolved: Community Lores Homepage is back up in 032aee2.

repo: Community-Lores/status-page


text:
Bump versions of rustc-serialize + hyper

rustc-serialize will no longer build on modern rust, and hyper needs updating in order to fix OpenSSLv1 deprecation issues.

Thank you for the contribution!

source: gharchive/pull-request

authors: Jonty bfrog

repo: CommuteStream/tflgtfs


text:
batch API request

Hi,
If we add functionality to create batch request for commvault REST APIs, it will be beneficial for invoking multiple API requests in one batch. Currently we have to call each API one by one. If we have a function to create a batch of a specific number of API requests say 10 or 25 then the user can create a batch of all the requests and then execute at once. A unique string identifier can be provided by the user for each API request and the same identifier will be returned with the response so that user will be able to identify which response is associated with which API request. We can add a method like "batch_request" in commcell.py.

Nice idea.
You can make the enhancement and open a Pull Request on the dev branch.

Is there any progress on this?

Closing this issue, as there has been no progress on this in long time.

repo: CommvaultEngg/cvpysdk


text:
Not able to add to Krypton.Navigator at runtime

I'm not able to programatically add or insert pages into Krypton.Navigator at runtime.
using ComponentFactory.Krypton.Toolkit;
using ComponentFactory.Krypton.Navigator;

private void InsertNewPage()
{
    // Create a new page and give it a simple name
    KryptonPage newPage = new KryptonPage();
    newPage.Text = "Page";

    // Insert page before the last page
    kryptonNavigator1.Pages.Insert(kryptonNavigator1.Pages.Count - 1, newPage);

    // Make the new page the selected page
    kryptonNavigator1.SelectedPage = newPage;

    // If this is the third page then we must have two document pages
    // and so the user is now allowed to delete document pages
    if (kryptonNavigator1.Pages.Count == 3)
        kryptonNavigator1.Button.CloseButtonDisplay = ButtonDisplay.ShowEnabled;
}

No luck :(

I had to change this property to be writeable:
ComponentFactory.Krypton.Navigator/Controls Navigator/KryptonNavigator.cs
        private void CreateChildControl()
        {
            // Create the internal panel used for containing content
            _childPanel = new KryptonGroupPanel(this,
                                                _stateCommon.HeaderGroup,
                                                _stateDisabled.HeaderGroup,
                                                _stateNormal.HeaderGroup,
                                                new NeedPaintHandler(OnGroupPanelPaint));

            // Make sure the panel back style always mimics our back style
            _childPanel.PanelBackStyle = PaletteBackStyle.ControlClient;

            // We need to know whenever a control is removed from the child panel
            _childPanel.ControlRemoved += new ControlEventHandler(OnChildPanelControlRemoved);

            // Add panel to the controls collection
            //  ((KryptonReadOnlyControls)Controls).AddInternal(_childPanel);
            (Controls).Add(_childPanel);
        }

repo: ComponentFactory/Krypton


text:
Display identity creation error details

Purpose
Notabene now provides error message details in the detail field. This PR ensures that we save that information on rejected identities, and that we display the message to the user.
Changes

detail is saved in the identity table if the identity creation fails.
the detail field is displayed for failed identities.

Checklist

[x] My code follows the style of this project.
[x] The code compiles without warnings.
[x] I have performed a self-review of the changes.
[x] I have documented my code, in particular the intent of the
hard-to-understand areas.
[x] (If necessary) I have updated the CHANGELOG.

Could also link this PR to #165

As agreed, I pushed some changes to the presentation on the IdentityCard.
If an account is rejected, I get an error about checking the node status, as the account address isn't on chain. Should be able to avoid this?

Yeah. That should not be happening, but it may be related to the node-sdk changes Søren made. It is, however, unrelated to this PR.

As agreed, I pushed some changes to the presentation on the IdentityCard.
If an account is rejected, I get an error about checking the node status, as the account address isn't on chain. Should be able to avoid this?

Yeah. That should not be happening, but it may be related to the node-sdk changes Søren made. It is, however, unrelated to this PR.

I'll file a bug instead.

authors: orhoj soerenbf

repo: Concordium/concordium-desktop-wallet


text:
VSCode ext: Custom tasks prefixed with .: instead of ccd: or concordium:

Bug Description
The configurable tasks are prefixed with .: instead of ccd: or concordium:.
In comparison, the regular rust tasks are prefixed with rust:.
I assume that this can lead to confusion, if you also have tasks for smart contracts on other chains. For example for the build task, which has the full name .: Build smart contract
Steps to Reproduce

Run Tasks: Configure Task
See the names of the different tasks available

Expected Result
rust: cargo clean
...
concordium: Build smart contract
concordium: Test smart contract
Actual Result
rust: cargo clean
...
.: Build smart contract
.: Test smart contract
Versions

Software Version: 0.1.0-0
OS: macOS Ventura (Apple M2)

Right, will fix this.
Just for information, it only happens when the smart contract project root is opened in VS Code, as the . is currently representing the relative path where the task originated from.
So when opening a directory with multiple smart contracts, this becomes the path to each of them, so they can be distinguished.

authors: Bargsteen limemloh


text:
Getting Image failed only on VIVO S16

Auto captured a broken picture on Vivo S16. Cause I don't own such a phone , there's no debuging info.Anyone else ever met such problem?

This issue has been resolved in version 0.1.3. Please update to the latest version and verify if the problem persists. If you continue to experience the same error, feel free to reopen the issue for further assistance.

authors: CitienTZ Conezi


text:
feat: 同步OpenAI更新，更新0613模型及3.5 16K模型 及 修复stream模式引入的两个bug

feat: 同步OpenAI更新，更新0613模型及3.5 16K模型
fix: 修复http模式下outgoing机器人无法使用的问题
fix: 修复Stream模式下启动，service_url未配置报错的问题
http模式鉴权的时候没有考虑outgoing机器人的处理场景，outgoing机器人启动会报错：
2023/06/14 23:56:53 WARN [该请求不合法，可能是其他企业或者未经允许的应用调用所致，请知悉！]
修复后OK，已验证场景：
1.allow_outgoing_groups 无配置：程序正常放行
2.allow_outgoing_groups 配置正确：程序正常放行
3.allow_outgoing_groups 配置错误：程序正常拦截
在提出此拉取请求时，我确认了以下几点（请复选框）：

[x] 我已阅读并理解贡献者指南。
[x] 我已检查没有与此请求重复的拉取请求。
[x] 我已经考虑过，并确认这份呈件对其他人很有价值。
[x] 我接受此提交可能不会被使用，并根据维护人员的意愿关闭拉取请求。

看到他已发布了新的release，你这边方便的话，引用他这版的tag吧：
https://github.com/sashabaranov/go-openai/releases/tag/v1.11.1
操作流程是更改go.mod里边的版本为 v1.11.1
然后执行go mod tidy -v
检查一下是否有冲突性的更新，如果程序能正常运行，说明就没问题。

看到他已发布了新的release，你这边方便的话，引用他这版的tag吧：
https://github.com/sashabaranov/go-openai/releases/tag/v1.11.1
操作流程是更改go.mod里边的版本为 v1.11.1 然后执行go mod tidy -v 检查一下是否有冲突性的更新，如果程序能正常运行，说明就没问题。

好的，我下午试一下

authors: eryajf ffinly

repo: ConnectAI-E/Dingtalk-OpenAI


text:
Simplify blobSidecar availability checker

Assuming the following is true:
validating kzg commitments and inclusion proof guarantees that blobs and commitments are valid and that the commitments are part of the block.
Thus, if we always do those checks before sending the blobSidecar in the pool (BlockBlobSidecarsTrackersPoolImpl), then we can remove all the checks we do on in ForkChoiceBlobSidecarsAvailabilityChecker and the only that remains is the Tracker signalling when the blobs are completed.
sources are:

Syncing code
RPC requests
inbound GOSSIP
local EL

If we trust local EL, and we apply the validation over all the sources, than it means this is feasable.
If we want to be paranoid, we could have a BlobSidecar to be an interface, the actual BlobSidecar will be BlobSidecarImpl and then we can have a ValidatedBlobSidecar type. The validation process will accept BlobSidecarImpl and produce ValidatedBlobSidecar. Then in the BlockBlobSidecarsTrackersPoolImpl we can only allow validated blobs to go in.
NOTE:
The availability checker has being designed when BlobSidecar wasn't having the inclusion proof. So we were forced to "postpone" the validation to the moment in which the block become available.

WDYT @StefanBratanov @zilm13

I agree, we are trying to avoid duplicate validations in PeerDAS too.
Syncing along with req/resp includes kzg proof and inclusion proof checks (which we miss, ouch https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/p2p-interface.md?plain=1#L343)
Instead of making ValidatedBlobsidecar, I'd add commitment/proof/blob check in createBlobSidecar, which pretty fast on verification and that's all.

Instead of making ValidatedBlobsidecar, I'd add commitment/proof/blob check in createBlobSidecar, which pretty fast on verification and that's all.

Not sure it can end up being a clean solution.. we can have a chat on that.

repo: Consensys/teku


text:
Document 1Password Backend Deployment

Document all steps needed to deploy the operator + 1password backend config properly.

Closing. Duplicate of https://github.com/ContainerSolutions/externalsecret-operator/issues/45


text:
Improve go report card score

https://goreportcard.com/report/github.com/ContainerSolutions/externalsecret-operator
Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command

        externalsecret-operator/secrets/asm/backend_test.go
        Line 1: warning: file is not gofmted with -s (gofmt)

Golint is a linter for Go source code.

        externalsecret-operator/secrets/onepassword/client.go
        Line 10: warning: exported type Client should have comment or be unexported (golint)
        Line 15: warning: exported type OP should have comment or be unexported (golint)
        Line 19: warning: exported method OP.SignIn should have comment or be unexported (golint)
        Line 30: warning: exported method OP.Get should have comment or be unexported (golint)

IneffAssign detects ineffectual assignments in Go code.

        externalsecret-operator/secrets/backend/backend.go
        Line 72: warning: ineffectual assignment to err (ineffassign)

Misspell Finds commonly misspelled English words

        externalsecret-operator/secrets/backend/backend_test.go
        Line 92: warning: "unkown" is a misspelling of "unknown" (misspell)

        externalsecret-operator/secrets/asm/backend.go
        Line 79: warning: "paramters" is a misspelling of "parameters" (misspell)

        externalsecret-operator/secrets/asm/backend_test.go
        Line 79: warning: "paramters" is a misspelling of "parameters" (misspell)
        Line 90: warning: "paramters" is a misspelling of "parameters" (misspell)
        Line 102: warning: "paramters" is a misspelling of "parameters" (misspell)

Fixed in #63
Found 0 issues across 29 files


text:
The player has an inconsistent look in different browsers

Hi,
Attached are the screens of the player in different browser.
Chrome:

Firefox:

Safari:

Curious to know why it looks inconsistent and if there is a workaround to make it look the same.
Thanks

I'd imagine the difference is due to the each browser having it's own design for controls when you don't specify your own custom controls. Here are two links for building your own custom controls:

https://developer.mozilla.org/en-US/Apps/Fundamentals/Audio_and_video_delivery/cross_browser_video_player
http://blog.teamtreehouse.com/building-custom-controls-for-html5-videos

@DVassilev would you suggest to make a custom component that will render the

play/pause button
"timeline"
volume control
download icon
this way through css one can ensure the styling is consistent?

@zverbatim If that's what you want to do, sure

@DVassilev probably i'll have to make my own component. This one relies on <audio> tag.
Example:
<audio preload="auto" controls="" webkit-playsinline="" src="audio.wav" style="width: 100%; height: 100%; display: block;"></audio>

Any raw video/audio URL passed in to ReactPlayer is played using native <video> or <audio> elements to let each browser load and display the media as they see fit. The difference you see is simply a result of each browser's native controls looking different.
This has the advantage of avoiding any bugs or constraints of custom controls (eg how would you support Safari's AirPlay with custom controls?), but you can always use controls={false} and render your own using some sort of internal state (like the demo page). The library is deliberately flexible in this regard and gives you the freedom to control it (or not control it) as you wish.

authors: CookPete DVassilev zverbatim

repo: CookPete/react-player


text:
Pass on error event

The audio element onerror event was not passed on to the react-player onError method. This PR fixes that. This makes it possible to inspect the actual error: Event > srcElement:audio > error:MediaError > code [1,4]
Error codes can be found here: https://dev.w3.org/html5/spec-preview/media-elements.html#error-codes
This fixes #44

I've been working on a more thorough fix for onError but if this helps you for now there's no reason not to merge it.
Could you remove the dist files from the commit? They are only there for bower and are automatically built and added to the repo when versioning.

Also @pors, could you also add a "Fixes #44" to the commit notes? So that auto-changelog will pick it up for the change log.

@CookPete all should be good now.

Merged this manually just to tidy up the commit message a bit. Nice work!

authors: CookPete pors


text:
⚠ Samsung has degraded performance

In 40b0a87, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2139 ms

Resolved: Samsung performance has improved in e2f99e2.

repo: CoopPlayzz/Webstatus-electronicbrands


text:
⚠ Samsung has degraded performance

In 99a1265, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 3238 ms

Resolved: Samsung performance has improved in 1df169b.


text:
⚠ Samsung has degraded performance

In d6adae0, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2009 ms

Resolved: Samsung performance has improved in 3899303.


text:
⚠ Samsung has degraded performance

In 029f4d6, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2524 ms

Resolved: Samsung performance has improved in 51da187.


text:
⚠ Fortnite has degraded performance

In 238dee5, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1629 ms

Resolved: Fortnite performance has improved in 24d57be.

repo: CoopPlayzz/Webstatus-games


text:
⚠ Fortnite has degraded performance

In 067e867, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1550 ms

Resolved: Fortnite performance has improved in 623b884.


text:
Unable to publish continuously in while loop

Hello There,
I have a C++ code, where what I would basically like to do is to publish a message continuously every one second endlessly. Below is the sample. After running the code, I realized that it fails to publish to the exchange. But whenever I change the while (1) loop to a for loop e.g. for (int i=0; i<10; i++) it could publish 10 messages. But what I really want is for it to run continuously.. Could you please let me know what have i done wrong please? appreciate your help here, thanks
#include <ev.h>
#include <amqpcpp.h>
#include <amqpcpp/libev.h>
#include <unistd.h>

int main()
{
    // create event loop
    auto *loop = EV_DEFAULT;

    // construct handler
    AMQP::LibEvHandler handler(loop);

    // create tcp connection
    AMQP::TcpConnection connection(&handler, AMQP::Address("amqp://localhost/"));

    // create a channel
    AMQP::TcpChannel channel(&connection);

    // wait until the channel is ready
    channel.onReady([&channel]() {

        // declare an exchange
        channel.declareExchange("myexchange");

        // create a queue
        channel.declareQueue("myqueue");

        // bind exchange to queue
        channel.bindQueue("myexchange", "myqueue", "routingkey");

        // loop to publish multiple messages
        //for(int i = 0; i < 10; i++)
       while (1)
       {
            // publish and sleep to highlight the problem
            channel.publish("myexchange", "routingkey", "hello-there");
            usleep(1000000);
        }
    });

    // run the event loop
    ev_run(loop, 0);

    // done
    return 0;
}```

Do not call usleep(), but check the documentation of libev on how to set up a timer.

repo: CopernicaMarketingSoftware/AMQP-CPP


text:
Mac OS: M1 ARM nuget package

Is it possible to create an equivalent M1 based nuget package? Something like runtime.osx.10.10-arm.CoreCompat.System.Drawing

Did you find a solution how to use System.Drawing packages on Mac M1? I'm facing same issue now :(

repo: CoreCompat/libgdiplus-packaging


text:
GeoSIR error: _recreate_rtree() missing 1 required positional argument: 'new_agents'

Dear GeoSIR friends:
I have tried to run GeoSIR project but I have two issues:

Firefox does not display neither map nor data
How can I configure my browser in order to display the map?

Chromium displays the map and data, but when I tried to run the model, I get the next message:

ERROR:tornado.application:Uncaught exception GET /ws (127.0.0.1)
HTTPServerRequest(protocol='http', host='127.0.0.1:8521', method='GET', uri='/ws', version='HTTP/1.1', remote_ip='127.0.0.1')
Traceback (most recent call last):
File "/lib/python3.7/site-packages/tornado/websocket.py", line 649, in _run_callback
result = callback(*args, **kwargs)
File "/lib/python3.7/site-packages/mesa_geo/visualization/ModularVisualization.py", line 199, in on_message
self.application.model.step()
File "/mesa-geo-master/examples/GeoSIR/model.py", line 217, in step
self.grid._recreate_rtree()  # Recalculate spatial tree, because agents are moving
TypeError: _recreate_rtree() missing 1 required positional argument: 'new_agents'
Do you know how can I fix it?
My platform is LinuxUbuntu 18.04 and python 3.7 .
Thanks.

GeoSIR requires the latest (unreleased) version of mesa_geo. Try to install from GitHub or clone the repo and install locally

The latest version of mesa_geo fixed this issue

authors: Corvince applibres

repo: Corvince/mesa-geo


text:
🛑 Plex is down

In 3bd80b4, Plex ($URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Plex is back up in b663e62 after 1 hour, 4 minutes.

repo: CoryManson/uptime


text:
Revisit fee for wasm msg size

With the new deserialization fee in wasmvm we charge twice

Could you elaborate what we charge twice and where?
wasmvm charges for the work done in wasmvm (the deserialization from the contract's binary response into structures). wasmd should charge for any work performed after that.

In the gas register we multiply the incoming message size by a factor see https://github.com/CosmWasm/wasmd/blob/master/x/wasm/keeper/gas_register.go#L127 .

But this is the input into the contract, not the output. So it does not duplicate the new deserialization fee in wasmvm.
However, the deserialization of input messages is executed in Wasm and metered there. So if there is no significant work in wasmd at this point, we can reconsider the linked fee.

repo: CosmWasm/wasmd


text:
AttributeError on get_transactions

Also, this isn't showing up on Sentry... I guess because it's being caught? But it still should.

fixed here https://github.com/CounterpartyXCP/counterparty-core/pull/2299/commits/fc7701b36099483ae45c4b6473a5c69efcb580ca

Also, this isn't showing up on Sentry... I guess because it's being caught? But it still should.

everythins is handled by jsonrpc.JSONRPCResponseManager.handle

authors: adamkrellenstein ouziel-slama

repo: CounterpartyXCP/counterparty-core


text:
Separate Continuation Indent for Block Statements

Thanks for developing this formatter!
I use a convention of 4 spaces for continued lines for regular statements, but 8 spaces for lines after the start of a block (e.g. if statement, function declaration, loops) to clearly distinguish the block container from the statements inside it:

local regular_statement = 'hello '
    .. 'world

function func(a, b,
        c, d)
    print('hi')
end

if a > 2
        and b == 5
        and c = 3
    return 1
end

As far as I can tell continuation_indent applies to both cases. Is there a way to have a different indent before statements inside a block?

I'm sick, I'll implement it in a few days.

I'm sick, I'll implement it in a few days.

It's not really urgent, but thanks for taking the time to reply. I hope you get well soon!

after update you can set continuation_indent.before_block = 8

authors: CppCXY firas-assaad

repo: CppCXY/EmmyLuaCodeStyle


text:
Create user service

A micro-service in the core/services directory that will facilitate user related workflows through http endpoints. Example workflows include:

Mobile number OTP and email login
SSO related workflows for login: google, facebook, whatsapp
receive roles based on which permissible actions across the system can be determined
get relevant user information, including settings, role

Covered in stories under epic-1 #62

repo: CraftsmenLtd/BloodConnect


text:
CASMINST-4794: Correct misspellings and one other error, of varying severities

Summary and Scope

Fixes # CASMINST-4794

Issue Type

Bugfix Pull Request
Docs Pull Request

I originally opened this to correct the fact that the help docs state the incorrect default value for the --s3-secret argument when doing the NCN image handoff. The default was changed between csm-1.0 and csm-1.2, but the help docs were not updated to reflect that.
While I was making that change, I noticed some misspellings in messages that were displayed to the user, and in some of the code comments. This ticket fixes those as well.
Finally, I noticed that one of the kernel parameter values in the pit/dnsmasq.go file had a typo that would have caused problems if it was used. Since this error has not been reported by anyone, I'm assuming that the string with the typo is not frequently used. Nevertheless, it seemed like something we should correct.
Prerequisites

[X] I have included documentation in my PR (or it is not required)

I did no testing of this because none of my changes were really testable (beyond, I guess, the mistake in the dnsmasq file. But I don't know how to test that, and inspection of the change that I made makes it obvious that it previously was a typo and my change is what was intended.
Idempotency
N/A
Risks and Mitigations
Only one change in this PR modifies anything other than strings that are output to the user, and that is the one character typo fix in the dnsmasq file. Because of this, I think the risk of including this PR is very small. Given that nobody has reported any of these issues (to my knowledge), it's probably also true that the risk of not including it is small. However, since I believe every single one of these changes is completely uncontroversial and also tiny in scope, I think the better course is to make these changes.

/backport main

repo: Cray-HPE/cray-site-init


text:
[Bug Report]

Describe the bug
A clear and concise description of what the bug is.
Versions (please complete the following information):

Minecraft Server Version: [1.16.5 PaperSpigot]
Plugin Version: [1.10.1]

*Do NOT say Latest use /version crazycrates in the console.
Issue
Welcome to your plugin there is (I think) one untranslatable message I'm attaching a screenshot, I'd like to translate it, but I can't find it in all files
Screenshots

Line 24 - Obtaining-Keys

authors: RyderBelserion stillerek

repo: Crazy-Crew/Crazy-Crates


text:
🛑 sneak.page is down

In f95051d, sneak.page (https://sneak.page) was down:

HTTP code: 0
Response time: 0 ms

Resolved: sneak.page is back up in df5b9da after 11 minutes.

repo: Crazy-Marvin/upptime


text:
🛑 sneak.page is down

In 0b2cfbc, sneak.page (https://sneak.page) was down:

HTTP code: 0
Response time: 0 ms

Resolved: sneak.page is back up in 7aafaea after 8 minutes.


text:
🛑 sneak.page is down

In 0a8a77a, sneak.page (https://sneak.page) was down:

HTTP code: 0
Response time: 0 ms

Resolved: sneak.page is back up in 38830ed after 8 minutes.


text:
🛑 sneak.page is down

In 6954e5f, sneak.page (https://sneak.page) was down:

HTTP code: 0
Response time: 0 ms

Resolved: sneak.page is back up in c209da3 after 12 minutes.


text:
Does not work with Alloy Forgery REI Recipe Page

To Reproduce :

Install REI, Alloy Forgery, BetterDarkmode
Change font to White with this mod
Open Alloy Forgery recipe page
The font still in Dark Gray

Hey,
I added REI compatibility. You can checkout the 2.1.0 release

Hey, I added REI compatibility. You can checkout the 2.1.0 release

Would you please port that to 1.18.2?

@Crec0

Grab the artifact from there: https://github.com/Crec0/BetterDarkMode/actions/runs/2962066687

Grab the artifact from there: https://github.com/Crec0/BetterDarkMode/actions/runs/2962066687

thanks, will it made available public?

I will make a release for it


text:
Can't add secret mask / All configured authentication methods failed

Hi,
I can not get this to work "at all" on Github Actions.
https://github.com/AndreMikulec/testGithubActions/blob/cbfb3a172597e6064cc5398f87565cb2d3433462/.github/workflows/Test_SFTP_Upload_Files.yml
https://github.com/AndreMikulec/testGithubActions/runs/7377321008?check_suite_focus=true
Sun, 17 Jul 2022 11:39:53 GMT
Warning: Can't add secret mask for empty string in ##[add-mask] command.
Sun, 17 Jul 2022 11:39:56 GMT
Error: Action failed with error Error: connect->getConnection: All configured authentication methods failed

Do you have ANY simple working example, at all?
Does https://github.com/Creepios/sftp-action just NOT work, [anymore]?
This sftp target is the same as what I use on Appveyor.
https://github.com/AndreMikulec/r-base/blob/40dda14d5957ea5f2190825d70df3bee23e1e966/appveyor.yml#L85
When I try manually, this works, fine.
AnonymousUser@ANONYMOUST ~
$ sftp andremikulec,andremikulec.u@frs.sourceforge.net
(andremikulec,andremikulec.u@frs.sourceforge.net) Password:
Connected to frs.sourceforge.net.
sftp> pwd
Remote working directory: /
sftp> cd /home/frs/project/andremikulec
sftp> pwd
Remote working directory: /home/pfs/project/andremikulec
sftp>

psftp: no hostname specified; use "open host.name" to connect
psftp> open frs.sourceforge.net
login as: andremikulec,andremikulec.u
Keyboard-interactive authentication prompts from server:
| Password:
End of keyboard-interactive prompts from server
Remote working directory is /
psftp> cd /home/frs/project/andremikulec
psftp> pwd
Remote directory is /home/pfs/project/andremikulec
psftp>

Thanks,
Andre Mikulec

I get the same Warning, nevertheless it works in my case. I use the example given in the README.
I use this .yml file:
on: push name: Deploy website on push jobs:  upload_files:     runs-on: ubuntu-latest     name: Upload files.     steps:     - name: Checkout       uses: actions/checkout@v2.3.4     - name: Upload Files       id: upload       uses: Creepios/sftp-action@v1.0.3       with:         host: ${{ secrets.SERVER }}         port: ${{ secrets.PORT }}         username: ${{ secrets.USERNAME }}         password: ${{ secrets.PASSWORD }}         localPath: './'         remotePath: './'

repo: Creepios/sftp-action


text:
HandBrake Pipeline Step

Would be nice it this could be part of the preprocessing step, shaves over 1GB per episode.

FFMPEG can do it..

repo: Crunchy-DL/Crunchy-Downloader


text:
Fix incorrect baker data in accounts

Problem: The Tezos RPC call ../votes/listings is used to fetch the number of baker rolls and, ultimately, set baker status in the accounts tables. This RPC call returns no results for certain phases of governance like testing. This might have always been a bug or triggered by some relatively recent change in node behavior. Due to this, the accounts table shows incorrect data for is_baker in the accounts table.
Fixes:

[ ] Change the logic for setting is_baker in the accounts tables to check the bakers table for a valid record.
[ ] To set the 'rolls' value in the bakers tables, diving the 'staking_balance' field by a constant configured to 8,000.

Validation:

[ ] For any well-known baker, there should be valid data in the accounts tables through all four cycles of governance.
[ ] The new rolls values should match the value returned by the ../votes/listings RPC route for the proposal governance period.

Wrong project.

repo: Cryptonomic/ConseilJS


text:
showCheckbox option is not working

Dropdown list shows checkboxes even if I set showCheckbox option to false in settings.

Hi @Charan-SS, which settings are you using? When you make a npm run build it generates any errors?
For me the option is working in this project

and also on my proyect

Working as expected.

authors: Charan-SS CuppaLabs jaumarar

license: mit


text:
Issue#13

Description
Added Documentation.js file with basic skeleton.
Related Issues
https://github.com/Curtis-Thomas/free-api-list-with-react/issues/13
Checklist

[X] I have tested my changes locally.
[X] I have added necessary documentation or updated existing documentation.
[X] My code follows the project's coding conventions and style guidelines.
[X] All tests pass successfully.
[X] I have added/updated relevant unit tests.

Additional Notes
Include any additional notes or context about your pull request.

Hi @Curtis-Thomas ,
Thank you for taking time to review my request. I really appreciate the feedback given. I have made the requisite changes.

@Curtis-Thomas Thanks a ton... That was my first merge. :)

repo: Curtis-Thomas/free-api-list-with-react


text:
Engine文件下ExifInterface找不到

现在应该用import android.media.ExifInterface;
import android.support.media.ExifInterface;不存在了

那只能导库自己修改？

implementation 'top.zibin:Luban:1.1.5'
implementation "com.android.support:exifinterface:27.1.1"
这两个都导入
详细可以看这个https://blog.csdn.net/qq_21434809/article/details/80521772

authors: hanxiaoqiangfly zaxcler

repo: Curzibn/Luban


text:
🛑 图床一img.5i.gs is down

In bc9833b, 图床一img.5i.gs (https://img.5i.gs/) was down:

HTTP code: 503
Response time: 3399 ms

Resolved: 图床一img.5i.gs is back up in 2e0ed3a after 9 minutes.

repo: Cutiei/Uptime


text:
🛑 统计一mat.5i.gs is down

In d37c1cd, 统计一mat.5i.gs (https://mat.5i.gs/) was down:

HTTP code: 521
Response time: 299 ms

Resolved: 统计一mat.5i.gs is back up in 0eeb27a after 10 minutes.


text:
Updating plugins only updates master branch

Other branches don't seem to be updated

Install a plugin
Commit and update the plugin
Update and it won't work. If you want, or if you restart Vent and try again, it should work?
Update again and Vent will delete the plugin. (If that doesn't work, commit and then update)

repo: CyberReboot/vent


text:
🛑 Cyberflix Accounts is down

In fa91b40, Cyberflix Accounts (https://accounts.cyberflix.io) was down:

HTTP code: 526
Response time: 276 ms

Resolved: Cyberflix Accounts is back up in 8e294b1.

repo: Cyberflix-Media/Cyberflix-Status


text:
Alert Box

We need to design an alert box.

The new alert box has been implemented:

repo: Cybermals/NeoImpressiveTitle


text:
Output for pnpm project is unexpected and invalid

Running cdxgen -t pnpm -o bom.cdx.gen --spec-version 1.4 on a project's pnpm-lock.yaml file produces an SBOM with some interesting challenges for us. In the dependencies section of the outputted SBOM,  the root node dependsOn on several bom-ref that are not present in components. This is causing issues for us as a consumer of the SBOM, as we expect these direct dependencies to appear in components.
Example:
"dependencies": [
    {
      "ref": "pkg:npm/nodejs-goof@1.0.1",
      "dependsOn": [
"pkg:npm/consolidate@0.14.5",
"pkg:npm/consolidate@0.14.5(dustjs-helpers@1.5.0)(dustjs-linkedin@2.5.0)(ejs@1.0.0)(lodash@4.17.4)"

The component "pkg:npm/consolidate@0.14.5(dustjs-helpers@1.5.0)(dustjs-linkedin@2.5.0)(ejs@1.0.0)(lodash@4.17.4)" is present here but not present in components — while pkg:npm/consolidate@0.14.5 is properly present in both. I suspect that it has something to do with the bom-ref being a variation of the standard package URL, with additional package name/version information appended in parentheses. Is there a reason for this duplication and notation?
Steps to reproduce:

Clone this repo
Run pnpm install
Verify contentscat pnpm-lock.yaml
Run cdxgen -t pnpm -o bom.cdx.json --spec-version 1.4 or cdxgen -i ./pnpm-lock.yaml -o bom.cdx.json --spec-version 1.4

@rysearle, could you look at the pnpm-lock.yaml and compare it against the test data we have to identify what is unique? The notation using the brackets looks quite new to me, so any reference to documentation that explains this would be useful.
I can help you send a PR if you could kindly look into this a bit more.

I took a deeper look into this and it seems the issue is with pnpm itself, generating the bracket notation dependencies which then gets translated over into the purls generated by cdxgen.
Running a pnpm install on the existing project generates the snippet below in the lockfile. I'm by no means in expert in pnpm and why this is happening – I've tried a few options with upgrading dependencies and the like but had no success.
consolidate:
    specifier: 0.14.5
    version: 0.14.5(dustjs-helpers@1.5.0)(dustjs-linkedin@2.5.0)(ejs@1.0.0)(lodash@4.17.4)
  dustjs-helpers:
    specifier: 1.5.0
    version: 1.5.0(dustjs-linkedin@2.5.0)

Anyways, I feel like for now this isn't an issue with cdxgen, so I'll close.

I am happy to keep this issue open and prioritize based on the availability of any contributors.

authors: prabhu rysearle

repo: CycloneDX/cdxgen


text:
🛑 Servicio de impuestos interno is down

In c64bef4, Servicio de impuestos interno (https://homer.sii.cl) was down:

HTTP code: 403
Response time: 392 ms

Resolved: Servicio de impuestos interno is back up in 2e31180 after 10 minutes.

repo: CymaSuite/upptime


text:
🛑 Servicio de impuestos interno is down

In 0e1a828, Servicio de impuestos interno (https://homer.sii.cl) was down:

HTTP code: 403
Response time: 317 ms

Resolved: Servicio de impuestos interno is back up in fb302f2 after 1 hour, 12 minutes.


text:
fix: Non-generated typescript files

Runtime files were not being generated anymore.

Closes #73

thanks!!!
I'll merge soon and release quickly.

authors: danfma neuecc

repo: Cysharp/MemoryPack


text:
Phylogeny: Uto-Aztecan (Wheeler & Whiteley 2014)

Wheeler, W. C., & Whiteley, P. M. (2014). Historical linguistics as a sequence optimization problem: the evolution and biogeography of Uto-Aztecan languages. Cladistics, n/a-n/a. http://doi.org/10.1111/cla.12078

Either not publicly available or no branch-lengths so not a major advantage over glottolog classification.

repo: D-PLACE/dplace-data


text:
Issue 14538: Fix ICE in typeMerge

I'm not sure whether this assert is meaningful, or whether we should just goto Lagain after running integer promotions.

I think just adding goto Lagain would be better.
In the head of typeMerge function, integralPromotions is called, then impcnvResult table lookup happens. When the result of alias this resolution introduces two different integer types, it's reasonable to me that similarly call intergralPromotions then jump to Lagain where impcnvResult table lookup happens.

When the result of alias this resolution introduces two different integer types, it's reasonable to me that similarly call intergralPromotions then jump to Lagain where impcnvResult table lookup happens.

The only thing that made me stop and think about it was that I don't think impcnvResult table takes shared/immutable into consideration.  Though I have my doubts on finding such a case where this assert is hit and shared/immutable is involved.

The assert just tests whether the kind of two types are same, and it does not consider the difference of qualifiers.
In the typeMerge process, normally a type qualifier merging would happen after the unification of both side type kinds. Therefore such the case should not be there, if I'm not mistaken.

Auto-merge toggled on

repo: D-Programming-Language/dmd


text:
Range-ify std.string.rightJustify() with rightJustifier()

100% unit test coverage
http://dlang.org/phobos/std_string.html#.rightJustify

Rest LGTM.

This unnecessary technical debt

It's necessary. Note that the original functions' implementations have been gutted and are now trivial one-liners. I'd like them to eventually be deprecated and removed, but that is very long term. The lazy range functions are the future of D.

Do you think consistency with #3224 is worth the trouble?

authors: MartinNowak WalterBright kuettler

repo: D-Programming-Language/phobos


text:
Remove static assert(__traits(compiles, xyz)) from std.conv

The pattern static assert(__traits(compiles, xyz)) arised probably as a converse to its negation, e.g.:
static assert( __traits(compiles, emplace(&ss2)));
static assert(!__traits(compiles, emplace(&ss2, SS2.init)));

However, the pattern should be avoided for two reasons:

Often it's best to also execute the code and make sure it works as expected (as this PR shows for the octal examples)
When working on the module, a failure of static assert(__compiles) does not show the reason in the error messages. This makes code more difficult to work with gratuitously.

This is just the beginning - could someone please eliminate this pattern from all of Phobos? Thanks!

Other than that LGTM

@burner fixed, and the autotester failure was transitory - thx for the review!

mmmmmm pass
pliz pliz pullllllllllllllllllll

LGTM. Squash and auto-merge? Note that one of these commits snuck its way into your emplace PR, so you should rebase that on master after this is merged.

authors: JakobOvrum andralex burner


text:
Staked amount thresholds

Adds the need for a staked threshold to be met to precent front running of a DAO.
Feedback appreciated!

Converting to draft due to upstream changes


text:
Add admin factory init to local deploy script

Fixes local dev dao creation error.

Codecov Report

Merging #391 (06ce7a3) into main (5798da4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #391   +/-   ##
=======================================
  Coverage   96.37%   96.37%
=======================================
  Files          29       29
  Lines        4797     4797
=======================================
  Hits         4623     4623
  Misses        174      174

Continue to review full report at Codecov.

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

authors: codecov-commenter de-husk


text:
Veto

Closes #736

@NoahSaso @JakeHartnell I think it's mostly ready. I'll give it another pass in a few days for the final cleanup.
One question though: do we want to accept votes when prop is Timelocked or Vetoed? atm voting is allowed until the prop expiration (not the timelock expiration but the prop itself) is active. Somewhat similar logic to how we allow voting when prop is passed early before expiration so that any members late for voting can still cast their votes to express their opinion.

One question though: do we want to accept votes when prop is Timelocked or Vetoed? atm voting is allowed until the prop expiration (not the timelock expiration but the prop itself) is active. Somewhat similar logic to how we allow voting when prop is passed early before expiration so that any members late for voting can still cast their votes to express their opinion.

Hmmmm, on the fence about this... guess we should make it consistent?

One question though: do we want to accept votes when prop is Timelocked or Vetoed? atm voting is allowed until the prop expiration (not the timelock expiration but the prop itself) is active. Somewhat similar logic to how we allow voting when prop is passed early before expiration so that any members late for voting can still cast their votes to express their opinion.

Hmmmm, on the fence about this... guess we should make it consistent?

yeah i'm on the fence too.
on one hand, it feels weird that some may get to vote (and have their vote recorded/displayed) while others who did not vote before it was vetoed (pre-expiration) do not get to express an opinion.. but on the other hand, it feels meaningless to vote after a veto, so i foresee some people not voting while others vote anyway, leading to an outcome that is not representative of the members' opinions.
maybe it shouldn't be veto-able until after the prop is decided (i.e. it is early-passed because revoting is disabled, or it expires). or alternatively, votes could be deleted if it's vetoed early (that feels pretty weird too though). wdyt about that?

this is sooooo cool, super excited for this!!!!! and great job.
i have a handful of questions and a few bugs i believe need correcting. also, two discussion points (that are both covered by conversations i opened in this review, just surfacing them here for visibility):

Thanks for the awesome and helpful bug discovery and comments!

i think we should rename timelock entirely to veto. timelock is ambiguous and somewhat distracting. i think it makes sense for the status to be VetoTimelock as that describes the state of a proposal, but the config option being called veto makes way more sense to me than timelock. thoughts?

Yes. 100%.

should the status of proposals once the veto timelock expires revert back to passed? or should it stay timelocked with an expired expiration field? i'm not really sure. i mentioned some pros and cons in the conversation where i thought of it.

Hmmmmmm, this is a really good question... going to think about this one while addressing low hanging fruit.

authors: JakeHartnell NoahSaso bekauz


text:
Feat/polars with columns , async with_columns pandas

Please let me know if scope creep too big and I can cut some things out into a new PR.
Changes

extract_columns for polars LazyFrame (converts columns into Expressions that just need to be collected at the end)
with_columns for polars (supported eager and lazy execution -- that's why the above change)
refactored with_columns by using registry single dispatch method and enabled it for Pandas / Polars for now.
async with_columns for pandas
target=None selects all viable sink nodes and appends to data frame

How I tested this

unit
e2e
examples

Notes
The one thing I didn't touch is the spark extension (zero experience with pyspark), because the implementation so far is different / not sure if we can use extract_columns as straightforward as with pandas/polars, but happy to tackle that as well in case its possible.
Checklist

[x] PR has an informative and human-readable title (this will be pulled into the release notes)
[x] Changes are limited to a single goal (no scope creep)
[x] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged / future TODOs are captured in comments
[x] Project documentation has been updated if adding/changing functionality.

I left with_columns in h_pandas for backwards compatibility and have something similar in h_polars to be consistent, but IMO we should deprecate h_pandas (super short lived plugin lol), remove it from h_polars and keep it central in recursive.py.

Ok, so here is my line of thinking with regards to the changes:
The with_columns consists of three parts:

We need the input node. This can be a full dataframe if pass_datafame_as is used or we need to extract columns into nodes if columns_to_pass is used. Given that some data frames are supported in Hamilton's extract_columns and some are not, this should be implemented on a per library basis.
We need the subtag nodes. Again, we can re-use Hamilton's subdag functionality, but some libraries again will need more (see h_spark) and is therefore again to be implemented on a per library basis.
Last is combining eveything into a single dataframe again to be implemented on a per library basis.

So what I decided is to leave three abstract methods:

get_initial_nodes
get_subdag_nodes
create_merge_node

that should create enough flexibility to implement any dataframe library, but is also concrete enough to wire together everything in inject_nodes from NodeInjector.
Now, every plugin library, h_pandas, h_polars, and h_polars_lazyframe inherits from this class and in the their initialisation calls out to the parent factory init, but passes in the required dataframe type (e.g. pd.DataFrame,  pl.DataFrame, or pl.LazyFrame) which is in turn derived from the extension modules. So in effect we use the registry approach without hard-binding us to needing to implementat any functionality in there.
Since that part of the API is private, should we want to switch to registry, the refactoring is straightforward and shouldn't get us into trouble down the road.

Ok, so here is my line of thinking with regards to the changes:
The with_columns consists of three parts:

We need the input node. This can be a full dataframe if pass_datafame_as is used or we need to extract columns into nodes if columns_to_pass is used. Given that some data frames are supported in Hamilton's extract_columns and some are not, this should be implemented on a per library basis.
We need the subtag nodes. Again, we can re-use Hamilton's subdag functionality, but some libraries again will need more (see h_spark) and is therefore again to be implemented on a per library basis.
Last is combining eveything into a single dataframe again to be implemented on a per library basis.

So what I decided is to leave three abstract methods:

get_initial_nodes
get_subdag_nodes
create_merge_node

that should create enough flexibility to implement any dataframe library, but is also concrete enough to wire together everything in inject_nodes from NodeInjector.
Now, every plugin library, h_pandas, h_polars, and h_polars_lazyframe inherits from this class and in the their initialisation calls out to the parent factory init, but passes in the required dataframe type (e.g. pd.DataFrame, pl.DataFrame, or pl.LazyFrame) which is in turn derived from the extension modules. So in effect we use the registry approach without hard-binding us to needing to implementat any functionality in there.
Since that part of the API is private, should we want to switch to registry, the refactoring is straightforward and shouldn't get us into trouble down the road.

Nice, I think this is a good overview. Note there might still be shared stuff between the implementations, in which case you have two options to reduce duplicated code (should you want):

Joint/helper functions
Additional subclasses, E.G. for column-specific ones (polars/pandas)

But I think these will be options for later, and quite possibly over-engineered.
To be clear, this doesn't look like it works with spark, yet? Do you think that's a possibility?

authors: elijahbenizzy jernejfrank

repo: DAGWorks-Inc/hamilton


text:
Set up Danger in CI

Thanks for creating an issue! Please fill out this form so we can be sure to have all the information we need, and to minimize back and forth.

What are we trying to do?
Add Danger! to our codebase and write a few existing norms as rules.

What feature or behavior is this required for?

We have a couple things where we just need to "Remember" to do things. Let's add Danger to our codebase so we can minimize human error!
In particular, let's alert on PRs if we:

if we add a field to any model, add a note to check Archive Patient (should we add the field there?)
if we add a field to any model, add a note to check Logging (should we filter this field from the logs?)

How could we solve this issue? (Not knowing is okay!)
https://github.com/danger/danger#what-is-danger

Anything else?

@colinxfleming Lemme know if you can think of other things we'd want to add a message to a PR for!

@lomky still something we should think about?

I'm still tempted but I hit a snag implementing it. I'd say low priority but still nice to have

authors: colinxfleming lomky


text:
[BUG]: Cannot upload a dataset

Scenario: simulate-calibrate-model-configuration-w-sciml
Step: 2.4
Link to the project: https://app.staging.terarium.ai/projects/b0a98ccb-d186-449e-a703-e151dea3f18f/workflow/53e82f78-d902-4497-82cc-4f42367583f1

Describe the issue
When uploading the asset receive the following error:

This is handle by another task by @bigglesandginger.

repo: DARPA-ASKEM/terarium


text:
remove unneeded beforeAll #43

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@djayze23 this looks good. Why did you close it?

repo: DAVFoundation/dav-js


text:
upgrade strimzi to version 0.20

Upgrade strimzi to 0.20. The upgrade requires uninstalling the current strimzi operator (which will take down all kafka resources). After install the kafka operator and do a helm upgrade to support the changes in the KafkaCluster custom type.

This is on hold because there are issues with upgrading existing Strimzi 0.19 to 0.20. The reason is because that the new version of Strimzi uses Helm 3.0, and it will therefore delete the existing cluster resulting in maybe data loss and full downtime.

This is on hold because there are issues with upgrading existing Strimzi 0.19 to 0.20. The reason is because that the new version of Strimzi uses Helm 3.0, and it will therefore delete the existing cluster resulting in maybe data loss and full downtime.

https://github.com/strimzi/strimzi-kafka-operator/issues/3877

https://github.com/strimzi/strimzi-kafka-operator/issues/3877

There will still be issues, even with the workaround, since the CRD won't be updated to support the new way to define listeners as shown below. So a way to update the existing CRD needs to be done.
listeners:
  - name: local
    port: 9092
    type: internal
    tls: true
  - name: external1
    port: 9093
    type: loadbalancer
    tls: true
  - name: external2
    port: 9094
    type: nodeport
    tls: true

There will still be issues, even with the workaround, since the CRD won't be updated to support the new way to define listeners as shown below. So a way to update the existing CRD needs to be done.
listeners:
  - name: local
    port: 9092
    type: internal
    tls: true
  - name: external1
    port: 9093
    type: loadbalancer
    tls: true
  - name: external2
    port: 9094
    type: nodeport
    tls: true

@runeanielsen, maybe there is a solution to update crd, after updating from version 0.19 to 0.20 without data loss?

Hi @IlyaNakhaichuk, this issue is currently on hold, but hopefully there is a way to upgrade the crd without data loss, but I haven't had time to look much into it since we're currently very busy with new features.
Do you have any experience upgrading, from 0.19 to 0.20?

@IlyaNakhaichuk that is the issue I also had when I tried it, I'll let you know if I figure out a way to handle it when I get the time.

Hi @runeanielsen  Maybe you already got something when you upgrade from version 19 to version 20 of the strimzi operator?

@IlyaNakhaichuk not yet, haven't had the time. I found this the other day https://github.com/helm/helm-2to3, that would be the first thing I would try when I got the time.

@runeanielsen
Hi.
I tried to use the 2to3 plugin, but something didn't work out to CRD. I originally created a strimzi-operator using helm3, the tiller cluster does not contain, when upgrading secret or cm, it gives the following errors.
When upgrading the operator itself:
helm 2to3 convert -n kafka strimzi-kafka
2021/04/19 12:35:23 Release "strimzi-kafka" will be converted from Helm v2 to Helm v3.
2021/04/19 12:35:23 [Helm 3] Release "strimzi-kafka" will be created.
2021/04/19 12:35:23 Found 0 tiller pods
Error: plugin "2to3" exited with error

When upgrading secret:
helm 2to3 convert -n kafka strimzi-kafka --tiller-out-cluster -s secret sh.helm.release.v1.strimzi-kafka.v1
Error: name of release to be converted has to be defined
Error: plugin "2to3" exited with error

or
helm 2to3 convert -n kafka strimzi-kafka -s secret sh.helm.release.v1.strimzi-kafka.v1
Error: name of release to be converted has to be defined
Error: plugin "2to3" exited with error

Maybe there will be time to do this? I would like to somehow migrate crd from helm2 to helm3, so as not to affect the existing kafka cluster.

@IlyaNakhaichuk I understand your frustration with the upgrade path of helm 2 to 3, but currently this is very low priority for this project, so I don't think I'll have time to look at it for a month or two.
I think your best choice is try to ask in the issue https://github.com/strimzi/strimzi-kafka-operator/issues/3877 if anyone had the same issue as us.

Hi,
Is there possible workaround for fresh installation. Downgrade to Helm 2 is not a option due to incompatibility with current versions of Kubernetes.
vbr,

@djok currently we are running on version v1.17.13 of kubernetes, there are plans in the future to handle newer versions of kubernetes when this issue is fixed.

@runeanielsen , can you tell me are you using public Kubernetes provider like GKE, Azure.... or you deploy on internal Kubernetes cluster. I ask this because so far I don't have success with deployment on GKE, and if you use public Kubernetes provider I can try to deploy on it.

@djok we can run on all cloud providers, currently we are running our test setup Hetzner (personally managed) and customer on Azure(AKS). The setup is not "plug and play" and we're not done with the system yet and there might be major breaking changes in the near future, so we're not ready to write a setup guide.

@runeanielsen, I will try to setup the project in AKS, can I count on some support during setup process?

@djok its still not production ready, so I cannot help you with the setup - we don't recommend it being used with the current state of the project.

authors: IlyaNakhaichuk djok runeanielsen

repo: DAXGRID/open-ftth-chart


text:
DIY branch coverage implementation

Implement branch coverage by manual instrumentation of the source code for five functions
with high cyclomatic complexity. Use a separate development branch or repo for this, as this code is
not permanent. The simplest method for this is as follows:
1. Identify all branches in the given functions; assign a unique number (ID) to each one.
2. Before the program starts (before the first instruction in “main” or as the first step in the unit test
harness), create data structures that hold coverage information about specific branches.
3. Before the first statement of each branch outcome (including to-be-added “else” clauses if none exist),
add a line that sets a flag if the branch is reached.
4. At the end of the program (as the last instruction in “main” or at the end of all unit tests), write all
information about the taken branches taken to a file or console.
Note: It is perfectly fine if your coverage tool is inefficient (memory-wise or time-wise) and its output may
be hard to read. For example, you may allocate 100 coverage measurement points to each function, so
you can easily divide the entries into a fixed-size array.
1. What is the quality of your own coverage measurement? Does it take into account ternary operators
(condition ? yes : no) and exceptions, if available in your language?
2. What are the limitations of your tool? How would the instrumentation change if you modify the program?
3. If you have an automated tool, are your results consistent with the ones produced by existing tool(s)?

Closing this since the script is functional.


text:
Cannot retrieve "created by" information from old Cantus

In the new Cantus, we keep track of who created or updated the source, using fields like created_by and updated_by. However, this information is not included in the old Cantus' json-export and will be lost if we don't find another way to retrieve it.

Seeing as I remember us looking pretty hard for this and not finding it, it seems likely to me that OldCantus simply does not store this information. Do we have a compelling reason to think that OldCantus has been keeping a record of this?
Going to leave this issue open for now in case some relevant new information emerges, but we may simply need to give up on this one.

It does seem to; here's the "authoring information' of one source visible in https://cantus.uwaterloo.ca/node/699507/edit

It's in a different place for chants, and indicated as a number rather than the user's name:

Hmm... I wonder why we weren't able to find any of this in the database dump we were looking at last year. Maybe there's a way to scrape this from the HTML, even if we can't find it in the DB? But it must be stored somewhere... :/

The creating information does seem to exist in oldCantus: here's the "authoring information' of one source visible in https://cantus.uwaterloo.ca/node/699507/edit

I'm able to view this page, but can't find anything resembling the "authoring information" section in your screenshot:

In your second screenshot from the chant detail page, I see there's an "Import date" row. If we're unable to find "created by" information anywhere, it might be worth adding a field like this one to NewCantus - it will at least indicate that the chant was initially added to OldCantus, and give us a record of when it entered NewCantus.

not sure what to do with this one - it would certainly be great if we could figure this out, but it's been such a long time that no one has been able to figure this out. We might just need to resign ourselves to not being able to get this information.
@lucasmarchd01, assigning you to this - when you get a chance, maybe spend some time poking around in this direction (perhaps with @annamorphism) - perhaps you'll be able to find something that everyone else has missed.

authors: annamorphism jacobdgm jwang44

repo: DDMAL/CantusDB


text:
关于异步同步

这个代码，我不论是在主函数中改变stu3()和stu6()的函数执行顺序，还是改变两个函数的循环长度，总是stu6()先执行，stu3()后执行。
main() async{
  stu1();
  stu2();
  stu3();
  stu6();
  stu4();
  stu5();
  stu7();
  stu8();
  stu9();
  stu10();
}

void stu1() => print("stu1 done");

void stu2() => print("stu2 done");

void stu4() => print("stu4 done");

void stu5() => print("stu5 done");

void stu7() => print("stu7 done");

void stu8() => print("stu8 done");

void stu9() => print("stu9 done");

void stu10() => print("stu10 done");

Future stu3() async{
  int aNum = await stu3_recharge();
  print("stu3 done,recharge:" + aNum.toString());
}
Future stu6() async{
  int aDouble =  stu6_recharge();
  print("stu6 done,recharge:"+ aDouble.toString());
}
Future <int> stu3_recharge() async {
  int aNum;
  for (int i = 0;i < 100;i++) {
    aNum = i;
  }

  return aNum;
}
int stu6_recharge() {
  int balance;
  for (int i = 0;i < 100000000;i++) {
    balance = i;
  }
  return balance;
}

补充，并且若是函数stu6()出错，整个程序中断，执行结果只到stu2()。

如果将其中一段换成下面的代码，则先执行stu3，再执行stu6。
Future stu6() async{
  int aDouble =await  stu6_recharge();//在上面的代码中，去掉了await
  print("stu6 done,recharge:"+ aDouble.toString());
}

在尝试后发现，若是不去掉stu()中的await，则按照主函数中的顺序来，若是去掉了stu6中的await，则总是先执行stu6，在执行stu3.
但是如果去掉stu3函数体中的await，函数出错。stu3和stu6都不执行。

关于future：

对于这两个future函数，分别都有两个片段（第二个片段是第一个片段中的函数）。发现不能把属于一个函数的两个片段放在一个，比如把
 stu3_recharge()放在Future stu6()的前面，否则程序出错。

Future stu3() async{
  int aNum = await stu3_recharge();
  print("stu3 done,recharge:" + aNum.toString());
}

Future stu6() async{
  int aDouble = await stu6_recharge();
  print("stu6 done,recharge:"+ aDouble.toString());
}

Future <int> stu3_recharge() async {
  int aNum;
  for (int i = 0;i < 10;i++) {
    aNum = i;
  }

  return aNum;
}

int stu6_recharge() {
  int balance;
  for (int i = 0;i < 10000;i++) {
    balance = i;
  }
  return balance;
}

Future可以去掉，stu3()函数两个片段的future去掉都不影响程序执行；但是async去掉的话，则await无效，出错；

main() {
  stu1();
  stu2();
  stu3();
  stu4();
  stu5();
  stu6();
  stu7();
  stu8();
  stu9();
  stu10();
}

void stu1() => print("stu1 done");

void stu2() => print("stu2 done");

void stu4() => print("stu4 done");

void stu5() => print("stu5 done");

void stu7() => print("stu7 done");

void stu8() => print("stu8 done");

void stu9() => print("stu9 done");

void stu10() => print("stu10 done");

 stu3() async{//去掉了future，async不能去掉
  int aNum = await stu3_recharge();
  print("stu3 done,recharge:" + aNum.toString());
}

 stu6() async{//去掉了future，async不能去掉
  int aDouble = await stu6_recharge();
  print("stu6 done,recharge:"+ aDouble.toString());
}

int stu3_recharge()  {//**注意！在这个函数中去掉了future，剩下的async没有作用，出错，所有一并去掉。**
  int aNum;
  for (int i = 0;i < 10;i++) {
    aNum = i;
  }

  return aNum;
}

Future <int> stu6_recharge() async{
  int balance;
  for (int i = 0;i < 10000;i++) {
    balance = i;
  }
  return balance;
}

注意上面的int stu3_recharge() 函数，去掉future后，剩下的async无效出错。和在stu3()中不一样。stu3()中，去掉了future后，async一样有效用。

执行结果为：

stu1 done
stu2 done
stu4 done
stu5 done
stu7 done
stu8 done
stu9 done
stu10 done
stu3 done,recharge:9
stu6 done,recharge:9999

非常棒！我抽空学习这其中的奥妙:)

authors: icecreamtoo meflyup


text:
🛑 Catchment Scale Land Use is down

In c5218fa, Catchment Scale Land Use (https://gis.environment.gov.au/gispubmap/rest/rest/services/abares/CLUM_50m/MapServer) was down:

HTTP code: 403
Response time: 1225 ms

Resolved: Catchment Scale Land Use is back up in dcc4a24 after 2 hours, 9 minutes.

repo: DELWP-DTV/santa


text:
Add international contacts right to work page

Context
This PR covers adding the right to work or study page in the new international candidates personal details flow.
There have been 2 previous PRs. The first PR #2345 broke the personal details flow into 3 separate views.
The second PR #2446, adds the new nationalities page.
This page is only accessible with the Feature Flag on, and is only shown to non-UK and Irish Citizens.
Changes proposed in this pull request

Added the right to work or study page

Guidance to review
Test on the review app.
Link to Trello card
https://trello.com/c/AsOuRv9u/1760-dev-🌐-international-residency-visa-status
Things to check

[x] This code doesn't rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

We shouldn't show the details on the review page ("Settled status" in my example) when they don't choose "I have the right to work or study in the UK"

authors: george-bit tvararu

repo: DFE-Digital/apply-for-teacher-training


text:
Document tweaks to content for accepting or declining offers

https://trello.com/c/FNV1k2V8/1237-apply-2-update-guidance-on-accepting-or-rejecting-offers
“Are you sure you want to accept offer” contained guidance on withdrawing other choices that’s not relevant when applying again (there’s only 1 choice).
“Are you sure you want to decline offer” contains guidance about applying again through UCAS, when this feature is launched apply again will not be specific to UCAS.
The updated content removes mention of:

UCAS when suggesting a candidate can apply again after declining
the caveat about “all other offers” when declining an offer on an application with 1 choice
automatically withdrawing other choices when accepting an offer on an application with 1 choice

These changes should also apply to first applications that have only 1 choice.

Not sure if it’s worth mentioning/addressing with this issue, but when I added the survey to withdrawal reason, after chatting with @EmmaFrith, we decided to remove (rather than edit) the similar guidance that appeared on that page. Not sure if that’s how we want to keep it? https://bat-design-history.netlify.app/apply-for-teacher-training/reason-for-withdraw#withdraw

Withdrawing page previously said:

If you withdraw this course choice (and all your other course choices), you can still apply for more courses this year through UCAS Teacher Training.

Guidance also added to withdraw screens

authors: fofr paulrobertlloyd

repo: DFE-Digital/bat-design-history


text:
Selecting references entry

DH entry about the 'selecting references' feature and content changes we made to make the process clearer to candidates.
(Copied an existing DH entry and then populated it with content for this entry)

Preview post

@B-Bonner maybe we could say why we decided to do this, to give some context for the change

It'd be good to have some context about why - although this might have been a 'just because' moment!

Preview link

authors: B-Bonner EmmaFrith


text:
[1126] use fully-qualified ApplicationController class

Trello ticket: https://trello.com/c/AiWztw9a/1126-tests-failing-when-run-in-a-certain-order
We have more than one ApplicationController class:

::ApplicationController
::API::V1::ApplicationController
::API::V2::ApplicationController

Because of this, Rails can get confused when trying to autoload constants. For
example:
module API
module V1
class ProvidersController < ApplicationController
could pull in the wrong ApplicationController. At least, this has been the case
with RSpec tests where running the V2 specs before running the V1 specs were
causing most V1 specs to fail. This change fully quaifies ApplicationController
when used as a base class like this.

 Tests failing when run in a certain order

repo: DFE-Digital/manage-courses-backend


text:
[1792] Add provider publish and publishable actions

Context
These will be called by the frontend to publish the latest provider enrichment.
Changes proposed in this pull request
Adds #publish and #publishable actions to the provider controller. #publish is a no-op.
Guidance to review
Does not actually implement the publish logic, that will be done as a separate PR; this is just to facilitate the frontend validations work.
Checklist

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

 Provider #publish and #publishable


text:
[2174] Fixed array flakey ordering of tests

Context
:ship:
Changes proposed in this pull request
use match_array
Guidance to review
:wolf:

 Flakey test - create from apply spec

repo: DFE-Digital/register-trainee-teachers


text:
Optimisation for /v3/courses SQL - remove double join to course_site

Context
The endpoint that Find uses for course searches is high traffic and can be slow for certain queries. Therefore we have attempted to analyse the database queries to get a handle on what they are doing, how slow or fast they are and come up with any optimisations that are possible.
This is an optimisation extracted from https://github.com/DFE-Digital/teacher-training-api/pull/2188. It simply eliminates a double join from the course table to the course_site table resulting in a measurable performance gain and an (accidental) bug fix (I think).
Changes proposed in this pull request
https://github.com/DFE-Digital/teacher-training-api/pull/2188 contains a fair amount of context for this change and some analysis of the underlying queries.
The code change is very small here and just attempts to ensure that there is a single join from course to course_site. It's best illustrated by the effect on an example query. This is the original SQL query for a location based search with some simple filters:
SELECT course.*, distance, (CASE WHEN provider.provider_type = 'O' THEN (distance - 10) ELSE distance END) as boosted_distance
FROM "course"
INNER JOIN (
  SELECT course_id,
    MIN(ACOS(least(1,COS(0.900577531861982)*COS(-0.022941230770756427)*COS(RADIANS(site.latitude))*COS(RADIANS(site.longitude))+COS(0.900577531861982)*SIN(-0.022941230770756427)*COS(RADIANS(site.latitude))*SIN(RADIANS(site.longitude))+SIN(0.900577531861982)*SIN(RADIANS(site.latitude))))*3963.1899999999996) as distance
  FROM "course_site"
  INNER JOIN "site" ON "course_site"."site_id" = "site"."id"
  WHERE (
      "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "course_site"."vac_status" = 'F'
      OR "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "course_site"."vac_status" = 'P'
      OR "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "course_site"."vac_status" = 'B'
    ) AND "site"."latitude" IS NOT NULL
    AND "site"."longitude" IS NOT NULL
    AND (
      "site"."address1" != ''
      OR "site"."postcode" != ''
    )
    GROUP BY course_id
  ) "distances" ON "course"."id" = "distances"."course_id"
  INNER JOIN "provider" ON "provider"."id" = "course"."provider_id"
  WHERE "course"."id" IN (
    SELECT "course"."id"
    FROM "course"
    INNER JOIN "provider" ON "course"."provider_id" = "provider"."id"
    INNER JOIN "course_site" ON "course_site"."course_id" = "course"."id"
    INNER JOIN "course_subject" ON "course_subject"."course_id" = "course"."id"
    INNER JOIN "subject" ON "subject"."id" = "course_subject"."subject_id"
    INNER JOIN "course_site" "site_statuses_course_join" ON "site_statuses_course_join"."course_id" = "course"."id"
    INNER JOIN "site" ON "site"."id" = "site_statuses_course_join"."site_id" AND "course_site"."status" IN ('N', 'R')
    WHERE "provider"."recruitment_cycle_id" = 3
      AND "provider"."discarded_at" IS NULL
      AND "course"."discarded_at" IS NULL
      AND "course_site"."vac_status" != ''
      AND "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "subject"."subject_code" = '00'
      AND (site.latitude IS NOT NULL
      AND site.longitude IS NOT NULL)
      AND (ACOS(least(1,COS(0.900577531861982)*COS(-0.022941230770756427)*COS(RADIANS(site.latitude))*COS(RADIANS(site.longitude))+
      COS(0.900577531861982)*SIN(-0.022941230770756427)*COS(RADIANS(site.latitude))*SIN(RADIANS(site.longitude))+
      SIN(0.900577531861982)*SIN(RADIANS(site.latitude))))*3963.1899999999996)
      <= '50')
    ORDER BY "distance" ASC;

This is the SQL after the optimisation:
SELECT course.*, distance, (CASE WHEN provider.provider_type = 'O' THEN (distance - 10) ELSE distance END) as boosted_distance
FROM "course" INNER JOIN (
  SELECT course_id, MIN(ACOS(least(1,COS(0.900577531861982)*COS(-0.022941230770756427)*COS(RADIANS(site.latitude))*COS(RADIANS(site.longitude))+COS(0.900577531861982)*SIN(-0.022941230770756427)*COS(RADIANS(site.latitude))*SIN(RADIANS(site.longitude))+SIN(0.900577531861982)*SIN(RADIANS(site.latitude))))*3963.1899999999996) as distance
  FROM "course_site"
  INNER JOIN "site" ON "course_site"."site_id" = "site"."id"
  WHERE (
      "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "course_site"."vac_status" = 'F'
      OR "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "course_site"."vac_status" = 'P'
      OR "course_site"."status" = 'R'
      AND "course_site"."publish" = 'Y'
      AND "course_site"."vac_status" = 'B'
    )
    AND "site"."latitude" IS NOT NULL
    AND "site"."longitude" IS NOT NULL
    AND (
      "site"."address1" != ''
      OR "site"."postcode" != ''
    ) GROUP BY course_id
  ) "distances" ON "course"."id" = "distances"."course_id"
  INNER JOIN "provider" ON "provider"."id" = "course"."provider_id"
  WHERE "course"."id" IN (
    SELECT "course"."id"
    FROM "course"
    INNER JOIN "provider" ON "course"."provider_id" = "provider"."id"
    INNER JOIN "course_site" ON "course_site"."course_id" = "course"."id"
    INNER JOIN "site" ON "site"."id" = "course_site"."site_id"
    INNER JOIN "course_subject" ON "course_subject"."course_id" = "course"."id"
    INNER JOIN "subject" ON "subject"."id" = "course_subject"."subject_id"
    WHERE "provider"."recruitment_cycle_id" = 3 AND "provider"."discarded_at" IS NULL
      AND "course"."discarded_at" IS NULL
      AND "course_site"."vac_status" != ''
      AND "course_site"."publish" = 'Y'
      AND "subject"."subject_code" = '00'
      AND "course_site"."status" = 'R'
      AND (site.latitude IS NOT NULL AND site.longitude IS NOT NULL)
      AND (ACOS(least(1,COS(0.900577531861982)*COS(-0.022941230770756427)*COS(RADIANS(site.latitude))*COS(RADIANS(site.longitude))+COS(0.900577531861982)*SIN(-0.022941230770756427)*COS(RADIANS(site.latitude))*SIN(RADIANS(site.longitude))+SIN(0.900577531861982)*SIN(RADIANS(site.latitude))))*3963.1899999999996) <= '50'
  )
ORDER BY "distance" ASC;

You can see that there are two joins to course_site in the first query and only one in the second.
In this example in my dev environment (YMMV) the top-speed for this query run in psql changes from 175ms to 122ms. 3 variations on this query are run to service a single API request so the gains are reasonably significant. I was seeing response times in Find for this query reduce from about 1.2s to 1.0s.
The other optimisation not included here but in https://github.com/DFE-Digital/teacher-training-api/pull/2188 (the one that replaces the inner/outer query pattern with a single query) provides a further improvement, reducing the query time down to ~75ms.
Guidance to review
Removing the extra join to the course_site table gives different results to the original query. I think the new behaviour is correct.
If you look at the original query the first join has a condition on course_site.status that is meant to filter out inactive sites (I believe). The second join has a condition on site lat/lng (within 50 miles of the search location). It's possible a course to have one site that matches the first condition and another that matches the second. If we combine these two joins and their associated conditions then that course no longer matches because neither of its sites satisfies both conditions. So I think that combining the joins has accidentally fixed a bug in the search logic. Does this make sense?
Does this change make sense?
How can we mitigate the risk?
Checklist

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

This is looking great.

How can we mitigate the risk?

You can use https://github.com/DFE-Digital/teacher-training-api/blob/master/spec/services/course_search_service_spec.rb#L653-L758 as a basis for the full integration tests in order to refactor https://github.com/DFE-Digital/teacher-training-api/blob/master/spec/services/course_search_service_spec.rb#L175-L199 to remove mockery and to assert confidence and correctiveness of behaviour.

We've logged a separate card to create integration specs for this service. Not sure how long it will take.

We've got a separate card to rework the spec here https://trello.com/c/ugmvkcYf/4000-rewrite-the-tests-for-ttapi-coursesearchservice

authors: davidgisbey stevehook

repo: DFE-Digital/teacher-training-api


text:
#21 remove v2 code

Context
Now that old publish is turned off, we can get rid of all the v2 api code
Changes proposed in this pull request
Remove and update v2 api code.
Guidance to review
Initial PR caused the Find app to error, please check this at QA if possible
Checklist

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

 Remove v1, v2 api code


text:
[TEVA-2347] Application Preview A:B Test

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-2347
Changes in this PR:

Couldn't put the translations for the labels under forms.label.publishers_job_listing_applying_for_the_job_form because I couldn't figure out a way of having two variations without changing the name of the attribute and I assume we don't want to do that... If there's any way around this, let me know.

Screenshots of UI changes:
Default

Radio Copy Change

Comments

To switch between variants add one of the following query strings to the end of the URL, depending on which variant you want to see

Default

?ab_test_override[2021_04_application_preview_test]=default

Copy Change

?ab_test_override[2021_04_application_preview_test]=radio_copy_change

Review app deployed to https://teaching-vacancies-review-pr-3340.london.cloudapps.digital

Do you know if we deliberately omit (opens in new tab) from the link in the radio button? We do have it in the banner. Just want to check this is a deliberate departure from GDS guidelines - it's an accessibility issue.

Also, the GDS guidelines I linked above suggest two further changes we should definitely consider:

including rel="noreferrer noopener" (for security).
making the phrase (opens in new tab) part of the link.

Please consult with a designer on 2) and on 0).

Do you know if we deliberately omit (opens in new tab) from the link in the radio button? We do have it in the banner. Just want to check this is a deliberate departure from GDS guidelines - it's an accessibility issue.

Also, the GDS guidelines I linked above suggest two further changes we should definitely consider:

including rel="noreferrer noopener" (for security).
making the phrase (opens in new tab) part of the link.

Please consult with a designer on 2) and on 0).

Spoke to the designer about 0/2. He said it should be part of the link so I'll add it now!

Spoke to the designer about 0/2. He said it should be part of the link so I'll add it now!

0 is about the radio button text, did you talk about that?

Spoke to the designer about 0/2. He said it should be part of the link so I'll add it now!

0 is about the radio button text, did you talk about that?

I do apologise, I misunderstood. I'll find out!

authors: david-mears-dfe josephhull676 twd-tv-ci

repo: DFE-Digital/teaching-vacancies


text:
Testing walmart API

Description:
This issue focuses on testing the search_items_API function from src.main_streamlit to ensure its correctness and reliability when retrieving product information from the Walmart site (denoted as wm). The main goal is to validate that the API returns structured and expected data, such as product titles, prices, links, timestamps, and images, for a specific product (in this case, "laptop").
Objective Test Cases:

API Returns List of Items:

test_api_walmart: Asserts that the API call returns a non-null response.
test_api_walmart1: Ensures the returned list contains more than zero items.
test_api_walmart2: Verifies the returned list contains exactly nine items.

Data Type and Structure Validation:

test_api_walmart3: Confirms the response is a list.
test_api_walmart4: Checks that each item in the list is a dictionary.

Key Existence Validation:

test_api_walmart5: Asserts each dictionary item contains a title key.
test_api_walmart6: Verifies the presence of a price key.
test_api_walmart7: Confirms each dictionary has a link key.
test_api_walmart8: Ensures each dictionary includes a timestamp key.
test_api_walmart9: Checks for the existence of an img_link key in each dictionary.

Field-Specific Validations:

test_api_walmart_collected_produce_price: Uses check_price() to validate that the price field values are in a valid numeric format.
test_api_walmart_collected_produce_title: Asserts each title field is non-empty.
test_api_walmart_collected_produce_link: Validates that the link field values are valid URLs.
test_api_walmart_collected_produce_img_link: Confirms img_link fields contain valid URLs.
test_api_walmart_collected_produce_timestamp: Ensures timestamp fields are non-empty.

Summary of Expected Outcomes:
The test cases are expected to verify the API's ability to retrieve and structure Walmart product information accurately and consistently, with each dictionary item containing essential product details such as title, price, link, timestamp, and image link.

Resolved, see #4.


text:
[BUG] (older) custom effects not recognised as convenient effects for the remove effect button

Describe the bug
When a token has a custom convenient effect applied to them, the remove convenient effect button does not recognise them as a convenient effect to be removed.
To Reproduce
Steps to reproduce the behavior:

Apply a custom convenient effect
Try to remove said effect
Click on 'Remove convenient effect'

Expected behavior
I expect the effect to be removed or have the option to select it as one of the effects to be removed, yet this does not happen.
Screenshots

Additional context
It seems to only effect custom effects that already existed before the last update.

Ah, yes. This is because I changed the flag of what is considered a convenient effect. I'll add some backwards compatibility for older custom effects. Thanks for raising the issue!

authors: DFreds maxobremer

repo: DFreds/dfreds-convenient-effects


text:
Problem with editing of pre aproved proposals by supervisors

How to reproduce:

Create and fill in a pre-approved proposal with a relation that requires a supervisor
Submit the proposal
Switch users to the selected supervisor
Visit the decide screen and attempt to edit the proposal
Go back to the first page of the proposal form

You will now be stuck, because the portal won't let you leave as long as you've selected yourself as the supervisor, which is forbidden. You can select the UD relation to remove the requirement, but that information would then be false. You can not select a different supervisor (the form does not permit this)
Todo:

Check if this doesn't happen elsewhere (normal proposals, preassessments)
Fix it. I don't expect this to be hard but it's late and I don't feel like starting this now.

Check if this doesn't happen elsewhere (normal proposals, preassessments)

It does, we got a bug report over mail. I think all proposal types are affected

authors: miggol tymees

repo: DH-IT-Portal-Development/ethics


text:
🛑 DHBW VS Website is down

In c7b0d33, DHBW VS Website (https://www.dhbw-vs.de/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: DHBW VS Website is back up in 97a0dcb.

repo: DHBW-VS/upptime


text:
force newer sqlalchemy version

Hello. On my end I had installed the sqlalchemy==1.2.13 and when trying to get the driver I encountered the following issue
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-7c18fb67ea67> in <module>
     12
     13     insertables = INDEX_INSERTABLES(renamed_cogs, TC_BUCKET_NAME)
---> 14     driver = tc.get_driver(str(DB_PATH))
     15     #insertables = SKIP_EXISTING_DATASETS(insertables, driver)
     16     insertables = COMPUTE_METADATA(insertables, driver)

~/.conda/envs/py3/lib/python3.6/site-packages/terracotta/drivers/__init__.py in get_driver(url_or_path, provider)
     99
    100     DriverClass = load_driver(provider)
--> 101     normalized_path = DriverClass._normalize_path(url_or_path)
    102     cache_key = (normalized_path, provider, os.getpid())
    103

~/.conda/envs/py3/lib/python3.6/site-packages/terracotta/drivers/mysql_meta_store.py in _normalize_path(cls, path)
     61     @classmethod
     62     def _normalize_path(cls, path: str) -> str:
---> 63         url = cls._parse_path(path)
     64
     65         path = f'{url.drivername}://{url.host}:{url.port or cls.DEFAULT_PORT}/{url.database}'

~/.conda/envs/py3/lib/python3.6/site-packages/terracotta/drivers/relational_meta_store.py in _parse_path(cls, connection_string)
    115             raise ValueError(f'unsupported URL scheme "{con_params.scheme}"')
    116
--> 117         url = URL.create(
    118             drivername=f'{cls.SQL_DIALECT}+{cls.SQL_DRIVER}',
    119             username=con_params.username,

AttributeError: type object 'URL' has no attribute 'create'

After updating sqlalchemy to the latest version (1.4.35) the issue was solved.

Contributions welcome :)

authors: dionhaefner panakouris

repo: DHI-GRAS/terracotta


text:
The Administrator guide is missing

Hi ,
I know that this is in Sourceforce but the wiki of Github need a link.
Thanks.

Hi there,
are you saying the front page of the wiki needs a link to it? Because there are links to the System Admin guide under documentation https://github.com/DIA-NZ/webcurator/wiki/Documentation. Although I see there is no System Admin guide link for v1.6 under documentation.

Hi, Thanks for your anwser..
yes exactly, I didn't see the link at first view, Then I went to the sourceforce page, It will be nice have it in the front page.
thanks a lot.

authors: obrienben suxonca

repo: DIA-NZ/webcurator


text:
【建议功能】跨域iframe通讯，资源站 dplayer 被放在iframe，站长难以控制和获取播放状态

主要问题
资源站 dplayer 被放在iframe，站长难以控制和获取播放状态
为什么被放在iframe
资源站视频的m3u8个别经常出现不支持跨域访问，无奈只能使用资源站提供的iframe
为什么不让站长实现
难以沟通，资源站过多，实现无法统一。
想要的效果
通过 window.postMessage 跨域通讯达到此功能。
例如：
父页面向dplayer页面发送 postMessage({type: 'play'})：开始播放
父页面向dplayer页面发送 postMessage({type: 'pause'})：暂停播放
父页面向dplayer页面发送 postMessage({type: 'play', time: 100})：从100秒开始播放
dplayer 向父页面发送  postMessage({type: 'play'})：开始播放
dplayer 向父页面发送  postMessage({type: 'pause'})：暂停播放
dplayer 向父页面发送  postMessage({type: 'error', data:'错误内容'})：播放错误
联动通讯：
父页面向dplayer页面发送 postMessage({type: 'getTime'})：获取播放时间
此时 dplayer 向父页面发送  postMessage({type: 'getTime', time: 100})：发送播放时间
补充
资源站视频经常出一些问题，因为是使用iframe（使用iframe是因为许多m3u8资源不支持跨域访问），而无法知晓资源是否已经失效、或者过于卡顿，通过postMessage还能操作播放状态。
但我们可以解决这个问题，通过通讯传递 postMessage，只要dplayer原生支持这个功能，就可以有更多的自由！
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage
通讯例子
<!-- 父页面 -->
<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
<iframe id="iframe" src="http://0.0.0.0:1111/statics/iframe.html"></iframe>
<button onclick="postmessage()">传递到子窗口</button>
<script type="text/javascript">
window.addEventListener("message", function(e) {
  console.log(e.data)
}, false);
function postmessage() {
  let dom = document.getElementById('iframe')
  dom.contentWindow.postMessage('我是你爸爸', '*')
}
</script>
</body>
</html>

<!-- 子页面 -->
<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
<button onclick="postmessage()">传递到付窗口</button>
<script type="text/javascript">
function postmessage() {
  window.parent.postMessage('我是你儿子', '*')
}
window.addEventListener("message", function(e) {
  console.log(e.data)
}, false);
</script>
</body>
</html>

好像没有支持

This should be the job of the iframe page and not the player

repo: DIYgod/DPlayer


text:
[FEATURE] Disable mandatory account creation when signing in with institutional credentials.

For institutes that have institutional access and have their own page and theme (such as dmp.wur.nl), their users can sign-in using institutional credentials. First time users have to create a DMP account to link with the institutional credentials. This is odd behaviour to me and our institute.  In theory, someone working for an institution that is required to create a DMP for a project within that institute, should only require an institutional account. If they would require a private – non-institutional account (to have access to their DMP after employment), they would need to create an account themselves as an extra step (this in my view should not be prompted for first time users when signing in with institutional credentials as a mandatory field). Once people decided that they need a personal DMP account, decided to create their own account, they can then share their DMP’s themselves with their own personal account to have access to them.
The mandatory account creation and linking invites yet another online account to be created, which may have a chosen poor password, and of which the account could then possibly be accessed by people with wrong intentions leading to possible unauthorized access to sensitive information. It additionally requires users to yet again regularly update a self-chosen password to keep an online account secure, whereas users are automatically prompted to update the institutional password regularly.
Please consider disabling the automatic mandatory DMPonline account creation and linking to the institutional account upon signing in for institutes. Or at least make it optional.

Hi @Danny-dK
Each fork of the DMPRoadmap codebase typically customizes the sign in/up workflow (along with the ability to link/unlink that account on the profile page) to suit their needs since each fork's audience differs. Some forks support one institution while others are open to any users.
This makes it incredibly difficult for us to provide a single solution that works for all. The information each institution's identity provider returns to the application also varies (e.g. some include first name and last name, others return a single name field and still others do not return a name at all) which further complicates our ability to provide a one-size-fits-all solution.
Since it sounds like you're working with a single institution, it should be fairly straightforward for you to modify the workflow to eliminate the need for a password. The Devise gem we use for security requires a password to be present in order to create an entry in the users table in the database. To get around this restraint, you could auto-generate random unique passwords for these SSO users and just hide the field on the sign up form along with the profile page.

@briri Interesting! Thanks for the information. We are not implementing DMPonline ourselves, but use the hosted version of DMPonline at Edinburgh University. I'm not sure how much they are able to configure per institute that they are providing institutional access for. I asked the DCC helpdesk as well about customizing the login page and the workflow that there initially should only be a institutional login without the need to create a personal account by default (they should only create a personal account when they desire to). They indicated:
"We can't customise the login page to show the SSO button only."
"You seem to be suggesting that users should create separate personal accounts and professional accounts? This is not viable and very confusing for the user. Users would find it difficult to remember whether they own a plan or not, and in which account. It would result in a lot of duplicate accounts thus skewing usage statistics for organizations."
"In our current data model, users own their accounts and their plans and are free to move between institutions. The institution doesn't own users and their plans."
So I'm assuming configuring different instances is (understandably) not viable for them at the moment.
I will discuss internally here (and close the issue for now). Thanks again!

authors: Danny-dK briri

repo: DMPRoadmap/roadmap


text:
Issue 819

concern to validate and parse an array of object links. DMPRoadmap/roadmap#819
validator for links attribute at templates. DMPRoadmap/roadmap#819
funder and sample links visible in funder templates html view. DMPRoadmap/roadmap#819

TODO template edit view for adding/removing links for funder and sample plan arrays.

agreed @jollopre. I will add a ticket to convert the Org details page's links over to use this logic.

authors: briri jollopre