text:
Debugger support

One of the greatest strengths of Elm architecutre is great debugging experience.
I quickly hacked a POC of integration of this library with redux-devtools-extension:

I think I can make a PR here with full support, but the biggest blocker I found is the recommended usage of non serializable values from fp-ts as part of app model. (Please, don't get me wrong, I fully understand their usefulness :) )
I wonder what would be the right solution to this.

Hi Milos!
If you can hook into the serialization / deserialization phase should be doable
Serialization
This is the easier task, you can leverage the Module Augmentation feature in order to define your own serialization strategy. An example with Option
import * as option from 'fp-ts/lib/Option'

declare module 'fp-ts/lib/Option' {
  interface None {
    toJSON(): A | null
  }
  interface Some {
    toJSON(): A | null
  }
}

option.None.prototype.toJSON = function () {
  return null
}

option.Some.prototype.toJSON = function (this: option.Some<any>) {
  return this.value
}

const x = option.some(1)

console.log(JSON.stringify(x)) // => 1 instead of {value: 1}

Another example with Either and then mixing the two with the help of a replacer
import * as either from 'fp-ts/lib/Either'

export type JSONLeft<L> = {
  type: 'Left',
  value: L
}

export type JSONRight = {
  type: 'Right',
  value: A
}

declare module 'fp-ts/lib/Either' {
  interface Left<L, A> {
    toJSON(): JSONLeft<L> | JSONRight
  }
  interface Right<L, A> {
    toJSON(): JSONLeft<L> | JSONRight
  }
}

either.Left.prototype.toJSON = function (this: either.Left<any, any>) {
  return {
    type: 'Left',
    value: this.value
  }
}

either.Right.prototype.toJSON = function (this: either.Right<any, any>) {
  return {
    type: 'Right',
    value: this.value
  }
}

const y = either.right(2)

console.log(JSON.stringify(y)) // => {"type":"Right","value":2}

// in order to nest them we need a replacer for JSON.stringify
function replacer(key: string, value: any): any {
  return typeof value.toJSON === 'function' ? value.toJSON() : value
}

const z = option.some(y)

console.log(JSON.stringify(z, replacer)) // => {"type":"Right","value":2}

Deserialization
This is more difficult as you need a schema: given {"type":"Right","value":1} how can you know that is a Option<Either<string, number>>?
Enter io-ts
import * as t from 'io-ts'

function createEither<L, A>(left: t.Type<L>, right: t.Type): t.Type<either.Either<L, A>> {
  const jsonLeft = t.interface({
    type: t.literal('Left'),
    value: left
  })
  const jsonRight = t.interface({
    type: t.literal('Right'),
    value: right
  })
  return new t.Type<either.Either<L, A>>(
    `Either<${left.name}, ${right.name}>`,
    (v, c) => t.union([jsonLeft, jsonRight])
      .validate(v, c)
      .chain(json => t.success(json.type === 'Left' ? either.left<L, A>(json.value) : either.right<L, A>(json.value)))
  )
}

function createOption(type: t.Type): t.Type<option.Option> {
  return new t.Type<option.Option>(
    `Option<${type.name}>`,
    (v, c) => t.union([type, t.null])
      .validate(v, c)
      .chain(n => t.success(n === null ? option.none : option.some(n)))
  )
}

// the model of the Http example (with HttpError simplified)
const ModelRT = t.interface({
  topic: t.string,
  gifUrl: createOption(createEither(t.string, t.string))
})

ModelRT is able to validate and deserialize a JSON model
import { pathReporterFailure } from 'io-ts/lib/reporters/default'

const json = {
  "topic": "foo",
  "gifUrl": {"type":"Right", "value":"bar"}
}

const model = t.validate(json, ModelRT).fold(
  errors => { throw new Error(pathReporterFailure(errors).join('\n')) },
  x => x
)

console.log(model) // => { topic: 'foo', gifUrl: Some(Right('bar')) }

Last thing: in order to avoid duplication of code (of schemas in this case) one can even derive the static type Model from the runtime type ModelRT using the TypeOf operator
type Model = t.TypeOf<typeof ModelRT>

/* same as defining Model manually
type Model = {
  topic: string,
  gifUrl: option.Option<either.Either<string, string>>
}
*/

Thanks Giulio, for such a detailed answer!
I will definitely try this.
There is one point I would like to discuss with you.
For this to work whole of the app's Model and Msg must be defined as runtime types in io-ts or similar.
I can see this has plenty of cons. Of the top of my head:

It allows for advanced reflection techniques like tcomb-form
It would allow for nice reports when trying to import corrupted or obsolete usage logs for debugging ("Reliability" part of this)
Pretty printing of actions inside devtool ( TopCounter with payload { type: 'Increment } can be replaced with TopCounter Increment

But it does introduce noise.
This
export type Model = {
  topic: string,
  gifUrl: Option<Either<http.HttpError, string>>
}

export type Msg =
  | { type: 'MorePlease' }
  | { type: 'NewGif', result: Either<http.HttpError, string> }

becomes this
export const ModelRT = t.interface({
  topic: t.string.
  gifUrl: createOption(createEither(httpErrorRT, t.string))
})
export type Model = t.TypeOf<typeof ModelRT>

export const MsgRT = t.union([
  t.interface({ type: t.literal('MorePlease') }),
  t.interface({ type: t.literal('NewGif'), result: createEither(httpErrorRT, t.string) })
])
export type Msg = t.TypeOf<typeof MsgRT>

And this is noise in most important part of app code.
Do you think people would be put of by this?

(Another thing before thinking about your last comment)
If you don't want (or can't!) pass a replacer to JSON.stringify you can move the logic within the toJSON methods
declare module 'fp-ts/lib/Option' {
  interface None {
    toJSON(): any
  }
  interface Some {
    toJSON(): any
  }
}

function replacer(value: any): any {
  return typeof value.toJSON === 'function' ? value.toJSON() : value
}

option.None.prototype.toJSON = function () {
  return null
}

option.Some.prototype.toJSON = function (this: option.Some<any>) {
  return replacer(this.value)
}

You lose the strict return type (from A | null to any) but.. whatever, in the end we are serializing to JSON, so even any should be ok.

I guess it really depends on the type safety you want to get. Another (unsafe but simpler) option is just adding enough meta info to the JSON representation of boxed values (like Options or Eithers), for example using a unique type tag and a configurable deserializers dictionary.
import * as option from 'fp-ts/lib/Option'
import * as either from 'fp-ts/lib/Either'

export type JSONOption = {
  type: 'Option',
  value: A | null
}

declare module 'fp-ts/lib/Option' {
  interface None {
    toJSON(): JSONOption
  }
  interface Some {
    toJSON(): JSONOption
  }
}

// add meta info
option.None.prototype.toJSON = function () {
  return {
    type: 'Option',
    value: null
  }
}

option.Some.prototype.toJSON = function (this: option.Some<any>) {
  return {
    type: 'Option',
    value: this.value
  }
}

export type JSONLeft<L> = {
  type: 'Left',
  value: L
}

export type JSONRight = {
  type: 'Right',
  value: A
}

declare module 'fp-ts/lib/Either' {
  interface Left<L, A> {
    toJSON(): JSONLeft<L> | JSONRight
  }
  interface Right<L, A> {
    toJSON(): JSONLeft<L> | JSONRight
  }
}

either.Left.prototype.toJSON = function (this: either.Left<any, any>) {
  return {
    type: 'Left',
    value: this.value
  }
}

either.Right.prototype.toJSON = function (this: either.Right<any, any>) {
  return {
    type: 'Right',
    value: this.value
  }
}

// configurable
const deserializers: { [key: string]: (v: any) => any } = {
  Option: v => option.fromNullable(deserialize(v)),
  Left: v => either.left(deserialize(v)),
  Right: v => either.right(deserialize(v))
}

function deserialize(json: any): any {
  if (deserializers.hasOwnProperty(json.type)) {
    return deserializers[json.type](json.value)
  }
  if (typeof json === 'object') {
    const object: { [key: string]: any } = {}
    for (let k in json) {
      object[k] = deserialize(json[k])
    }
    return object
  }
  if (Array.isArray(json)) {
    return json.map(deserialize)
  }
  return json
}

// Usage

export type Model = {
  topic: string,
  gifUrl: option.Option<either.Either<string, string>>
}

const json = {
  "topic": "foo",
  "gifUrl": {
    "type": "Option",
    "value": {
      "type":"Right",
      "value":"bar"
    }
  }
}

// unsafe: no validation involved
const model: Model = deserialize(json)

console.log(model)

However loosing the pros you listed is a shame.
We could generate the runtime types from the static types or from an intermediate language (gen-io-ts), but you already know, is a hard path: it works for simple scenarios but there are many corner cases. Doing the other way around (extract the static type from the runtime types) is noisy but effective.
Nonetheless I'll keep thinking about this problem, since having a way to get the pros without the cons is tempting.
Maybe we can revisit the possible solutions after trying your POC (if you think is doable)

Probably there is no free lunch as usual, but it seems worth thinking of.
In the meantime I will try to come up with something usable with all the great insights you gave here. Will do a PR then.

authors: gcanti minedeljkovic

repo: gcanti/elm-ts


text:
Allowing input to be either t.String or t.Number

Hi!
I'm working on an input as such:
Given an input, a min, and a max, remove all non-digits and make sure the resulting value is between the min and max.
TEST 1: INPUT = 10000; OUTPUT = true
TEST 2: INPUT = '$10,000'; OUTPUT = true
export default (min = 0, max = Infinity) => {
  return t.refinement(t.String, (amount) => {
    const amountValue = parseInt(amount.replace(/[^\d]/g, ''));
    return (amountValue >= min) && (amountValue <= max)
  });
};

Currently, TEST 1 does not work because the inputted value is treated as a number and not t.String. How can I make this input accept either a string or number?

Not sure I'm follow.
If you want a string as output, this works for me:
const createInput = (min = 0, max = Infinity) => {
  return t.refinement(t.String, (amount) => {
    const amountValue = parseInt(amount.replace(/[^\d]/g, ''));
    return (amountValue >= min) && (amountValue <= max);
  });
};

const Type = t.struct({
  x: createInput(1, 4)
});

const App = React.createClass({

  onSubmit(evt) {
    evt.preventDefault();
    var value = this.refs.form.getValue();
    if (value) {
      console.log(value);
    }
  },

  render() {
    return (
      <form onSubmit={this.onSubmit}>
        <t.form.Form
          ref="form"
          type={Type}
        />
        <div className="form-group">
          <button type="submit" className="btn btn-primary">Save</button>
        </div>
      </form>
    );
  }

});

otherwise if you want a number as output you can simply use a refinement of a t.Number:
const createInput = (min = 0, max = Infinity) => {
  return t.refinement(t.Number, (amount) => {
    return (amount >= min) && (amount <= max);
  });
};

const Type = t.struct({
  x: createInput(1, 4)
});

in the first case, if the input is a number, the form will throw a validation error. I want to handle the inputs $10,000 and 10000 the same way.

in the first case, if the input is a number...

How could the user input be a number? The value of a textbox is always a string.

ahh I figured it out - this may be a bug.
I assigned state.value with some mock data. the mock data had that input's value as an int.

source: gharchive/issue

authors: VinSpee gcanti

repo: gcanti/tcomb-form

license: mit

license_type: permissive

license_source: bigquery


text:
Create time series property

The time-library should have a time series property. This would contain a map from a time (rounded to a bucket) to a long value. Two time series are aggregated by adding the values associated to the same bucket.

Merged into develop.

repo: gchq/Gaffer


text:
gh-149: Replace usage of Math.floorMod() with % operator.

Improve performance and readability by swapping the Math.floorMod() method for the % operator.
The only difference between the two should be when there are negative inputs, but that doesn't apply here as we'd always expect valid input to this function (i.e. the timestamp should also be positive).
Related Issue

Resolve #149

Codecov Report

Merging #231 (1815aae) into develop (f91f89d) will increase coverage by 0.01%.
The diff coverage is 90.47%.

@@              Coverage Diff              @@
##             develop     #231      +/-   ##
=============================================
+ Coverage      81.13%   81.14%   +0.01%
- Complexity      1534     1538       +4
=============================================
  Files            185      185
  Lines           4268     4281      +13
  Branches         430      431       +1
=============================================
+ Hits            3463     3474      +11
- Misses           627      629       +2
  Partials         178      178

Impacted Files
Coverage Δ

.../gchq/koryphe/iterable/EmptyCloseableIterator.java
0.00% <ø> (ø)

...a/uk/gov/gchq/koryphe/iterable/StreamIterable.java
57.14% <ø> (ø)

...a/uk/gov/gchq/koryphe/iterable/StreamIterator.java
47.05% <ø> (ø)

...in/java/uk/gov/gchq/koryphe/util/IterableUtil.java
71.52% <ø> (ø)

...a/uk/gov/gchq/koryphe/impl/function/ParseDate.java
80.76% <75.00%> (-1.46%)
:arrow_down:

...c/main/java/uk/gov/gchq/koryphe/util/DateUtil.java
85.00% <100.00%> (+2.64%)
:arrow_up:

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 8d41e72...1815aae. Read the comment docs.

source: gharchive/pull-request

repo: gchq/koryphe

license_source: github-api


text:
🛑 Phone Services is down

In e1c69b0, Phone Services ($PHONE_SERVICES) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Phone Services is back up in 2fedd52 after 7 minutes.

repo: gcommeuneidee/upptime

license: MIT


text:
I would like to use Firestore Native Mode and Datastore Mode in the same Project

WHAT
同じProjectで、Firestore Native ModeとDatastore Modeを利用したい。
WHY
mBaaSとしてエンドユーザに提供する機能と、裏側で分析などに利用する機能がある場合、Firestore Native Mode, Datastore Mode 両方を使いたい。

I would like to use Firestore Native Mode and Datastore Mode in the same Project
だな

Ask
元々はあまりユースケースとしては想定していなかったけど、ニーズがあることが分かった。
現状では複数プロジェクトを作成すれば、可能だ。

authors: kuma sinmetal

repo: gcpug/dogrun


text:
Invalid key user when try access to a doc

A user can't have access to the doc, the user have access to the list of doc but not to the content

Issue has been fixed, closing.

repo: gctools-outilsgc/gccollab-mobile


text:
Writing blog posts for hugo academic in RStudio

It seems like Hugo academic and RStudio should play well together, but I can't get it to work.
I produced  a website outside of RStudio, following the instructions to use github installation on the academic theme deployment page. The site is live (http://sjkiss.github.io) and it works fine.
But I can't figure out how to write a blogpost in RStudio that hugo will then compile.
I write a blogpost in an .rmd file in RStudio.
---
title: test
author: Simon
date: '2018-03-04'
slug: test
categories: []
tags: ['Test']
output:
  md_document
---

Test
```{r}
hist(rnorm(100))
```

And when I knit to Markdown (.md file) , this is what I get. Note the absence of any TOML metadata.

Test
hist(rnorm(100))

When I compile the website from terminal after knitting to Markdown I get this:

Building sites … ERROR 2018/03/03 19:41:23 Error while rendering "home" in "": template: theme/index.html:1:3: executing "theme/index.html" at <partial "widget_page...>: error calling partial: template: theme/partials/widget_page.html:23:9: executing "theme/partials/widget_page.html" at <partial $widget $par...>: error calling partial: template: theme/partials/widgets/posts.html:61:51: executing "theme/partials/widgets/posts.html" at <len .Params.tags>: error calling len: len of untyped n

When I delete the md file that I knit, the website compiles fine.
The blog post examples seem to require TOML metadata, i.e.
+++ Metadata +++
But the blog posts in RStudio seem to use YAML metadata
`---
Metadata
`
Is this the problem? Do I need to redesign the website using blogdown and installing the academic theme from within  RStudio?
Thanks.

This issue appears primarily related to Blogdown. Please refer to the Blogdown manual or support forums.

authors: gcushen sjkiss

repo: gcushen/hugo-academic


text:
Release 0.6.x?

Hey,
Bower currently has 0.5.11 up, which does not seem to be compatible with the new Raven API.  Do you mind bumping to the latest version (0.6.2)?

:+1:

sorry about it it's published now

authors: Burgov azaslavsky gdi2290


text:
Allow custom port number in printer url

Currently unable to add custom port to the printer url, normally this is done via the http://url.com:port but upon entering the ':' character it says the URL is invalid.

Never mind, shows invalid URL soon as the : is pressed but goes valid once the port number is added, i see why from the RegEx
"(http|https)://((\w)|([0-9])|([-|_]|[\.|/])*)+(:[0-9]+)?"

repo: gdombiak/OctoPod


text:
Octopod external network

Hello,
I cannot access my printer outside my local network, but I do receive notifications on the application when the printing is finished.
is it possible to connect in 4G to see the progress of printing?

OctoPod is only able to connect to Octoprint instances on a local network. You can set up a VPN tunnel to your home network and when connected it will work just like if you were at home. I do this and it works great.

@jessearmstrong is spot on. You can follow this guide to learn how to setup your VPN. For a less secure option but easier to setup you can use a reverse proxy with authentication and port forwarding.

Hello,
Thank you for your answers @jessearmstrong @gdombiak

Closing this ticket unless there is something to fix in OctoPod.
Thanks,
Gaston

authors: DemiDieuAscar gdombiak jessearmstrong


text:
fast fully web based layout viewer

How can we enable big layouts rendering in jupyter notebooks?
we could use the klayout python API and use some thing like folium

https://python-visualization.github.io/folium/quickstart.html#GeoJSON/TopoJSON-Overlays
https://github.com/klayoutmatthias/canvas2canvas

@flaport
@proppy
@tvt173

I think that https://github.com/KLayout/klayout/issues/1082#issuecomment-1197720698 is the way to go.
Did you see the notebook example?

I think ideally we would just implement some of the _repr methods so that Component just render magically when evaluated at the end of cell.

Where can we find the code for SiliWiz?
https://www.youtube.com/watch?v=V9xCa4RNfCM
@SkandanC
@mithro
@mattvenn

It's not public at the moment

I see, let us know when we can use it,
also the 3D rendering on the browser looks great
https://www.youtube.com/watch?v=GlvlZzjyUGI&t=294s

klayout 0.28 is out
https://pypi.org/project/klayout/
https://github.com/klayoutmatthias/canvas2canvas

@joamatab getting this issue when trying to use the new klayout 0.28:
https://github.com/KLayout/klayout/issues/1146#issuecomment-1345445086
Are you able to load a layout on your end?

See MVP here
https://github.com/gdsfactory/kweb/issues/3

TODO:

[ ] Document how to deploy gdsfactory with kweb
[ ] make an ipywidget for notebooks using klayout

https://stackoverflow.com/questions/74070505/how-to-run-fastapi-application-inside-jupyter

that worked!
import asyncio
import uvicorn
from kweb.main import app

if __name__ == "__main__":
    config = uvicorn.Config(app)
    server = uvicorn.Server(config)
    loop = asyncio.get_event_loop()
    loop.create_task(server.serve())

might be too late now but https://github.com/wokwi/siliwiz it's open source.

That looks great!
we have a jupyter demo

we have

https://github.com/gdsfactory/kweb
gdsfactory webapp in https://github.com/gdsfactory/gplugins/

authors: SkandanC joamatab mattvenn proppy sebastian-goeldi

repo: gdsfactory/gdsfactory


text:
[Core][MachO] Implement endianess check (& then integrate it into MachO & Fat related plugins)

Implement endianess check (& then integrate it into MachO & Fat related plugins)

Implement endianess check - this has been done by @xTachyon.
Fat plugin has been unified with MachO.
Endianess integration check via new functions needs to be added into MachO plugin.


text:
Add static Kind 2 binary to extern.zip

This PR includes a statically-linked Linux binary of Kind 2 to extern.zip. It does that by extracting the binary from Kind 2 DockerHub image, which is now based on Alpine Linux. This distro uses the musl C standard library which allow us to build a binary without any dynamically-linked library.

I don't mind these changes, but have you considered another approach where you change the way the release workflow builds kind2 to use the same way you build the static docker kind2 binary? Then both the macos and ubuntu binaries would be built exactly the same way as the docker kind2 binary.

Unfortunately, the technique I used here only works for the Linux platform :(
The fact that Kind 2 uses the Zmq library makes very hard to build a statically-linked binary for macOS using the OCaml compiler.

Also, I suspect the docker kind2 binary runs on only Ubuntu 21.04 or later; this workflow builds a kind2 binary that can be run on Ubuntu 20.04 LTS.

On the contrary, the whole point of this change is to make the included Kind 2 binary compatible with as many Linux distros as possible.

repo: ge-high-assurance/VERDICT


text:
Add Chinese translations

All of sections about the newest Gear Academy have been translated into Chinese.

Great start, @Ninicolec, thank you! As a suggestion, please translate titles too.

authors: Ninicolec shamilsan

repo: gear-foundation/academy


text:
Added Double sort

The input will be a user input string of text, with spaces, but no special characters or capitalizations. Output should be the letters displayed by most frequent to least on new lines, and if there is a tie in frequency it should list out those ties in alphabetical order.

this file is updated from  branch temp

repo: geekquad/AlgoBook


text:
Problem if exist Two notification Not OPEN notification ??

if exist one notification => Open notification
if exist two notification => First open , second not open ??
if exist three notification => First open , second not open , three not open ??

@abdelhakimkotti please explain what you mean in a bit more detail, perhaps post screenshots...?

if exist multiple notifications.
first notification open,  and other notification no open, if click ??

@abdelhakimkotti I am having a hard time understanding what you're saying.
You didn't follow the issue template either, posted no details....
I am closing this issue due to a lack of information - please either post more info and I'll be happy to reopen and investigate

Any solution ??

repo: geektimecoil/react-native-onesignal


text:
Unable to update drush

Issue Type
Bug Report
Environment
Drupal-VM 4.7.0
Vagrant 1.9.6
VirtualBox 5.1.28 r117968 (Qt5.6.2)
OS
Microsoft Windows 10 Pro (Version 10.0.14393 Build 14393)
Full console output
config.yml
drush_version: "8.1.14"

vagrant reload --provision
[...]
TASK [geerlingguy.drush : Check current state.] ********************************
ok: [mydrupalvm]

TASK [geerlingguy.drush : Perform cleanup of old symlink.] *********************
skipping: [mydrupalvm]

TASK [geerlingguy.drush : Install Drush.] **************************************
ok: [mydrupalvm]

TASK [geerlingguy.drush : Ensure Drush is executable.] *************************
ok: [mydrupalvm]

TASK [geerlingguy.drush : Clone Drush from GitHub.] ****************************
skipping: [mydrupalvm]

TASK [geerlingguy.drush : Check for composer.json] *****************************
skipping: [mydrupalvm]

TASK [geerlingguy.drush : Ensure Drush can be installed on Debian Wheezy.] *****
skipping: [mydrupalvm]

TASK [geerlingguy.drush : Install Drush dependencies with Composer.] ***********
skipping: [mydrupalvm]

TASK [geerlingguy.drush : Create drush symlink.] *******************************
skipping: [mydrupalvm]

TASK [geerlingguy.drush : Run drush to finish setting it up.] ******************
skipping: [mydrupalvm]

[...]

TASK [Configure host machine drush aliases.] ***********************************
changed: [mydrupalvm -> 127.0.0.1]

TASK [Ensure drush directory exists for vagrant user inside VM.] ***************
ok: [mydrupalvm]

TASK [Configure drush aliases for vagrant user inside VM.] *********************
changed: [mydrupalvm]

TASK [Ensure drush directory exists for root user inside VM.] ******************
ok: [mydrupalvm]

TASK [Configure drush aliases for root user inside VM.] ************************
ok: [mydrupalvm]

[...]
mydrupalvm       : ok=202  changed=2    unreachable=0    failed=0

vagrant@drupal:/var/www$ drush version
 Drush Version   :  8.1.10

Summary
Although if have set up the vm to use Drush 8.1.14 the current version is still 8.1.10. Of course I've updated my vm via vagrant reload --provision. I had to destroy the vm and install again to use 8.1.14.

@pminf you'll need to also set drush_keep_updated: yes as by default it won't update drush if it's already installed.
see https://github.com/geerlingguy/ansible-role-drush#variables-used-for-source-install-git

@thom8 I had the same issue, adding drush_keep_updated: yes did not resolve the issue. I also tried setting drush_force_update: yes to no avail

And I had the same issue on both Windows 10 and macOS Sierra. I'll post if I figure anything out.

This information from the CHANGELOG may be helpful:
  * Removed now-unneccessary drush_keep_updated and drush_composer_cli_options vars.
  * Default to Drush version 8.1.10 (since we use the Phar-based install by default now).

I'm not sure if there's a pure-vagrant-reload way of doing this, but this'll work:

Edit config.yml. Change drush_version: to the desired version (drush_version: "8.1.14" for this example)
vagrant ssh
cd /usr/local/bin
sudo wget https://github.com/drush-ops/drush/releases/download/8.1.14/drush.phar
php drush.phar core-status # this confirms 'new' drush is working before replacing the old version
sudo mv drush.phar drush
sudo chmod +x drush
cd ~
drush --version #confirm new version

@thom8 drush_keep_updated seem's to have no impact. Drush has not been updated.

There's been some upstream changes to drush recently so it might be best to open an issue in the drush role itself -- https://github.com/geerlingguy/ansible-role-drush/issues

OK, I've created a new issue: https://github.com/geerlingguy/ansible-role-drush/issues/43 (because I don't know a way to move it)

authors: ashabed pminf thom8

repo: geerlingguy/drupal-vm


text:
TASK [geerlingguy.drush : Install Drush.] fatal error

Issue Type

Bug Report / Support Request

Your Environment

Vagrant 2.2.10
VirtualBox 6.1.14r140239
ansible 2.9.13
  config file = None
  configured module search path = ['/Users/neeraj/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible
  executable location = /Library/Frameworks/Python.framework/Versions/3.8/bin/ansible
  python version = 3.8.5 (v3.8.5:580fbb018f, Jul 20 2020, 12:11:27) [Clang 6.0 (clang-600.0.57)]

Your OS

macOS Catalina (10.15.6 (19G2021))

Full console output

TASK [geerlingguy.drush : Install Drush.] **************************************
fatal: [mydrupal-cms]: FAILED! => {"msg": "Unable to import get_url due to invalid syntax"}
RUNNING HANDLER [geerlingguy.apache : restart apache] **************************
RUNNING HANDLER [geerlingguy.php : restart webserver] **************************
RUNNING HANDLER [geerlingguy.php : restart php-fpm] ****************************
PLAY RECAP *********************************************************************
mydrupal-cms                   : ok=150  changed=17   unreachable=0    failed=1    skipped=146  rescued=0    ignored=1
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
Summary

I tried removing everything and reinstalling again (vagrant, virtualbox, composer) and each time I ran in the same issue.

Support no longer required. Abandoned usage.


text:
Matrix v1.12 – Behandlung "Mark Room Unread" Feature

Abgespalten von #271.
Folgende Änderung soll im Hinblick auf TI-M bewertet und falls nötig behandelt werden:

Add support for marking rooms as unread, as per MSC2867. (#1895, #1941)

Umsetzung in Element:

Darstellung "normaler" ungelesener Nachrichten zum Vergleich:

Aus Sicht des gematik Produktmanagements spricht nichts gegen dieses Feature.
Vorschlag: Das Feature wird für TI-M ohne Einschränkungen übernommen. In der TI-M-Spec sind dafür keine Änderungen nötig. Das Feature ist in der Matrix-Spec Teil des Receipts Moduls, welches in der TI-M-Spec bereits als MUSS klassifiziert ist.

repo: gematik/api-ti-messenger


text:
Review use of sys.error and assert in the sql module

There are a significant number of assertions and sys.error calls for "impossible" states in the SQL compiler. These should really be handled more hygienically. See also #199.

Done in #378.

repo: gemini-hlsw/gsp-graphql


text:
Project setup

/cc @j0tunn

:up:

repo: gemini-testing/gemini-tunnel


text:
refactor: use module 'plugins-loader'

cc @j0tunn @tormozz48 @sipayRT

🆗

repo: gemini-testing/gemini


text:
How to let it know about Bootstrap CSS classes?

If I am using Bootstrap via a remote CSS file, like https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css, how do I make your plugin find the CSS classes from it?
Is there some kind of configuration like:
{
    "css.remoteStyleSheets": [
        "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"
    ]
}

?

@midiway please test new version.
Refer readme:
    "html-css-class-completion.remoteStyleSheets": [
		"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"
	],

authors: gencer midiway


text:
TPV: mei2 nuclear dot, parentage fix

The Mei2 nuclear do has a parent "nucleoplasm"
It is in fact chromosome/chromatin associated.
Can this be changed?
Thanks
Val
http://www.ebi.ac.uk/QuickGO/GTerm?id=GO:0033620#term=ancchart
Reported by: ValWood
Original Ticket: geneontology/ontology-requests/10628

Looks OK to me?

authors: ValWood gocentral

repo: geneontology/go-ontology


text:
OTR: GO:0008282 ATP-sensitive potassium channel complex

The def needs broadening to allow for Kir6.1 and Kir6.2 subunits as well as SUR1, SUR2A and SUR2B subunits:
"The opening and closing of the channel is regulated by ATP: binding of ATP to the Kir6.x subunit inhibits channel activity, whereas binding of Mg2+-complexed ATP or ADP to the SURx subunit stimulates channel activity."
Also, the more commonly know name for this complex is "inward rectifying potassium channel". It should be at least a synonym.
Further synonyms to be added:
inward rectifying K+ channel
Kir6.x complex
Kir6.x-SURx complex
Kir6-SUR complex
Kir6.1-SUR complex
Kir6.2-SUR complex
KCNJ8-SUR complex
KCNJ11-SUR complex
Kir6.1-SURx complex
Kir6.2-SURx complex
KCNJ8-SURx complex
KCNJ11-SURx complex
As we are at it, it also has these relationships:
is_a GO:0034705 potassium channel complex (instead of GO:0034702 ion channel complex)
capable_of GO:0005267 potassium channel activity, or even GO:0022841 potassium ion leak channel activity (it can let some K+ through even if the MgADP doesn't bind as ATP is a weak inhibitor)
capable_of GO:0005524 ATP binding
capable_of GO:0043531 ADP binding
capable_of GO:1904517 MgATP(2-) binding (new in TG)
capable_of GO:NEW MgADP(2-) binding (to be created when MgADT2+ = CHEBI:87194 released)
capable_of GO:0030955 potassium ion binding
capable_of GO:0019808 polyamine binding
capable_of_part_of GO:0010107 potassium ion import
capable_of_part_of GO:1990573 potassium ion import across plasma membrane
[the latter two have no relationship in GO but maybe GO:1990573 should be child of GO:0010107?]
Thanks,
Birgit

I'm not sure the annotations
GO:0005244 voltage-gated ion channel activity
GO:0005249 voltage-gated potassium channel activity
GO:0015272 ATP-activated inward rectifier potassium channel activity
GO:0015467 G-protein activated inward rectifier potassium channel activity
and
GO:0008076 voltage-gated potassium channel complex
and even
GO:0005242 inward rectifier potassium channel activity
are correct as:
A) ATP inhibits the channel, and
B) activation is either by mechanical means (in cardiac cells) or by changing the intracellular ATP or MgADP or extracellular glucose concentration (in pancreatic beta-cells) rather than voltage change (see def of GO:0005242 inward rectifier potassium channel activity, last annotation above). In fact, Kir6 channel activity results in voltage change and at least in pancreatic beta-cells this activates the Ca2+ channels which results in insulin release.
The names of the above terms are in parts misleading but the defs clearly refer to either ATP-dep or voltage-gated activation.

Hi Birgit, can you share some refs?  Struggling to put all the pieces toghether here.
BTW - I think there are problems with the definition of inward rectifier channel activity - the def is more restricted than it should be - actually seems to refer to a subclass of inward rectifiers.  Hoping to discuss definitions of main axes of classification of general channel classification for ion channels at next synapse working group meeting.

Hi David,
Here are some (unstructured!, copy/paste) notes and a list of references:
https://docs.google.com/document/d/1ebFJLwv8yorBb1mjrBVhMcJgKK4xr-B7oxCY7dzNcQs/edit?usp=sharing
Fairly recent, comprehensive review: 20086079
Paper I curated for exp evidence: 25236767
And yes, if the def for inward rectifier potassium channel activity was broadened it could work. It's just its reliance on 'voltage-gated' that I don't agree with for Kir6.x channels.
Thanks,
Birgit

Hi David,
Looks like the def got updated (in the latest GO release report) but only adjusting the Kir subunit, not the SUR subunit. It should refer to both, SUR1 and SUR2 types (or SURx).
Thanks,
Birgit

Hi @bmeldal
I made the following changed (lines starting with "-" are removed, lines starting with + are new):
id: GO:0008282
-name: ATP-sensitive potassium channel complex
+name: inward rectifying potassium channel
namespace: cellular_component
def: "A protein complex that comprises four pore-forming (Kir6.x) and four regulatory sulphonylurea receptor (SURx) subunits and forms a transmembrane channel through which ions may pass. The opening and closing of the channel is regulated by ATP: binding of ATP to the Kir6.x subunit inhibits channel activity, whereas binding of Mg2+-complexed ATP or ADP to the SURx subunit stimulates channel activity." [GOC:bhm, PMID:16308567, PMID:16956886]
-is_a: GO:0043234 ! protein complex
+synonym: "ATP-sensitive potassium channel complex" EXACT []
+synonym: "inward rectifying K+ channel" EXACT []
+synonym: "KCNJ11-SUR complex" RELATED []
+synonym: "KCNJ11-SURx complex" RELATED []
+synonym: "KCNJ8-SUR complex" RELATED []
+synonym: "KCNJ8-SURx complex" RELATED []
+synonym: "Kir6-SUR complex" RELATED []
+synonym: "Kir6.1-SUR complex" RELATED []
+synonym: "Kir6.1-SURx complex" RELATED []
+synonym: "Kir6.2-SUR complex" RELATED []
+synonym: "Kir6.2-SURx complex" RELATED []
+synonym: "Kir6.x complex" RELATED []
+synonym: "Kir6.x-SURx complex" RELATED []
+is_a: GO:0034705 ! potassium channel complex
is_a: GO:0044459 ! plasma membrane part
relationship: capable_of GO:0005267 ! potassium channel activity
+relationship: capable_of_part_of GO:1990573 ! potassium ion import across plasma membrane
relationship: part_of GO:0005887 ! integral component of plasma membrane
Does this address your points?
Also - if you think some annotations need review, please open a ticket in the annotation tracker.
Thanks, Pascale

Another thing: I didn't add capable of x binding; I don't know if we do that systematically, I could not find other examples.

Happy with the changes - Thanks @pgaudet - and copied the annotation question into the right tracker.
Binding x question - to be discussed in Complex WG next week. I will add this ticket to the project as a reference.

great, thanks !

https://github.com/geneontology/go-annotation/issues/1701

We might come back to this when we get an answer to wether users use the binding to X relationships.

authors: RLovering bmeldal dosumis pgaudet


text:
instances of response to photoperiod

Hi,
Can we have following two new terms as instances of
response to photoperiod GO:0009648.
GO:new
term: response to short day photoperiod
definition: A change in state or activity of the organism
(in terms of movement, secretion, enzyme production,
gene expression, etc.) as a result of the perception of a
short day photoperiod.
comment: The response is in relation to a intermittent
cycle of light (day) and dark (night) photoperiod
regimes, with the dark cycle being longer to light.
is-a:GO:0009648
ref:GR:pj
GO:new
term: response to long day photoperiod
Definition:A change in state or activity of the organism
(in terms of movement, secretion, enzyme production,
gene expression, etc.) as a result of the perception of a
long day photoperiod.
comment: The response is in relation to a intermittent
cycle of light (day) and dark (night) photoperiod
regimes, with the light cycle being longer to dark.
is_a:GO:0009648
ref:GR:pj
Also add definition to the parent term GO:0009648
GO:0009648
Definition:A change in state or activity of the organism
(in terms of movement, secretion, enzyme production,
gene expression, etc.) as a result of the perception of a
photoperiod.
comment: The response is in relation to a intermittent
cycle of light (day) and dark (night) photoperiod regimes.
ref:GR:pj
Reported by: jaiswalp
Original Ticket: "geneontology/ontology-requests/1666":https://sourceforge.net/p/geneontology/ontology-requests/1666

thanks www.movied.org

authors: gocentral linuxlovell


text:
basal body, basal granule, kinetosome

Dear Midori,
Im missing the term "basal body" in the cellular component terms of the GeneOntology. Could you please add it? Its for the localization of ec 2.3.1.108, PMID:29869029 at the BRENDA Database.
Definition of basal body (Merriam Webster Dictionary)
a minute distinctively staining cell organelle found at the base of a flagellum or cilium and identical to a centriole in structure — called also basal granule, kinetosome
Good wishes, thank you,
Marion

Hmm, Im not familiar with eukaryotic cilia. But it seems to be reasonable. "In interphase, immunolabeled ATAT1 was observed in centrioles, nuclei, and basal bodies if the cells projected primary cilia." Ill use this term. Thanks, Marion

Hmm, I'm not familiar with eukaryotic cilia. But it seems to be reasonable. "In interphase, immunolabeled ATAT1 was observed in centrioles, nuclei, and basal bodies if the cells projected primary cilia." I'll use this term. Thanks, Marion

I only have access to the abstract, not the full text, but from the phrase "and basal bodies if the cells projected primary cilia." in the sentence you quote, the term ciliary basal body is definitely appropriate for that localization.

A review that could be used as a reference for the kinetosome synonym:

Chapman MJ, Dolan MF, Margulis L. Centrioles and kinetosomes: form, function, and evolution. Q Rev Biol. 2000;75(4):409-429. doi:10.1086/393621
PMID:11125699

authors: brendamg krchristie


text:
NTR: [peptide lactyltransferase (ATP dependent) activity] [protein lysine delactylase activity]

Hi GO,
I would need a couple of terms for protein lactylation and delactylation.
Please note that the lactyltransferase activity takes place in two consecutive steps, it is why it is associated with 2 Rhea reactions. I specified the ATP-dependence in the name since protein lactylation can also take place using CoA.
I think it is useful to discriminate between the CoA- and ATP-dependent reactions, since they involve different metabolites, which is important in term of metabolism.
Thanks
Sylvain

Name: peptide lactyltransferase (ATP dependent) activity
Definition: Catalysis of the reaction: lactate + ATP + L-lysyl-[protein] = N(6)-lactoyl-L-lysyl-[protein]+  AMP + diphosphate
child of GO:0016874 ligase activity
PMID:38653238
PMID:38512451
Xref RHEA:80271
Xref RHEA:80275

Name: protein lysine delactylase activity
Definition; Catalysis of the reaction: H2O + N6-lactoyl-L-lysyl-[protein] + NAD = L-lysyl-[protein] + nicotinamide +2''-O-lactoyl-ADP-D-ribose
Child of GO:0033558 protein lysine deacetylase activity
PMID:38512451
RHEA:80287

Please update the name of the following GO terms to specify that these reactions are CoA-dependent
GO:0120300 peptide lactyltransferase activity (CoA dependent)
GO:0120301 histone lactyltransferase activity (CoA dependent)

We should also change the hierarchy of GO:0106231, which is wrong.
GO:0106231 protein-propionyllysine depropionylase activity should be a child of Child of GO:0033558 protein lysine deacetylase activity

Hi @sylvainpoux
for point 1: new term is here:
+[Term]
+id: GO:0141207
+name: peptide lactyltransferase (ATP-dependent) activity
+namespace: molecular_function
+def: "Catalysis of the reaction: lactate + ATP + L-lysyl-[protein] = N(6)-lactoyl-L-lysyl-[protein]+ AMP + diphosphate\nchild of GO:0016874 ligase activity. Can also act on free lactate." [PMID:38512451, PMID:38653238, RHEA:80271]
+synonym: "peptide lactyltransferase (ATP dependent) activity" EXACT []
+synonym: "peptide lactyltransferase activity" BROAD []
+xref: RHEA:80271 {source="skos:exactMatch"}
+xref: RHEA:80271 {comment="skos:narrowMatch"}
+is_a: GO:0016886 ! ligase activity, forming phosphoric ester bonds
+is_a: GO:0140096 ! catalytic activity, acting on a protein
+property_value: term_tracker_item "https://github.com/geneontology/go-ontology/issues/28015" xsd:anyURI
+created_by: pg
+creation_date: 2024-06-07T08:13:32Z

Point 2: NTR:  protein lysine delactylase activity
+[Term]
+id: GO:0141208
+name: protein lysine delactylase activity
+namespace: molecular_function
+synonym: "Catalysis of the reaction: H2O + N6-lactoyl-L-lysyl-[protein] + NAD = L-lysyl-[protein] + nicotinamide +2''-O-lactoyl-ADP-D-ribose, removing a lactoyl group attached to a lysine residue in a protein." BROAD [PMID:38512451, RHEA:80287]
+xref: RHEA:80287
+is_a: GO:0033558 ! protein lysine deacetylase activity
+property_value: term_tracker_item "https://github.com/geneontology/go-ontology/issues/28015" xsd:anyURI
+created_by: pg
+creation_date: 2024-06-07T08:37:00Z

Fixed point 3& 4 as requested, although it seems we're missing that these reactions are acyl/acetyl transferases; aren't we?

Hi @pgaudet
Many thanks for the new terms!
Not sure to understand your question.
For point 3: peptide lactyltransferase activity (CoA dependent) is a child of N-acyltransferase activity, which is correct I think
Concerning point 4, GO:0106231 protein-propionyllysine depropionylase was a child of N-acyltransferase activity (a transferase), which was incorrect for a hydrase reaction
Sylvain

OK thanks for checking!

For this NTR:
+[Term]
+id: GO:0141207
+name: peptide lactyltransferase (ATP-dependent) activity
+namespace: molecular_function
+def: "Catalysis of the reaction: lactate + ATP + L-lysyl-[protein] = N(6)-lactoyl-L-lysyl-[protein]+ AMP + diphosphate. Can also act on free lactate." [PMID:38512451, PMID:38653238, RHEA:80271]
+synonym: "peptide lactyltransferase (ATP dependent) activity" EXACT []
+synonym: "peptide lactyltransferase activity" BROAD []
+xref: RHEA:80271 {source="skos:exactMatch"}
+xref: RHEA:80271 {comment="skos:narrowMatch"}
+is_a: GO:0016886 ! ligase activity, forming phosphoric ester bonds
+is_a: GO:0140096 ! catalytic activity, acting on a protein
+property_value: term_tracker_item "https://github.com/geneontology/go-ontology/issues/28015" xsd:anyURI
+created_by: pg
+creation_date: 2024-06-07T08:13:32Z
Looks like "xref: RHEA:80271 {comment="skos:narrowMatch"}" should be:
"+xref: RHEA:80275 {source="skos:narrowMatch"}"
I'll make that change now.

authors: pgaudet sjm41 sylvainpoux


text:
Update .travis.yml to minimum LTS.

@jonschlinkert Hey.
This PR works with generate/generate-package#7.  I was noticing that my package.json and .travis.yml tested at different minimums.

@jonschlinkert Ping now that you are back.  Another small PR to go with the last one.

Thanks. I think having this set to more versions is better than less versions. We could also prompt the user for which versions they'd like to include.

authors: doowb jamen

repo: generate/generate-travis


text:
[TODO] Create issues for the TODO comments

Related to:

#18

I made a mistake and inserted some tabs:
Tab character found here, and in two further locations.

I need to go through the changes and replace these with spaces.

I made a mistake and inserted some tabs:
Tab character found here, and in two further locations.

I need to go through the changes and replace these with spaces.

I have addressed this problem in the following issue:

https://github.com/geniusyield/atlas/pull/61

The fix is available in the following PR:

https://github.com/geniusyield/atlas/pull/61

repo: geniusyield/atlas


text:
Input name change

Change webapp_input.csv to mvmapper_input.csv?

duplicate of #39

repo: genomeannotation/mvMapper


text:
Using JSONStream

Thanks for the incredible work on this library. Also, thanks for the great usage documentation. I'm new to coding, and was able to quickly get this working in both CLI and a node app.
Quick question. I saw one example on a blog where someone had implemented dna2json with JSONStream, like so:
var dna = require('dna2json');
var JSONStream = require('JSONStream');
var fs = require('fs');
fs.createReadStream("./data/23andme-male.txt")
.pipe(dna.createParser())
.pipe(JSONStream.stringify())
.pipe(fs.createWriteStream("./data/23andme-male.json"));
Is this necessary? What are the pros/cons?

That was with the old API, no longer necessary. All of the streaming stuff was removed a while ago to simplify the API.
What blog post was it? Might be worth emailing them to update.

Thanks for the help! People like yourself make me excited for future involvement with the developer community.
The blog post is right here: http://thejackalofjavascript.com/dna-analysis-node-js/
If it would be helpful, I'd be happy to attempt contact and point out that the library has been updated.

@pvjones Yeah if you wouldn't mind that would be cool, glad that some people are using this!

authors: contra pvjones


text:
Fall forecasting challenge

Debasmita's models for predicting rcc and gcc are ready to submit.

[x] stop submitting the spring challenge

[x] update and test forcasting in the repo

[x] Access the EFI-forecasting server

[x] test scripts on server

[x] Check on website tomorrow for submission status

Accessed the server with Chris's help.
Met with Debasmita, Installed xgboost, and modified scripts. PR 51 merged by David
Existing script changes on the server committed to a new branch. Latest changes were added to another new branch. LibPaths had to be set for R scripts, and location of the neon4cast package had to be hard-coded.

Minor update PR 53.
Forecasts are not currently being submitted for some reason. 1) cron jobs are associated with user, and my changes to the EFI server are not being recognized by Kristina's existing cron job. 2) Has EFI updated their formats? The fall challenge takes wide format data, and while our column order isn't identical, it should still be able to submit.

Small change to data submission file PR 54.

repo: genophenoenvo/neon-datasets


text:
PB-1074: deactivate user

DELETE /api/users/{username} only soft deletes the user by setting a new field deleted_at to the current timestamp, as well as only disabling the user in cognito. These soft deleted users are no longer returned in GET requests and are also no longer displayed in the admin UI.
Currently there is no way to "hard delete" users. There is still an open question of when/who could do this.

I'm not sure if it is a good idea to have no possibility to hard-delete users (not even with the console). I would rather have the possibility to delete the user in the admin UI (but not the API) and have a new action to disable them.
Slightly related: We should also synchronize the enabled state in cognito with cognito_sync (see for example this draft). Here I would prefer to delete users in cognito if deleted in the DB and disable them if disabled.

@msom Thanks for the feedback. I changed the implementation to allow deleting/disabling via the admin ui.
Currently deleting/disabling via admin UI does not affect cognito, but as you are working to change the model to include cognito changes, I decided not to do anything for that yet.
The only thing I am still not sure about is the staticmethod objects_api() on User used in the api endpoints. I feel this implementation is error prone that in the future we accidentally also return disabled users via api. Happy for any suggestions how to default only active users in api, but allow all users in the admin UI.

Nice! Yes, adding cognito to admin UI is in progress.
Regarding the objects_api: How about managers as done in the DahlBook example? As the first manager defined in the class will be the default manager, it could look something like this:
class ApiUserManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(deleted_at__isnull=True)

# filtered by default
class User(models.Model):
    objects = ApiUserManager()
    all_objects = models.Manager()

# all by default
class User(models.Model):
    objects = models.Manager()
    api_objects = ApiUserManager()

Maybe use a manager instead of the static call (see comment above), but I'm fine with both.

Thanks. I much prefer using multiple managers. By default now only active users are returned.
Admin UI and cognito management command still get all users to work with.

authors: benschs msom

repo: geoadmin/service-control


text:
Regarding Geoext 2

Actually i am using Geoext for web mapping in web GIS and I am using tree.js example for overlay and create tree in one panel. But the problem is that the layer that i am using is not zooming in and out at max extent. here is that example for my own layer

@mahi14, please point questions about the usage of the library to the GeoExt mailing list or Stack Overflow. GitHub Issues are used for bug tracking only.
Either way, additional information about your specific problem will be required to help you. You'll need to attach some reproducible code and a description of what you're trying to achieve.
If you think your problem is due to a bug in GeoExt, feel free to reopen or post a new issue. Thanks.


text:
Examples for deleting, rescheduling and updating a scheduled job

I searched all the examples in this repo but could not find any sample code to kill, reschedule and update_by_id.
My use case is that I want to schedule a job and then edit the time it needs to run later (I think this should be reschedule?). I would also like to know how to change the information parameter sent to a scheduled job (I think it's the update_by_id method). Finally, another method to completely kill a scheduled job.

I figured out .update_by_id. For reschedule, what does the wait argument actually do? Have no idea what to put in worker_id argument for the .kill method.

As an API consumer, I think it would be great if all these methods just take in JobId as input.

The reschedule method  takes in the job and the amount of time to wait until its back into the queue.
The WorkerId is just the name of the worker eg email-worker-1
To kill a job is to tell a storage that the worker rejected a job. Currently you cant kill a job outside of its function signature because you have to get the WorkerId from context.
That mentioned, there is a reason apalis discourages using these apis directly. For once the would create undefined behavior since they are storage specific rather than worker specific.
If you have logic you want eg to kill a job if it returns a specific error then you should use layers, because they are predictable testable etc.
If you need you go lower than that I advice you get the connection pool and write some sql or redis commands.
I am curious though what you are unable to do currently.

As I mentioned, this is what I want to do:

My use case is that I want to schedule a job and then edit the time it needs to run later (I think this should be reschedule?). I would also like to know how to change the information parameter sent to a scheduled job (I think it's the update_by_id method). Finally, another method to completely kill a scheduled job.

When you push/schedule a job, you get a JobId,
To edit the time it runs, just use update_by_id and update run at.
To kill a running job, you need to be inside that job function (ideally) eg by an early return.
To kill a scheduled job that is not yet running ie still in queue, just use update_by_id, and set status to killed.
You should be able to do these fairly straight forward.
I will encourage you look at the actual storage to understand what is happening in those calls.

To kill a scheduled job that is not yet running ie still in queue, just use update_by_id, and set status to killed.

Can you give an example, I was not able to figure this out.

If you have the job

Use set status: https://docs.rs/apalis/latest/apalis/prelude/struct.JobRequest.html#method.status
Then update the job using update_with_id.

authors: IgnisDa geofmureithi

repo: geofmureithi/apalis


text:
Closes #10

We need remove externals to pack axios into the final bundle. You can launch weback with --display-modules before and after remove externals in webpack.config to show which modules are being packaged.

Si va empaquetado todo junto, axios se rompe.
El externals lo puse ahí por algo, no por gusto.
Si tuviéramos tests que hicieran peticiones HTTP reales en ambos entornos (node y browser), lo verías.
Demuéstrame que no está roto y te acepto el PR. :p

Se rompe en node, pero en browser funciona. Habrá que tomar una solución de compromiso. En node da un error en las referencias a window, se puede tratar de investigar que pasa, pero no se si tenemos claro el uso de la librería en node como para invertir en esta tarea.
En browser funciona sin problemas. He cambiado el sample vanilla.html usando la versión nueva empaquetada.

Si cae node, nos podríamos haber ahorrado el 80% del esfuerzo puesto en este tinglado hasta el momento... sabe mal tirarlo todo en el último minuto sólo por la comodidad de tener axios embebido en el mismo js. Supongo que cada uno lo valora en función de lo que lleve sudado.
También habrá que borrar todo lo referido al entorno node: testing, integración continua, samples... de hecho, el mismo axios es prescindible, sólo tiene sentido si queríamos compatibilidad con ambos entornos. En fin, se va a quedar el proyecto en 1 línea. Que supongo que es lo que debería haber sido desede el principio, puesto que node nunca fue un requisito. Si algún día lo es (teniendo autenticación por tokens, es probable que lo sea, porque no siempre se van a querer exponer las keys), ya no habrá vuelta atrás, porque a partir de ahora ya sólo nos fijaremos en el navegador.
Acepto el PR con la sensacion de ser muy gilipollas.

authors: michogar oscarfonts


text:
Increase padding for domain names

This accommodates the recent changes to these
strings such that they can be parsed properly.

Fixes #2311.
Broken after #2302.

With this change in place, the output of the problematic commands is:
$ geopmread -d
board                       1
package                     2
core                        44
cpu                         88
memory                      4
package_integrated_memory   0
nic                         0
package_integrated_nic      0
gpu                         0
package_integrated_gpu      0
gpu_chip                    0

$ geopmwrite -d
board                       1
package                     2
core                        44
cpu                         88
memory                      4
package_integrated_memory   0
nic                         0
package_integrated_nic      0
gpu                         0
package_integrated_gpu      0
gpu_chip                    0

repo: geopm/geopm


text:
Error: Couldn't find preset "es2015"

I followed the install instructions, although sourcing from a TypeScript file
var NotificationBadge = require('react-notification-badge')
and I'm getting the following error:
Error: Couldn't find preset "es2015" relative to directory "C:\\Repos\\foo\\node_modules\\react-notification-badge" while parsing file: C:\Repos\foo\node_modules\react-notification-badge\index.js

Any ideas? Other modules sourced the same way work just fine.
I'm transpiling TypeScript to javascript with browserify/watchify, using the following NPM task:
watchify src/main.ts -v -t [ brfs ] -p [ tsify ] --debug -t babelify -x react -x react-dom -x react-router -x underscore -o scripts/bundle.js

Hi @anjdreas
Please try this.
http://babeljs.io/docs/plugins/preset-es2015/
Sorry I'm not familliar to TypeScript,
But In my case, I create package.json like below. And it works fine.
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "watchify index.js -o main.js -dv",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "MIT",
  "dependencies": {
    "react": "^0.14.3",
    "react-dom": "^0.14.3",
    "react-notification-badge": "^1.0.0"
  },
  "devDependencies": {
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "babelify": "^7.2.0",
    "browserify": "^12.0.1",
    "watchify": "^3.6.1"
  },
  "browserify": {
    "transform": [
      [
        "babelify",
        {
          "compact": false,
          "presets": [
            "react",
            "es2015"
          ]
        }
      ]
    ]
  }
}

Thanks, I'll give it a try.

Hi @anjdreas
I also pushed transpiled code from v1.1.0.
Please try it.

authors: anjdreas georgeOsdDev

repo: georgeOsdDev/react-notification-badge


text:
LOAD CSV - the output returns the number of loaded frames. Improve messaging

Search before asking

[X] I have searched the EvaDB issues and found no similar bug report.

Bug
In [8]: path = "data/ludwig/home_rentals.csv"

In [9]: load_query = f"LOAD CSV '{path}' INTO HomeRentals;"

In [10]: cur.query(load_query).df()
Out[10]:
                            CSV  Number of loaded frames
0  data/ludwig/home_rentals.csv                     5037

Environment

EvaDB : 0.3.6

Are you willing to submit a PR?

[ ] Yes I'd like to help by submitting a PR!

Shall we change number of loaded frames to number of loaded rows?

repo: georgia-tech-db/evadb


text:
Bump edition to 2021 & update changelog to release 0.12

[x ] I agree to follow the project's code of conduct.
[ x] I added an entry to CHANGES.md if knowledge of this change could be valuable to users.

I think we also need to bump the version.

in the cargo toml? i  think the  cargo release tool will do  that

Oh, okay.

bors r+

authors: jdroenner lnicola

repo: georust/gdal


text:
Read COG metadata (IFD/tags)

I'm thinking something like:
class Tag:
    ...

class IFD:
    tags: Dict[str, Tag]

class COGTiff:
    fpath: str
    ifds: List[IFD]

    async def __aenter__(self):
        # Request first 16kb, parse ifd and their tags.
        ifds = <ifd with tags>
        return self(ifds)

Usage would be:
async with COGTiff('https://coolsat.com/cog.tif') as cog:
    await cog.read_tile()

We can reuse most of the code from COGDumper but I'd like to make it more object orientated to make the interface a little easier to use.
I like the AbstractReader used by COGDumper, for now lets focus on making it work for http files and then introduce pluggable readers.

that's great!

We can reuse most of the code from COGDumper but I'd like to make it more object orientated to make the interface a little easier to use.

I had started to do this a while ago. maybe I can find it back !

As of https://github.com/geospatial-jeff/async-cog-reader/commit/8dfedcdbcf676ab1d5ce4948ba0d2cea84671b38 I think reading metadata is in a good place

authors: geospatial-jeff vincentsarago

repo: geospatial-jeff/async-cog-reader


text:
Fixes gerardroche/sublime-phpunit#63

I've followed PHP Guide on Naming (http://www.php.net/manual/en/language.variables.basics.php) to set that lookup, so it should cover all cases.
Nevertheless I've kept the previous logic as a fallback in case the new one doesn't match. I'm not sure it's a good idea. I'll leave to you to decide.
Now I've noticed leaving the old logic prevents the tests from passing. :frowning_face:

This is making the tests fail. I did a quick check to see why this won't work for you. The switcher switches to the first class found which should be CommandBusTest, it looks like it's matching on the use statement alias.
Are you using an alternative php syntax. Can you maybe post you console log Menu  > Show Console. I'll look into this further a little later and see if I can reproduce it.

I was, indeed, using a slightly modified syntax. But the problem still occurs with the default one.
The Command bit ont the following code matches the entity.name.class.php scope
use some\namespace\BaseCommandInterface as Command;

Just as the CommandBus on the following
class CommandBus

And since the use statement comes first, the script tries to find a test for that first.
Here's the complete log:
PHPUnit: find_first_switchable(view = <sublime.View object at 0x04A66750>:path\app\inventory\commands\CommandBus.php)
PHPUnit: Found 3 PHP classes ['Command', 'Persistence', 'CommandBus'] in path\app\inventory\commands\CommandBus.php
PHPUnit:     Switchable symbol: CommandTest
PHPUnit:       Found 0 switchable symbol(s) in open files []
PHPUnit:       Found 1 switchable symbol(s) in index      [('path\\vendor\\symfony\\console\\Tests\\Command\\CommandTest.php', 'vendor/symfony/console/Tests/Command/CommandTest.php', (26, 7))]
PHPUnit:   Found switchable symbol in index ('path\\vendor\\symfony\\console\\Tests\\Command\\CommandTest.php', 'vendor/symfony/console/Tests/Command/CommandTest.php', (26, 7))
PHPUnit: Switching from path\app\inventory\commands\CommandBus.php to ('path\\vendor\\symfony\\console\\Tests\\Command\\CommandTest.php', 'vendor/symfony/console/Tests/Command/CommandTest.php', (26, 7))

I'll commit some changes in order to make that test pass in a moment.

This has been fixed here https://github.com/gerardroche/sublime-phpunit/issues/63

authors: gerardroche pilgerone

repo: gerardroche/sublime-phpunit


text:
[v0.5.0] feat: add eventually-postgres implementation with sqlx

Currently blocked by #231

Closed as #231 already partially addressed the content of this PR.

repo: get-eventually/eventually-rs


text:
在不同机型上面适配有问题

【警告：请务必按照 issue 模板填写，不要抱有侥幸心理，一旦发现 issue 没有按照模板认真填写，一律直接关闭】
问题描述

框架版本【必填】：
com.github.getActivity:ShapeView:8.5

问题描述【必填】：在oppo 手机上面机型是安卓12 跟设计图符合度比较高，在华为荣耀8 上面跟设计图出入比较大，不同机型表现的不一样。

复现步骤【必填】：可以测试一下不同机型

是否必现【必填】：是

出现问题的手机信息【必填】：华为荣耀8

出现问题的安卓版本【必填】：安卓8.0

问题信息的来源渠道【必填】：自己项目开发过程中遇到的bug

请回答

是部分机型还是所有机型都会出现【必答】：部分机型 华为荣耀8

框架最新的版本是否存在这个问题【必答】：是

是否已经查阅框架文档还未能解决的【必答】：是

issue 是否有人曾提过类似的问题【必答】：否

是否可以通过 Demo 来复现该问题【必答】：下面有代码

使用原生的 shape.xml

来实现是否也会出现该问题【必答】：否

其他

提供报错堆栈（如果有报错的话必填，注意不要拿被混淆过的代码堆栈上来）

提供截图或视频（根据需要提供，此项不强制） 下面有截图

提供解决方案（如果已经解决了的话，此项不强制）

<com.hjq.shape.layout.ShapeLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/sw_5dp"
android:layout_marginRight="@dimen/sw_5dp"
android:orientation="vertical"
app:shape="rectangle"
app:shape_radius="@dimen/sw_10dp"
app:shape_shadowColor="@color/shadow_color"
app:shape_shadowOffsetX="@dimen/sw_5dp"
app:shape_shadowOffsetY="@dimen/sw_7dp"
app:shape_shadowSize="@dimen/sw_10dp"
app:shape_solidColor="#FFFFFF">

#50000000

#50000000

小伙子，Github 提供的 Demo 工程是否也有这个问题？

demo也有这个问题

已在 QQ 上面答复

authors: Mrliandroid getActivity

repo: getActivity/ShapeView


text:
[疑惑]：主标题偶发换行异常

问题描述【必填】
当输入 学习 二字时，会出现标题文字被折成多行显示，当输入li 的时候，标题又能在一行中完整的显示
全部机型均呈现这种情况
这是问题截图：
![6d41f86e48e6b894899d0cc719a6435](https://github.com/getActivity/TitleBar/assets/109414112/5f71d149-e43a-4fdb-8d1f-06f8248

445ea)
这是涉及到的部分源代码：

// 判断并处理字符串超出屏幕宽度的方法
    public static CharSequence truncateStringIfNeeded(CharSequence text, int screenWidth, TextPaint textPaint) {

        if ((text != null) && (screenWidth > 0) && (textPaint != null)) {

            int textWidth = (int) textPaint.measureText(text.toString());

            if (textWidth > screenWidth) {

                // 字符串超出屏幕宽度，进行省略处理
                return TextUtils.ellipsize(text, textPaint, screenWidth, TextUtils.TruncateAt.END).toString();

            } else {

                // 字符串未超出屏幕宽度，返回原始字符串
                return text;

            }

        }

        return text;

    }

if ((str != null) && (!"".contentEquals(str))) {

                if (titleBar != null) {

                    CharSequence titleAndSubTitle = titleBar.getLeftTitle();
                    String oldSubTitle = null;
                    if (titleAndSubTitle != null) {

                        try {

                            String[] titles = titleAndSubTitle.toString().split("\n");
                            if (titles.length > 1) {

                                oldSubTitle = titles[1];

                            } else {

                                oldSubTitle = null;

                            }

                        } catch (Exception e) {

                            ThrowableUtils.processException(e, "运行 CentralActivity 类中的 setSubTitle 方法时，根据原来的主副标题内容切分出原来的主标题内容时，出现异常", null);
                            oldSubTitle = null;

                        }

                    }

                    SpannableStringBuilder newTitleAndSubTitle = new SpannableStringBuilder();

                    // 20233-6-30  16:08-判断当前主标题的长度是否大于窗口宽度，若是，则进行省略处理
                    TextPaint textPaint = new TextPaint();

                    // 2023-6-30  16:52-获取当前字体大小像素数
                    float textSizeInSp = 25; // 假设文本大小为 25sp(默认为实际大小+5，以避免偶现多行展示的情况)
                    DisplayMetrics metrics = getResources().getDisplayMetrics();
                    float textSizeInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, textSizeInSp, metrics);
                    textPaint.setTextSize(textSizeInPixels);

                    textPaint.setAntiAlias(true);

                    CharSequence str_processed = TextViewUtils.truncateStringIfNeeded(str, getWindowWidth(), textPaint);

                    newTitleAndSubTitle.append(str_processed);
                    if (oldSubTitle != null) {

                        newTitleAndSubTitle.append("\n");
                        newTitleAndSubTitle.append(oldSubTitle);
                        newTitleAndSubTitle.setSpan(new RelativeSizeSpan(0.75f), str_processed.length() + 1, str_processed.length() + oldSubTitle.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

                    }
                    TM.postUI(() -> {

                        TextView leftView = titleBar.getLeftView();
                        leftView.setSingleLine(false);
                        leftView.setText(newTitleAndSubTitle);

                    });
                    LogManager.log2File("设置主标题完毕");

                } else {

                    LogManager.log2File("CentralActivity.setTitle : TitleBar为null!");

                }

            } else {

                LogManager.log2File("CentralActivity.setTitle : 要设置的文本为null或空!");

            }

目前想实现的需求:
就是我这个项目有主副标题之分，想在主标题超出标题栏空闲宽度时呈现ellipsize中end的效果，副标题亦是如此，不知道作者有没有更好点的方法实现这个需求><
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是

好像解决了，，是通过计算TitleBar的剩余空闲宽度处理的

TitleBar 并不是为了满足所有需求而诞生的，我的设计初衷是只针对一些常用的需求，例如左边中间右边各有一个 TextView 做封装，其他情况建议你自定义布局。

好的，谢谢作者

authors: ChinaFLTV getActivity

repo: getActivity/TitleBar


text:
Index receives api key

Fixes #784
This PR makes it so that when index --watch or scan --watch is executed from the VS Code extension, the APPMAP_API_KEY is set as an environment variable.

Deferred for now to focus on UX improvements.

authors: ahtrotta kgilpin

repo: getappmap/vscode-appland


text:
Input/Output Tracking for Publishes

Feature
I would like to implement some sort of Tracking of the inputs that are used to generate a specific publish. This will allow upstream input and downstream output tracking to be visualized.
For example it should allow us to trace:
pointcache v007
   - made with: rig v003
           - made with: model v009

Similarly it allows you to trace wherever pointcache v007 was used to generate new outputs.
Example uses cases would be:

Check what version of a character's model was used to render as a shot's sequence.
Check whether the FX created used the same animation cache version as you're using now to render the shot together with the FX. That way you can be sure you are in sync with the prepared FX.
Query all shots rendered with rig version 8, potentially due to an error in that

Terminology
I'm going for Inputs/Outputs as regards to terminology, but there are plenty of other options.
Other ideas that passed:
- ancestors / children
- inputs / outputs
- sources / destinations
- history / future
- ingredients / recipes
- relationship
- upstream / downstream
- references / dependency

One of the other expected names for it would be "dependencies" however that's currently already taken as definition for those dependencies of a representation that it requires to operate after load (see representation schema) which was also used in https://github.com/getavalon/core/issues/129.
Implementation
We'd only need to store representation["data"]["inputs"] as a list of MongoDB document ids (avalon.io.ObjectId) and the data should be ready for visualization.
With only that data present I've prepared the following visual design with Qt:

This shows the inputs to pointcacheExplode. A toggle to switch between "inputs" and "outputs" should still be added to visually see wherever that publish was used to generate other publishes
Preview Pull Request coming soon..
I'll prepare a PR for both Avalon core and share a link to a PR on colorbleed-config to see how a studio could manage collecting these inputs at publish time for Maya, Fusion and Houdini. Expected this Friday or next Monday.

References:

Terminology discussed on Avalon gitter
Prototype shared on Avalon gitter

1 for inputs and outputs :)

Studio Config Publish input tracking example implementation
I've implemented the logic for collecting the inputs data for Maya, Houdini and Fusion in our colorbleed-config as an example. Code can be found in this commit however note that it hasn't been tested thorougly but it did work for my current tests. So should be a good reference to support it after it's implemented in Avalon core to be visualized.

Here's a little preview of a potential visualization for it in action. A little Input/Output stream widget.
Also shared in on Avalon Gitter here
Questions

Where and how should this tool be exposed? As in, what's a good logical location and way to select what representation you want to operate on? In the Loader? In the Scene Inventory? Other ways?
What's a logical way to interact with this?

Some input would be very welcome! :)

Here's a quick preview of how it could appear in the Loader - currently implemented it quickly as just a Loader in the studio config for testing.
Also rolled out the collection of inputs from two comments above (with some minor bug fixes) so our pipeline is currently collecting data for current production. In that way I have something useful to start visualizing... ;)

This is great. The only thing I'd change would be trying to display it as node graph to make it clearer how the data flow, but that's just a UI thing. The data collection and data member names are solid.
We can give this a shot on our end, but I think this is a great candidate for feature that should be in the core.
I'd personally give people the option to show it in both loader and scene manager. I can think of situations where it's useful in both places and if it runs as action anyway, that it's trivial to show in multiple places.
that being said, it would deserve to be in the main avalon menu as well, with added checkbox to let you display inputs and outputs based on scene selection

It's useful in so many scenarios. At this case I'm mostly interested in rolling out at least a first design so we can iteratively start improving.

The only thing I'd change would be trying to display it as node graph to make it clearer how the data flow, but that's just a UI thing.

This is one of those things that's definitely much prettier to debug in a good node/flow graph however I've never seen a trivial light-weight Python implementation of one that we can easily embed with Avalon or the tool - or at least I haven't used them. Here are some links just as a reference:

https://github.com/jchanvfx/NodeGraphQt
https://github.com/dsideb/nodegraph-pyqt/tree/master/nodegraph
https://stackoverflow.com/questions/46142167/pyside-node-graph-connect-items
https://stackoverflow.com/questions/2173146/how-can-i-draw-nodes-and-edges-in-pyqt

The first one already seems to be using Qt.py and has no other dependencies so could be a potentially usable one.

I did a quick prototype with NodeGraphQt:

However, there's no auto-layout functionality in NodeGraphQt which makes it pretty much useless at this point for generating a nice and tidy graph. Visually the design looks pretty good. Auto-layout could potentially be implemented by using networkx to compute a formatted graph layout and just using those values to position the graph itself. With networkx this would then become trivial.
It's just a regular Qt widget and it has the necessary callbacks to also allow more debugging information to pop-up as you click a specific node in the graph (like a widget showing the representation's information).
Here's the code I used to generate this prototype. Please note that I hardcoded a representation id to test with.

This is related to #159 :)

@davidlatwe did you make any progress on your side regarding Input/Output tracking?

Hi @BigRoy , I haven't !

To keep this alive - we recently required visualizing dependencies for a project and I've tweaked a prototype to have a search bar and some filters.
Here's a preview of that prototype:

Adding search and filters helps the artists to find in the input history the information he needs to compare with.
In this case we wanted to retrieve the information from a rendered comp which used renders from Maya to detect which versions of animation pointcaches were used at that stage. So the Houdini FX could make sure to match up the pointcache versions with the comp plate he's using.

authors: BigRoy davidlatwe mkolar tokejepsen

repo: getavalon/core


text:
Add support for JWT-based callbacks

Add a few new methods for JWT-based features on BC:

verifyJWT which helps decode the signed_payload_jwt now passed on load callbacks for apps

JWT-based callbacks should be easier to use for consumers going forward, and we are likely to extend this callback with more data in the future

constructJwtFromAuthData which constructs as JWT similar to the one you would get from the load callback, but using the data from the auth callback. This allows you to use JWT-based session management in a consistent way regardless of how the app is loaded.

createCustomerLoginJWT to help with creation of JWT for the customer login API

getTime supporting method to get system time, useful for customer login API

@stefanosala would love your eyes on this! :)

@stefanosala just checking in - would love if you get a chance to review this. Thanks!

Just to share this openly - we've chosen to fork this repo at https://github.com/bigcommerce/node-bigcommerce so we can make a few improvements to it. So I'll be closing this PR.

repo: getconversio/node-bigcommerce


text:
Revert "Upgraded electron to '12.0.5'."

Reverts getferdi/ferdi#1304

The issue I was having in https://github.com/getferdi/ferdi/pull/1304#issuecomment-827192807 seems to be gone after merging this locally.
Nevertheless, we should try and figure this out. If I'm reading https://github.com/aduh95/node/commit/5a269369f39e8c0f4c2f8119df2ef7be73b4bf51#diff-96737fe4ad6eeaa04f6a92ff3d6c51e31b0145292df8e3cd044d77a5851acc6cR184-R189 correctly, it looks like we'll have to use ``"type": "commonjs"inpackage.jsonor call our.jsfiles.cjsif we want to keep using CommonJS. The other solution is not not transpileimportintorequire` and use ESM, but I don't think that's very realistic, given our dependencies.

@kris7t - I like your idea - could you please try it out and push a commit into the branch - that way, I can also pull the branch and test locally on mac - i have both the x86 and M1 machines - can try on both simultaneously.

@vraravam I opened #1308 as a draft for these changes + other Linux compatibility changes (that should not introduce any macOs regressions, hopefully).

repo: getferdi/ferdi


text:
#530 - Light / Dark Theme Hotkey and Menu

Feature/Enhancement - #530 - Provide a Light / Dark Theme Hotkey

Add a new menu item for toggling between Dark Mode and Light Mode
Add a new sub menu entry under 'View' in src/lib/Menu.js named toggleDarkMode
Add an accelerator hotkey of '${cmdKey}+Shift+D' as the feature request was to have a hot key for dark mode. See #530
Update intl locales for 'menu.view.toggleDarkMode' in en.json and en-US.json.

Motivation and Context
This PR is the motivation behind issue #530. I thought adding a menu item under the main View menu adds more value.
How Has This Been Tested?
Tests were done on Windows 10 environment in development mode.
Screenshots (if appropriate):

Types of changes

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

Checklist:

[ x] My code follows the code style of this project (run $ yarn lint).

@vantezzen @kytwb Can you please review this PR?

@all-contributors please add mahadevans87 for code.

@mahadevans87 Seems to be working on macOS as well:

Thanks for your contribution!


text:
Unexpected results from form blueprint

I have the following blueprint:
        -
            name: taxonomy.tag
            type: checkboxes
            label: 'Tag for Blog Post'
            options:
                tag1: 'Tag 1'
                tag2: 'Tag 2'
                tag3: 'Tag 3'
                tag4: 'Tag 4'

And the front matter generated looks like this:
---
taxonomy:
    tag:
        taxonomy.tag-tag1: tag1
        taxonomy.tag-tag3: tag3
---

Is this an issue with my blueprint formatting or an issue with Grav blueprint processing?
Thanks very much,
Paul

Add the use: keys (explained in https://learn.getgrav.org/forms/forms/fields-available#the-checkboxes-field) to the field definition:

            header.taxonomy.tag:
              type: checkboxes
              label: 'Tag for Blog Post'
              options:
                tag1: 'Tag 1'
                tag2: 'Tag 2'
                tag3: 'Tag 3'
                tag4: 'Tag 4'
              use: keys

It will store as
taxonomy:
    tag:
        tag1: true
        tag2: true
        tag3: true
        tag4: false

Thank you very much for the info @flaviocopes (I did not know about keys) but I am still unable to get the results I am trying for - setting the tags for a taxonomy as recognized by Grav.
I am trying to get this final result:
taxonomy:
  tag: [tag1,tag2,tag3]

Is this even possible then? Might there be another format accepted by Grav when building taxonomy tags?
Thanks again,
Paul

I tried on a page blueprint. Did you use it on a page blueprint too? Or if somewhere else, where?

I am using it in a blueprint along with the Add Page by Form plugin (https://github.com/bleutzinn/grav-plugin-add-page-by-form), perhaps I also need to loop back with the plugin author and do some more tests. Thanks again for your help!

Oh ok thanks, in a frontend form. I thought in an Admin blueprint. Need to test as well.

Might as well be unique to that plugin, as the frontmatter is created upon form submit.

In the Add Page plugin I merge the preset frontmatter with the submitted field values and format the YAML like this:
$page->frontmatter(Yaml::dump((array) $page->header(), 10, 2, false));.
I was "inspired" by the exact same line of code in the Admin plugin.
Might that be the cause of the problem with the taxonomy formatting? If so what should the format be?

I've looked into the issue a bit. Why the Add Page plugin does is that it inserts the form field values as frontmatter of the newly created page. This goes well for simple field types such as text fields. However, with more complex field types such as checkbox this is not as straightforward.
So, I think the issue has nothing to do with the YAML formatting itself but requires a more clever way of  processing input fields by the Add Page plugin.
@flaviocopes, can you confirm this?

@bleutzinn try doing this https://github.com/getgrav/grav-plugin-admin/blob/develop/classes/admincontroller.php#L1707-L1708 which is in the method that prepares the page for storage after saving.

Thanks flaviocopes. I've changed $page->frontmatter(Yaml::dump((array) $page->header(), 10, 2, false)); to simply $page->frontmatter(Yaml::dump((array) $page->header()));. Actually, the YAML frontmatter output reflects the data structure of $form->value()->toArray().
With four checkboxes in the form named tag1 to tag4 with only checkboxes tag2 and tag3 checked and the other two unchecked, when not using use keys, as the OP reported, the output is:
taxonomy:
    tag:
        taxonomy.tag-tag2: tag2
        taxonomy.tag-tag3: tag3

Pages with frontmatter in the above format are found when using {% for post in taxonomy.findTaxonomy({'tag':['tag3']}) %} in a template. It's not a pretty sight but it works.
With the addition of use: keys as you suggested, the YAML output becomes:
taxonomy:
    tag:
        tag2: true
        tag3: true

However, with this format pages with this tags can not be found using {% for post in taxonomy.findTaxonomy({'tag':['tag3']}) %}. Nor by {'tag3':['true']} or {'tag3':[true]}.
The above format is initially displayed as such in the Admin. Things get really weird when you edit this frontmatter in Admin and, for instance, change tag3: true to tag4: true. After doing so and saving the page in Admin suddenly the frontmatter is shown as:
taxonomy:
    tag:
        - '1'
        - '1'

authors: bleutzinn flaviocopes paulhibbitts

repo: getgrav/grav


text:
Cache for twig

Hi
every time I change twig file I must clear cache to see the changes in the page...
grav 1.6.10
in 1.6.8 there was no
whats wrong?

Nothing changed. Unless you turned off auto_reload: true in system.yaml.


text:
Invalid security token

I get this error often when save, change theme, logout and when i want to login.

Can you provide a ZIP of your site?

@rhukster would be better if you can log in on C9, i can share the workspace

No I really need a zip so i can try to replicate locally.  I trust you are getting the message, i need to find out why, and I can't debug the code on your end.

BTW, I see you mentioned in Gitter.im you have Gantry5 installed.  That is VERY EARLY beta.  Try removing that and see if your issues go away.

Yeah, i got Oops there was a problem, please check your input and submit the form again. when i try to create the username on a clean installation.
I manually created the username, i have to hit login lot of times to work.
Looks like i am the only one having this issues, i use c9, but is not the best option as i see... Is useful because i can share the website and others can see what i work on, otherwise is not really what i need.
I am closing it for now, because it's a clean installation, nothing added.


text:
Implement constructs extensions

Fixes #191

I love the idea!
I don't have a clear idea of what the ideal solution would be but here are some thoughts to get the discussion started around this.
Do we want to expose Cloudformation properties? Or would it be possible to expose underlying CDK properties? I guess the latter is harder because not everything is a property, some things need to be created as separate objects or as method calls.
From a Lift developer perspective, wouldn't it be more friendly to have a generic way to expose and merge config built in the provider instead of each individual construct?
Would this be as resources.extensions in Serverless framework? I now that in sls, the extensions are only replacing keys at the first level. This would be problematic for Lift as some Cloudformation resources are poorly designed on AWS side like Cloudfront distributions that have a single DistributionConfig key in properties.
Overriding the static website or server-side website would get way harder as you would need to redifine every property to make it work with undermines the benefits of using Lift.

Would this be as resources.extensions in Serverless framework? I now that in sls, the extensions are only replacing keys at the first level. This would be problematic for Lift as some Cloudformation resources are poorly designed on AWS side like Cloudfront distributions that have a single DistributionConfig key in properties. Overriding the static website or server-side website would get way harder as you would need to redifine every property to make it work with undermines the benefits of using Lift.

Thanks for your feedback @t-richard :) I made Lift's API to provide extensions entry point as simple to enrich as possible. I now completed first version of this PR for you and @mnapoli to have a deeper look on the internals. Additional entry point can easily be added for the extensions as use cases pops up.
For exemple, if you want to provide for Lift users at later stage an option to extend the OriginRequestPolicy of the underlying CloudFormation resource within server-side-website construct, you'll "just" have to add the following line in the extend method of the construct :
    extend(): Record<string, CfnResource> {
        return {
            distribution: this.distribution.node.defaultChild as CfnDistribution,
            originRequestPolicy: this.originRequestPolicy.node.defaultChild a CfnCachePolicy
        };
    }

More complex selector that the defaultChild of each CDK node can be used to reference the underlying in depth resources of the CloudFormation template. Would welcome any PR in a second stage implementing those to ensure no extensions requires a whole bunch of Lift best practice to be reimplemented manually ;)

authors: fredericbarthelet t-richard

repo: getlift/lift


text:
Strict json parsing, error when there are not used fields

It would be nice to have some parser option, that validates json or some other values even more strictly. This is a common situation with configuration files when file is outdated and some fields were removed or renamed in the code, but rfl::json::read would parse this without any errors.
I want following code to fail:
struct Person {
  std::string first_name;
  std::string last_name;
};

std::string json_string = R"({"first_name":"Homer","last_name":"Simpson","age":36})";
auto homer = rfl::json::read<Person, rfl::ErrorIfExtra>(json_string).value();

In addition it would be nice to have this in the list of errors:
struct Person {
  std::string first_name;
  std::string last_name;
  int age;
};

std::string json_string = R"({"first_name":"Homer","last_name":"Simpson","ages":36})";
auto homer = rfl::json::read<Person, rfl::ErrorIfExtra>(json_string).value();

Failure:
due to unexpected exception with message:
  Found 2 errors:
1) Field named 'age' not found.
2) Value named 'ages' not used.

May be it make sence to use this as default behaviour and have rfl::IgnoreExtra that would prevent exception

I have had a similar discussion before. I don't think this should be the default behaviour, because similar libraries in other languages, like Pydantic, also just ignore other fields by default.
But I think it makes sense to add a processor that would raise an error if there are extra fields.

@Altren, it's still in a feature branch, but basically this is how it works:

There is a processor called rfl::NoExtraFields that you can add. If you do, you will get an error message that is basically identical to what you have suggested (but adds a bit more information).
If your struct contains rfl::ExtraFields, then that will override the rfl::NoExtraFields processor. The reasoning is that if someone adds a catch all for extra fields, then it is very clear that the intention is that he or she wants the extra fields to be added to that rather than an error being thrown.

Works like a charm, thank you!

repo: getml/reflect-cpp


text:
Update dependencies for v2024.3

Closes getodk/central#734. I just ran npm audit fix.
What has been done to verify that this works as intended?
This change will be validated by automated tests + regression testing.
Before submitting this PR, please make sure you have:

[x] run npm run test and npm run lint and confirmed all checks still pass OR confirm CircleCI build passes
[x] verified that any code or assets from external sources are properly credited in comments or that everything is internally sourced

I'm going to break protocol here and merge because I'd like to open a PR for upgrading the node version which will conflict with this.

authors: lognaturel matthew-white

repo: getodk/central-frontend


text:
Prefer explicit sentry_dsn to SENTRY_DSN env var

Closes https://github.com/getsentry/perl-raven/issues/29.

I am building this into release 1.13 which should be available in a few hours.  Thanks!

repo: getsentry/perl-raven


text:
publish: getsentry/sentry-dart@7.0.0-beta.3

Requested by: @marandaneto
Merge target: v7.0.0
Quick links:

View changes
View check runs

Assign the accepted label to this issue to approve the release.
Leave the #retract comment under this issue to retract the release (original issuer only).
Targets

[ ] pub-dev
[ ] github
[ ] registry

Targets marked with a checkbox have already been executed.  Administrators can manually tick a checkbox to force craft to skip it.

@kahest let's test if https://github.com/getsentry/craft/pull/453 fixed the issue.

Error:  fatal: detected dubious ownership in repository at '/github/workspace/repo'
To add an exception for this directory, call:
git config --global --add safe.directory /github/workspace/repo
To add an exception for this directory, call:
git config --global --add safe.directory /github/workspace/repo
at Object.action (/usr/local/bin/craft:127:6006)
at LW.exec (/usr/local/bin/craft:127:6426)
at /usr/local/bin/craft:127:11842
at new Promise ()
at dA.handleTaskData (/usr/local/bin/craft:127:11731)
at dA. (/usr/local/bin/craft:127:11357)
at Generator.next ()
at a (/usr/local/bin/craft:124:136313)
at processTicksAndRejections (internal/process/task_queues.js:95:5)

This error does seem to be related to my changes.

Blocked by https://github.com/getsentry/publish/pull/1827

Retrying ...

Hrm, latest failure is different ...
Error:  Error creating target instance for pub-dev!
Error:  Executable "dart" not found. Is it installed?

Oof. Not out of the woods, eh? 😞
STDERR:dart: fatal: detected dubious ownership in repository at '/opt/flutter'
dart: To add an exception for this directory, call:
dart:
dart: 	git config --global --add safe.directory /opt/flutter
dart: Warning: pubspec.yaml has overrides from pubspec_overrides.yaml
dart: The current Flutter SDK version is 0.0.0-unknown.
dart:
dart: Because sentry_flutter requires Flutter SDK version >=3.0.0, version solving failed.
dart:

Looks like this is the dart executable using git under the hood.

#retract

Version 7.0.0-beta.3 of package sentry already exists.

Trying https://github.com/getsentry/publish/issues/1851

repo: getsentry/publish


text:
Allow dict-style logging in breadcrumbs processing

This commit changes the breadcumbs processor to be able to handle dict-style logging properly, e.g. logger.info('Hello %(who)s', {'who': 'world'}). Prior to this change, breadcrumbs shown in Sentry were not interpolated and thus hard to follow.

Seems like the travis CI jobs is broken (correct me if I'm wong), but tests are failing unrelated to this change. Can someone please have a look?

@rakai93 mind rebasing from master?

@ashwoods Thank you, I merged master and now the checks pass!

repo: getsentry/raven-python


text:
🛑 MediaKiller™ is down

In 6306924, MediaKiller™ (https://mk.gfx-pro.net) was down:

HTTP code: 404
Response time: 377 ms

Resolved: MediaKiller™ is back up in 87e905e after 6 minutes.

repo: gfxpronet/upptime


text:
mimic vim-sneak repeat f/F behaviour

I'm a fan of the sneak behaviour whereby if you've started an f/forward movement, selecting F automatically highlights all preceeding matches, as if the search had begun from the current cursor position.
Is this possible to reproduce with lightspeed?

...highlights all preceeding matches, as if the search had begun from the current cursor position.

Not "as if" - if you press F while doing f, Sneak actually starts a new search in the reverse direction. And I ask: why would anyone want to do this (in practice)? At first, Lightspeed behaved exactly like Sneak, but it's been changed intentionally. Related: #105

I find it quite intuitive.
The first search might not be my move target. I initiate it for the visual highlight.
The direction I go is most often the one that sneak/lightspeed initiated in, but occasionally it's reverse.

The first search might not be my move target. I initiate it for the visual highlight.

I don't understand this at all. f only highlights matches in the forward direction, and F in the backward direction, so what good do they do if you aim for a target in the opposite direction?

If sneak is active:
cursor position and highlighting indicate state and direction. "yes" sneak is active, and "yes, you're going this direction".
If lightspeed is active and you do an "f -> F" sequence, there's no highlighting at all.
No state, no direction.

Sorry, but this still makes zero sense to me. You mean you use Sneak f/F to actually search in the window, when you don't know where your target is, and you just start it in an arbitrary direction, hoping that you guessed right, and turning around, if not?

I'm not sure what there's not to get :]
It's the same way that incsearch works - albeit highlighting only targets in the current search direction. There's no "this is where you started search mode" until you exit.
You're in a mode, and you can toggle direction. It's as simple as that.
I chose this plugin specifically for the sneak behaviour, if you're not interested in going in that direction, it's fine.

You're in a mode, and you can toggle direction. It's as simple as that.

I totally get it. What I do not get is the point of switching directions after starting an f motion. :)

If you are searching for a pattern, not knowing if there is a target at all, then use /? (possibly with incsearch enabled), that's what they are for - it's much-much-much faster to type 3-5 chars and using ctrl-g/t (or n/N), than initiating a 1-char search (f), possibly turning around, and then skipping through an awful lot of false positives.

Otherwise, if you see the target, and know where you want to jump, then why on Earth would you want to turn around in the middle of the motion? What's the point of highlighting the targets in the opposite direction?

I find it useful as a visual aid. I may not reverse direction, but hit   to see the preceeding matches. It's contextual and definitely a useful addition to my workflow.
For the record, I do find the language "why on earth", "this makes zero sense to me" language unnecessary. I feel it was a design choice from a very popular plugin that I happened to like. As I said, if you don't want to go in that direction, it's fine.

For the record, I do find the language "why on earth", "this makes zero sense to me" language unnecessary.

Yeah, sorry for that, I should have kept in mind that such intense wording in writing without metacommunication might not be read as casual or playful as intended, just tried to express my utter confusion.

to see the preceeding matches

You're talking about all the matches in the window, or the matches skipped so far?
Anyway, it's still hard to imagine any situation where I would be interested in the preceding positions of the given char, when all I'm doing ultimately is moving/selecting from A to B - char is just a means to achieve that. I'd be really glad if you could come up with an illustrative example.

authors: ggandor sunjon


text:
New Version that does not have the Web Safe Color Name Issue

Any chance you can provide an update that does not have the naming issue with CSS colors such as blue or white.  The colors do not render properly if you use a variable with those terms in it such as $my-blue: #67890.  It will render the web color (blue) and not the actual hex value.

Any line that mentions "Sublime" comes out as lime! >_<

authors: andrey-snowflake bgarrant

repo: ggordan/GutterColor


text:
Ensure that we can lookup the antora provided paths

fixes #416
This is an attempt to (spot) fix #416. in the issue it is mentioned that the !include directive requires some refactoring, but i'm not intimate enough with the solution to figure that out.
for more information please see the issue.

Fixed in https://github.com/ggrossetie/asciidoctor-kroki/pull/422

authors: ggrossetie joostschriek

repo: ggrossetie/asciidoctor-kroki