Is there a way to define Refl in Morte?

Can a Refl like type be defined in Morte for demonstrating equality between two terms?
http://stackoverflow.com/questions/36181738/refl-type-in-calculus-of-constructions
(In general, can GADTs be encoded in Morte?)

Yes, you can encode Refl in morte.
First, for simplicity, let's assume that we already have the following external definitions as local files so that we can reference them using morte's import system:
$ cat Nat
forall (Nat : *) -> forall (Succ : Nat -> Nat) -> forall (Zero : Nat) -> Nat
$ cat Succ
    \(n : #Nat )
->  \(Nat : *)
->  \(Succ : Nat -> Nat)
->  \(Zero : Nat)
->  Succ (n Nat Succ Zero)
$ cat Zero
    \(Nat : *)
->  \(Succ : Nat -> Nat)
->  \(Zero : Nat)
->  Zero
$ cat '(+)'
    \(m : #Nat )
->  \(n : #Nat )
->  \(Nat : *)
->  \(Succ : Nat -> Nat)
->  \(Zero : Nat)
->  m Nat Succ (n Nat Succ Zero)
$ cat One
#Succ #Zero

Now, here is how I would prove in morte that 1 + 0 = 0 + 1 using Refl:
   \(Refl : #Nat -> #Nat -> *)
->  \(MkRefl : forall (n : #Nat ) -> Refl n n)
->  (   \(x : Refl (#(+) #One #Zero ) (#(+) #Zero #One ))
   ->  x
   )

   (MkRefl #One )

The above program type-checks, but if you change the type parameters to Refl to types that do not match such as this program:
    \(Refl : #Nat -> #Nat -> *)
->  \(MkRefl : forall (n : #Nat ) -> Refl n n)
->  (   \(x : Refl (#(+) #One #One ) (#(+) #Zero #One ))
    ->  x
    )

    (MkRefl #One )

... then type-checking will fail.
I can also tie this into your other question about proving commutativity.  You cannot use the above Refl mechanism to prove commutativity.  For example, the following program does not type-check:
    \(Refl : (#Nat -> #Nat -> #Nat ) -> (#Nat -> #Nat -> #Nat ) -> *)
->  \(MkRefl : forall (n : #Nat -> #Nat -> #Nat ) -> Refl n n)
->  (   \(x : Refl (\(x : #Nat ) -> \(y : #Nat ) -> #(+) x y)
                   (\(x : #Nat ) -> \(y : #Nat ) -> #(+) y x) )
    ->  x
    )

    (MkRefl (\(x : #Nat ) -> \(y : #Nat ) -> #(+) x y))

... and fails with an error message stating that the commuted additions are not equal:
$ morte < example
...
Error: Function applied to argument of the wrong type

Expected type: Refl (λ(x : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(y : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(Nat : *) → λ(Succ : Nat → Nat) → λ(Zero : Nat) → x Nat Succ (y Nat Succ Zero)) (λ(x : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(y : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(Nat : *) → λ(Succ : Nat → Nat) → λ(Zero : Nat) → y Nat Succ (x Nat Succ Zero))
Argument type: Refl (λ(x : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(y : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(Nat : *) → λ(Succ : Nat → Nat) → λ(Zero : Nat) → x Nat Succ (y Nat Succ Zero)) (λ(x : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(y : ∀(Nat : *) → ∀(Succ : Nat → Nat) → ∀(Zero : Nat) → Nat) → λ(Nat : *) → λ(Succ : Nat → Nat) → λ(Zero : Nat) → x Nat Succ (y Nat Succ Zero))

However, you can use morte to prove associativity and identity.  For example, all of the following programs type-check:
    \(  Refl
    :   (#Nat -> #Nat -> #Nat -> #Nat ) -> (#Nat -> #Nat -> #Nat -> #Nat ) -> *
    )
->  \(MkRefl : forall (n : #Nat -> #Nat -> #Nat -> #Nat ) -> Refl n n)
->  (   \(  x
        : Refl
            (\(x : #Nat ) -> \(y : #Nat ) -> \(z : #Nat ) -> #(+) x (#(+) y z))
            (\(x : #Nat ) -> \(y : #Nat ) -> \(z : #Nat ) -> #(+) (#(+) x y) z)
        )
    ->  x
    )

    (MkRefl (\(x : #Nat ) -> \(y : #Nat ) -> \(z : #Nat ) -> #(+) x (#(+) y z)))

    \(Refl : (#Nat -> #Nat ) -> (#Nat -> #Nat ) -> *)
->  \(MkRefl : forall (n : #Nat -> #Nat ) -> Refl n n)
->  (   \(x : Refl (\(x : #Nat ) -> #(+) x #Zero )
                   (\(x : #Nat ) -> x ) )
    ->  x
    )

    (MkRefl (\(x : #Nat ) -> x))

    \(Refl : (#Nat -> #Nat ) -> (#Nat -> #Nat ) -> *)
->  \(MkRefl : forall (n : #Nat -> #Nat ) -> Refl n n)
->  (   \(x : Refl (\(x : #Nat ) -> #(+) #Zero x )
                   (\(x : #Nat ) -> x ) )
    ->  x
    )

    (MkRefl (\(x : #Nat ) -> x))

I believe GADTs can be encoded in terms of Refl + existential quantification and since existential quantification can also be encoded then I believe you can encode GADTs in morte, too, although it might not be very pretty.

GADTs actually can be encoded in a way similar to REFL I'm pretty sure.

I will go ahead and mark this closed since I believe the original question was answered, but feel free to reopen if you have any additional questions

Typing Dynamic Typing section 3 and  this presentation slide 22 are relevant. Both suggest that the Church encoding of 'Identity types' is Leibnitz equality. @Gabriel439 can you comment on that?
Also could you comment on how does you commutativity and associativity proofs work without induction principles? Induction principles are traditionally added to the languages like CoIC through inductive types.

@lukaszlew: Yeah, using Leibniz equality seems much simpler.  I didn't know about it until you pointed it out


Typescript: It seems there is no way to provide "extra" fields for mTm relation to upsertGraph

I have the following relation:
interface IWorkflow extends IBaseEntity {
  forms?: Form[]
}

export class Workflow extends BaseEntity implements IWorkflow {
  static get tableName() {
    return 'workflows';
  }

  forms?: Form[];

  static relationMappings: RelationMappings = {
    forms: {
      relation: Model.ManyToManyRelation,
      modelClass: Form,
      join: {
        from: 'workflows.id',
        through: {
          from: 'workflowsForms.workflowId',
          to: 'workflowsForms.formId',
          extra: ['order']
        },
        to: 'forms.id',
      }
    }
  }
}

I'm trying to link form to workflow using updateGraph
  public async addFormToWorkflow(
    workflowId: number,
    formId: number,
    order: number,
  ): Promise<Workflow> {
    try {
      const workflow = await Workflow
        .query()
        .findById(workflowId)
        .eager('forms');
      const form = await Form.query().findById(formId);

      form.order = order; // This line will cause TS error, because order is not part of form model
      workflow.forms.push(form);

      return Workflow.query().upsertGraph(workflow, {
        relate: true
      });
    } catch (e) {
      throw e;
    }
  }

So, the problem is in line  form.order = order;. I've checked it with //@ts-ignore and it works perfectly. I can create a workaround if I define model for many-to-many relation table, and add record there directly, but from my perspective using just upsertGraph is much more elegant. Could you please suggest if there is some way to pass extra fields nicely? Thank you

Just add that field for your model.

I'm not sure that it's correct to add field to the model that's actually is not related to the model itself, but it seems there is no better way to do it. Thank you

You don't need to use upsertGraph here though. This would be much simpler:
  public async addFormToWorkflow(
    workflowId: number,
    formId: number,
    order: number,
  ): Promise<Workflow> {
    try {
      const workflow = await Workflow
        .query()
        .findById(workflowId);

       await workflow.$relatedQuery('forms').relate({
         id: formId,
         order
       })
    } catch (e) {
      throw e;
    }
  }

That's two queries instead of something like 8 with eager and upsertGraph. You can even do that using one single query like this, but this is a bit ugly already:
  public async addFormToWorkflow(
    workflowId: number,
    formId: number,
    order: number,
  ): Promise<Workflow> {
    try {
       await Workflow
        .fromJson({ id: workflowId })
        .$relatedQuery('forms').relate({
           id: formId,
           order
         })
    } catch (e) {
      throw e;
    }
  }

I'm not sure that it's correct to add field to the model that's actually is not related to the model itself, but it seems there is no better way to do it

But if you use an extra, the proerty IS part of that model. It's not part of the model's table, but the model will always be returned with the extra field when you query it through that relation (not other relations though). You anyway need to access the field, so there's no way around adding it to the model.

@koskimas That's awesome, thanks a lot! I will try this out, currently have some TS issues with sending object in the relate, but anyway it's a great optimization. And thank you for explanation regarding table vs model

Just added typing for the object, and it worked perfectly. Thanks again!
const formRelation: Partial<Form> = {
        id: formId,
        order
      };

      return workflow.$relatedQuery('forms').relate<Form>(formRelation);

I'm not sure that it's correct to add field to the model that's actually is not related to the model itself, but it seems there is no better way to do it

But if you use an extra, the property IS part of that model. It's not part of the model's table, but the model will always be returned with the extra field when you query it through that relation (not other relations though). You anyway need to access the field, so there's no way around adding it to the model.

What can we do about the possibility of the model to which the extra is appended already having a column by that name? If both the model table and the join table have a created_at column, for instance, what should we do to disambiguate them?
Is an alias here the only option? Is there a way of doing this with the upsertGraph operation?

I'm also having issued with shared column names like created_at. Did you find a solution for this @GreatSchool2 ?


Forge 1.16.5 Issue

I just did a fresh pull and tried to start a forge server (1.16.5) with the following docker-compose file:
version: "3.7"

services:
  mc:
    image: itzg/minecraft-server
    restart: unless-stopped
    #network_mode: host
    ports:
    # expose the Minecraft server port outside of container
    - 25565:25565
    #- 24454:24454
    environment:
      # REQUIRED for all types
      EULA: "TRUE"
      # Set server type (vs the default of vanilla)
      TYPE: FORGE
      VERSION: 1.16.5

    volumes:
    # use a named, managed volume for data volume
    - ./data:/data
    # attach local host directory "mods" in same directory as this compose file
    # all mods in this directory get copied into /data/mods at startup
    - ./mods:/mods:ro

This downloads forge and everything is expected, but eventually it just crashes: here is the short log:
[init] Running as uid=1000 gid=1000 with /data as 'drwxrwxr-x 6 1000 1000 4096 Jun 10 03:00 /data'
[init] Resolved version given 1.16.5 into 1.16.5
[init] Resolving type given FORGE
[init] **********************************************************************
[init] WARNING: The image tag itzg/minecraft-server:java8 is recommended
[init]          since some mods require Java 8
[init]          Exception traces reporting ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader
[init]          can be fixed with java8
[init] **********************************************************************
[init] Checking Forge version information.
[init] Copying any mods over...
[init] server.properties already created, skipping
[init] Checking for JSON files.
[init] Setting initial memory to 1G and max to 1G
[init] Starting the Minecraft server...
2021-06-10 03:01:50,417 main WARN Advanced terminal features are not available in this environment
[03:01:50] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.forgeVersion, 36.1.0, --fml.mcpVersion, 20210115.111550, --fml.mcVersion, 1.16.5, --fml.forgeGroup, net.minecraftforge]
[03:01:50] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 8.0.9+86+master.3cf110c starting: java version 16.0.1 by AdoptOpenJDK
2021-06-10T03:01:50.558Z	WARN	mc-server-runner	sub-process failed	{"exitCode": 1}
2021-06-10T03:01:50.558Z	INFO	mc-server-runner	Done

Any help you can provide would be appreciated! Thanks!
Note this is on Docker 20.10.2, build 20.10.2-0ubuntu1~20.10.1 running on Pop!_OS 20.10

Try using the Java 8 image itzg/minecraft-server:java8

That did it - I should have paid closer attention.
Thank you for the fast response!


alsa-lib: fix patch

Upstream has added support for another hardware platform so this patch needs a
small adjustment to continue to apply.
Signed-off-by: Trevor Woerner<EMAIL_ADDRESS>

thanks, btw, I also merged the same patch in the krogoth branch which is now available.


Is there an easy way of getting the filename of the downloaded post? (Instaloader python module)

Is there an easy way of getting the filename of the downloaded post with the Instaloader python module?
Like in the output if the post already exists. (pictures.by.tam/2020-03-18 15-01-14<PHONE_NUMBER>066243630_7690536370.jpg exists txt unchanged geo comments json)
Here is my code so far:
import instaloader

USER = ""
PASSWORD = ""

PROFILE = "pictures.by.tam"
DIR = "{target}"
Name = "{date:%Y-%m-%d %H-%M-%S} {mediaid}_{owner_id}"
L = instaloader.Instaloader(dirname_pattern=DIR, filename_pattern=Name)
L.login(USER, PASSWORD)

profile = instaloader.Profile.from_username(L.context, PROFILE)

for post in profile.get_posts():
    L.download_post(post, target=profile.username)
    filename =

To my knowledge it is not currently possible to get the filename of a post, but it is an interesting feature that I would like to see added.

It's easily possible with Instaloader.format_filename():
for post in profile.get_posts():
    L.download_post(post, target=profile.username)
    filename = profile.username + '/' + L.format_filename(post, target=profile.username)

@aandergr Thank you, but if I do this I get this "pictures.by.tam /2020-03-18 15-01-14<PHONE_NUMBER>066243630_7690536370". Is there also a way of getting the correct file extension?

The file extension is jpg if not post.is_video, else mp4.

Well, with sidecars the filename needs to be suffixed as well. There might be a valid use case for having download_* return a list of the paths to the files actually downloaded. I don't think that would interfere with other logic since bool([]) == False.

Ah right, didn't think of that case. Returning a list of the paths to the actually downloaded files is a great idea!


Add start modal

Description

What is the purpose of this pull request?

[X] New feature
[ ] Documentation update
[ ] Bug fix
[ ] Refactor
[ ] Release
[ ] Other

Close POC


Retrieve secrets vars from azure key vault

Proposal:
Author: @yungezz
Date: 2018-08-01

Status: New
Proposal type: (Modules enhancement)
Targeted release: 2.7
Associated PR: https://github.com/ansible/ansible/pull/42290
Estimated time to implement: 1 week

Motivation
Secrets used in Ansible playbooks, such as ssh key, are saved in environment variables or files on specific ansible control machine. This will cause setup/management effort when swtiching to new control machines. When secrets are updated, all copy will need be updated.
Problems

Security concern on secrets stored on control machine.
maintenance effort is big when secrets updating, ansible control machine changing.

Solution proposal

User stores secrets in Cloud(Azure Key Vault). Azure key Vault is a cloud service works as a secure secrets store. This addresses security concern.
Ansible will retrieve secrets stored in Azure Key Vault from anywhere. This makes secrets maintenance easy. Key rolling will be easy since Azure Key Vault secrets is versioned.
User will use secrets in tasks with below syntax:

   vars:
     new_password: !azurekeyvault | <your_vault_name>.vault.azure.net:<secret_name>(/<secret_version>)

   tasks:
   - name: update mysql root password
     mysql_user:
       name: root
       host: "{{ item }}"
       password: "{{ new_password }}
       priv: "*.*:ALL,GRANT"

Dependencies

Authentication to Azure Key Vault, this could be done via normal Azure authentication today via environment variables or ~/.azure/credentials. If auth plugin or cloud credential proposed turned out to be agreed, then authentication could leverage cloud credential.
SDK dependencies. Need consider the process to install azure-keyvault sdk dependencies.

More info
We have a PR here on implementation, and below is an example on how to use it:
 - name: copy
    copy:
      content=!azurekeyvault | !azurekeyvault:https://kvtesttest.vault.azure.net/:ansiblesecret
      dest=~/src/ansible-testapp/kvtest.txt

This sounds like something that should probably be a lookup plugin.

+1 for this

+1 here as well - is this in the works?

+1

this proposal and PR is rejected since it changed ansible core.  while the PR of implementation is still could be used as a reference https://github.com/ansible/ansible/pull/42290. Meanwhile, we added a lookup plugin in our role: https://github.com/Azure/azure_preview_modules/blob/master/lookup_plugins/azure_keyvault_secret.py.


Add support for units (Unitful and DynamicQuantities)

This PR address the feature request in #22.
We strip off the units for columns and display them as labels (unless user has provided labels, in which case they are ignored).
The units are displayed in dark grey and in brackets. If the user wants a different style, they can as always just pass in the labels themselves.
Supports both Unitful and DynamicQuantities, and even mixtures of both packages on different columns.
using Unitful # or DynamicQuantities
df = DataFrame((;a=randn(10000)*u"m",b=randn(10000)*u"m/s"))
pairplot(df)

Maybe adopt [unit] instead of (unit)? This is the notation that most papers
adopt as far as I know.
Em ter., 28 de nov. de 2023 16:19, William Thompson <
@.***> escreveu:

This PR address the feature request in #22
https://github.com/sefffal/PairPlots.jl/issues/22.
We strip off the units for columns and display them as labels (unless user
has provided labels, in which case they are ignored).
The units are displayed in dark grey and in brackets. If the user wants a
different style, they can as always just pass in the labels themselves.
Supports both Unitful and DynamicQuantities, and even mixtures of both
packages on different columns.
using Unitful # or DynamicQuantities
df = DataFrame((;a=randn(10000)*u"m",b=randn(10000)*u"m/s"))pairplot(df)
image.png (view on web)
https://github.com/sefffal/PairPlots.jl/assets/7330605/fc82019f-0a96-43c0-9e64-aeeee3a9f187
You can view, comment on, or merge this pull request online at:
https://github.com/sefffal/PairPlots.jl/pull/30
Commit Summary

db8a276
https://github.com/sefffal/PairPlots.jl/pull/30/commits/db8a2765c7c1ec83d73714c9de87733de71566c2
Drop dependency on Latexify and leave this up to the user
bc9e517
https://github.com/sefffal/PairPlots.jl/pull/30/commits/bc9e517d9363cbfebe224d81173e558dbfa99df1
Merge branch 'master' into units
68e264e
https://github.com/sefffal/PairPlots.jl/pull/30/commits/68e264e1378be89edd556ada01620c8a5348dc2c
Add support for Unitful and DynamicQuantities

File Changes
(4 files https://github.com/sefffal/PairPlots.jl/pull/30/files)

M Project.toml
https://github.com/sefffal/PairPlots.jl/pull/30/files#diff-72ed386c2a0cd1d23c0968297e70023ed98c22490d146dd89fc91f48369bad4d
(6)
A ext/PairPlotsDynamicQuantitiesExt.jl
https://github.com/sefffal/PairPlots.jl/pull/30/files#diff-0ee132b1248e55152318e25ddf32e3934072aa4a5b60c9051e80dc8bd4b86c60
(27)
A ext/PairPlotsDynamicUnitfulExt.jl
https://github.com/sefffal/PairPlots.jl/pull/30/files#diff-aa716dbbc3cf930410e74ab72123e61c0299e1d8a33b67f714287a7b82984568
(29)
M src/PairPlots.jl
https://github.com/sefffal/PairPlots.jl/pull/30/files#diff-d733c29b39328ccba9e0b4c52745f7388ed6e1eebae11b6978136b4afd91c435
(92)

Patch Links:

https://github.com/sefffal/PairPlots.jl/pull/30.patch
https://github.com/sefffal/PairPlots.jl/pull/30.diff

—
Reply to this email directly, view it on GitHub
https://github.com/sefffal/PairPlots.jl/pull/30, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZQW3NO6RCU34ZHQJ67RGTYGY2LVAVCNFSM6AAAAAA76ISONCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGAYTKMJTHA3TEMA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Appreciate the suggestion. Indeed, this NIST style guide recommends square brackets, so sure we can go with these.
https://www.nist.gov/pml/special-publication-811/nist-guide-si-chapter-7-rules-and-style-conventions-expressing-values
I do worry that this is field-dependent though (I often see round brackets).
There will no doubt be issues requesting other styles in future (eg. for angular units to have a space, etc.) but I think my position will be not to allow any customization here. We already have a dead-simple way to specify the labels that is infinitely customizable.

Codecov Report
Attention: 32 lines in your changes are missing coverage. Please review.

Comparison is base (8794d65) 69.85% compared to head (7dbfe52) 65.53%.

Files
Patch %
Lines

ext/PairPlotsDynamicQuantitiesExt.jl
0.00%
13 Missing :warning:

ext/PairPlotsDynamicUnitfulExt.jl
0.00%
13 Missing :warning:

src/PairPlots.jl
84.61%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #30      +/-   ##
==========================================
- Coverage   69.85%   65.53%   -4.32%
==========================================
  Files           3        5       +2
  Lines         345      383      +38
==========================================
+ Hits          241      251      +10
- Misses        104      132      +28

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[Basel] Data

http://www.parkleitsystem-basel.ch/stadtplan.php

@jklmnn @kiliankoe I'm right now adding the Basel data. In order not to break the current system I will add a "total", plus a "total_mo", "total_tue", ... "total_sun" number to the geojson file. "Total will contain the Mo-Fr number (100) instead of the weekend number (750). Can you work with that? Thanks!

I think that might be the best option for now. We'll have to accommodate somehow, although I'm unsure how at this point.
I don't know how many lots (of those we would hopefully be adding and supporting in the future) share similar behavior, but it would probably make sense to think about generalizing this somehow. I feel it's very unlikely that total counts will only vary based on the weekday, there might be seasonal changes or something completely different as well.

I would handle the total amount as dynamic data equally to the free amount. This gives us the freedom to have any total amount at any given time without needing to implement complex rules for how the total amount can change.

https://parkendd.de/map.html#Basel
Basel is online!
@jb3-2 do you have any Twitter handle you want to be mentioned? I would announce the availability of Basel on Twitter.

One thing left, I was a little too fast when reviewing the PR:
The weekday handling in geodata.py:111 should probably go to Basel.py since it is specific for this city and could possibly interfere with other cities (if someone else is going to use those JSON keys).

Big thanks for merging! I'm very excited to see our data on the map.
Yes, you are correct about where to handle weekday special totals. I will look at how we could refactor this with my colleague @nim-stata.

Sharing on twitter would be great, thanks! Could you mention me (@jonasbieri) and my colleague @JonEck82 accompanied with our hastag #opendataBS?

Done: https://twitter.com/parken_dd/status/1093563057303965696?s=19

Since Basel is integrated I'd close this issue now. If there are any problems just reopen it.

@jb3-2 Basels RSS feed doesn't seem to be an RSS feed anymore. Is the original feed somewhere available? Otherwise we have to build a new scraper.

Thanks for letting me know - the RSS feed should be up again soon, it was somehow lost when setting up the new website https://www.parkleitsystem-basel.ch/.

The RSS Feed URL is now live here: https://www.parkleitsystem-basel.ch/alte_site/rss_feed.php
Can you please change that? Thanks so much!

If the domain is the same, would it not make sense to host it one directory higher and therefore under the same URL (which in the filename says it should be an RSS feed anyways ;)) at http://www.parkleitsystem-basel.ch/rss_feed.php

It seems http://www.parkleitsystem-basel.ch/rss_feed.php already redirects to https://www.parkleitsystem-basel.ch/alte_site/rss_feed.php. Is this a permanent solution @jb3-2 (at least it's a permanent redirect)?

Ah good, they have now set up a redirect. It should be stable until further
notice. I hope to get a heads up if they change anything next time...
Am Mo., 4. Nov. 2019 um 18:08 Uhr schrieb JK<EMAIL_ADDRESS>
It seems http://www.parkleitsystem-basel.ch/rss_feed.php already
redirects to https://www.parkleitsystem-basel.ch/alte_site/rss_feed.php.
Is this a permanent solution @jb3-2 https://github.com/jb3-2 (at least
it's a permanent redirect)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/offenesdresden/ParkAPI/issues/35?email_source=notifications&email_token=ABXMW5CRGYZOZFVS4SFGLCLQSBJJHA5CNFSM4BJDF4XKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC77Y4Y#issuecomment-549452915,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXMW5D64WI2IFFZ5JPQKTDQSBJJHANCNFSM4BJDF4XA
.

Thanks for the info. I'd consider this fixed now. If there arise any problems or changes, please reopen the issue.


Missing Charles III Coronation in the UK

Missing an extra bank holiday in the UK I believe; 8th May 2023.
https://www.gov.uk/bank-holidays

Closing (Duplicate of https://github.com/azuyalabs/yasumi/pull/305)


bug: valid syntax with labels results in a tree-error

Did you check existing issues?

[X] I have read all the tree-sitter docs if it relates to using the parser
[X] I have searched the existing issues of tree-sitter-vhdl

Tree-Sitter CLI Version, if relevant (output of tree-sitter --version)
No response
Describe the bug
Somewhat related to discussion#19.
I've found that many blocks create an error in the tree if they are not named even though it's valid syntax.
Specifically putting a generate block inside the architecture breaks the entire architecture tree.
The example in the discussion above is valid standalone but not when used within an architecture.
Steps To Reproduce/Bad Parse Tree
Using the following VHDL:
  test_gen : if (TEST = '0') generate
  begin
  end generate test_gen;

I get the following tree:
(label_declaration
  (label)
  ":")
(if_generate
  "if"
  (simple_expression
    (parenthesis_expression
      "("
      (element_association_list
        (element_association
          (conditional_expression
            (relational_expression
              (simple_expression
                (name
                  (identifier)))
              (relational_operator
                "=")
              (simple_expression
                (name
                  (library_constant_std_logic)))))))
      ")"))
  (generate_body
    (generate_head
      "generate")
    (generate_block
      "begin")
    (generate_block_end
      "end"
      (ERROR
        "generate")
      (label)
      ";")))

I get the ERROR even though this is valid. But even worse, if I have this example vhdl:
library ieee;
use ieee.std_logic_1164.all;

entity tester is
  generic (
    TEST    : std_logic := '0'
  );
  port (
    test_port    : out std_logic;
  );
end tester;

architecture Behavioral of tester is
begin
  test_gen : if (TEST = '0') generate
  begin
  end generate;
end Behavioral;

The entire architecture_definition is broken
(design_file
  (design_unit
    (library_clause
      (logical_name_list
        library: (library_namespace)))
    (use_clause
      (selected_name
        library: (library_namespace)
        (identifier)
        (ALL)))
    (entity_declaration
      entity: (identifier)
      (entity_head
        (generic_clause
          (interface_list
            (interface_declaration
              (identifier_list
                (identifier))
              (simple_mode_indication
                (subtype_indication
                  type: (name
                    (library_type)))
                (initialiser
                  (variable_assignment)
                  (conditional_expression
                    (simple_expression
                      (name
                        (library_constant_std_logic)))))))))
        (port_clause
          (interface_list
            (interface_declaration
              (identifier_list
                (identifier))
              (simple_mode_indication
                (mode)
                (subtype_indication
                  type: (name
                    (library_type))))))))
      (end_entity
        entity: (identifier))))
  (ERROR
    (identifier)
    (name
      (identifier))
    (architecture_head)
    (label_declaration
      (label))
    (if_generate
      (simple_expression
        (parenthesis_expression
          (element_association_list
            (element_association
              (conditional_expression
                (relational_expression
                  (simple_expression
                    (name
                      (identifier)))
                  (relational_operator)
                  (simple_expression
                    (name
                      (library_constant_std_logic)))))))))
      (generate_body
        (generate_head)
        (generate_block)
        (generate_block_end
          (ERROR))))
    (identifier)))

Expected Behavior/Parse Tree
The above example should not break the architecture tree since it's valid syntax.
It should result in:
(design_file
  (design_unit
    (library_clause
      (logical_name_list
        library: (library_namespace)))
    (use_clause
      (selected_name
        library: (library_namespace)
        (identifier)
        (ALL)))
    (entity_declaration
      entity: (identifier)
      (entity_head
        (generic_clause
          (interface_list
            (interface_declaration
              (identifier_list
                (identifier))
              (simple_mode_indication
                (subtype_indication
                  type: (name
                    (library_type)))
                (initialiser
                  (variable_assignment)
                  (conditional_expression
                    (simple_expression
                      (name
                        (library_constant_std_logic)))))))))
        (port_clause
          (interface_list
            (interface_declaration
              (identifier_list
                (identifier))
              (simple_mode_indication
                (mode)
                (subtype_indication
                  type: (name
                    (library_type))))))))
      (end_entity
        entity: (identifier))))
  (design_unit
    (architecture_definition
      architecture: (identifier)
      entity: (name
        (identifier))
      (architecture_head)
      (concurrent_block
        (label_declaration
          (label)
          (if_generate
            (simple_expression
              (parenthesis_expression
                (element_association_list
                  (element_association
                    (conditional_expression
                      (relational_expression
                        (simple_expression
                          (name
                            (identifier)))
                        (relational_operator)
                        (simple_expression
                          (name
                            (library_constant_std_logic)))))))))
            (generate_body
              (generate_head)
              (generate_block)
              (generate_block_end))))
          (end_label))))
      (end_architecture))

Repro
No response

After some testing it seems to be that generate blocks don't end properly, which is what's causing the error in the tree.

I'll re-check the standard to make sure, but I believe that the "begin" makes the syntax invalid...

Section 11.8 in the 2019 standard...
The "begin" is only valid if there is an additional "end" for it.   The "end generate" does not close that "begin", it closes the "generate".
This is not explicitly clarified in the text, but it is pretty obvious from the examples.

Can you perhaps clarify on the named blocks...  Many blocks have to be named, according to the formal grammar.
I can make those names optional simply to make the syntax highlight correctly even before the name gets added, but I'm not sure I should...?

Section 11.8 in the 2019 standard...
The "begin" is only valid if there is an additional "end" for it. The "end generate" does not close that "begin", it closes the "generate".
This is not explicitly clarified in the text, but it is pretty obvious from the examples.

The point of the begin is to separate out a section before the begin where you can define variables/signals that are only used locally to that generate:

If you don't have any signals, then the begin is redundant but it's never been a problem for me in 2008, and in all my 2008 code it synthesizes fine.
While not explicitly defined in 11.8, in section 14.5.3 where elaborations are described, it shows clear examples of the "begin" being used in generate statements:

Many cores on github also use this syntax:
https://github.com/search?q="generate+begin"+language%3AVHDL&type=code

Can you perhaps clarify on the named blocks... Many blocks have to be named, according to the formal grammar.
I can make those names optional simply to make the syntax highlight correctly even before the name gets added, but I'm not sure I should...?

All blocks need to be named, but the name at the end is optional
"end generate" vs "end generate name" (the latter is better practice, but it is optional)

While not explicitly defined in 11.8, in section 14.5.3 where elaborations are described...

Excellent find -- I missed that one!  It's the same section number in 2019.
I'll fix it.  I think it'll cause ambiguity issues, but it's not as if I haven't dealt with 100's of other cases already...  I'll keep you posted.

In section 11.8 it's defined as:
generate_statement ::=
    for_generate_statement
    | if_generate_statement
    | case_generate_statement

for_generate_statement ::=
    generate_label :
        for generate_parameter_specification generate
        generate_statement_body
        end generate [ generate_label ] ;

if_generate_statement ::=
    generate_label :
        if [ alternative_label : ] condition generate
        generate_statement_body
        { elsif [ alternative_label : ] condition generate
        generate_statement_body }
        [ else [ alternative_label : ] generate
        generate_statement_body ]
        end generate [ generate_label ] ;

case_generate_statement ::=
    generate_label :
        case expression generate
        case_generate_alternative
        { case_generate_alternative }
        end generate [ generate_label ] ;

case_generate_alternative ::=
    when [ alternative_label : ] choices =>
        generate_statement_body

generate_statement_body ::=
    [ block_declarative_part
        begin ]
        { concurrent_statement }
        [ end [ alternative_label ] ; ]

label ::= identifier

So every time there is a generate_statement_body there could optionally be a begin with some stuff coming before it (may I suggest generate_statement_head ?)

VHDL is a rough language. You're a hero for tackling this.

... but the name at the end is optional

Indeed -- that is a bug.  I'll fix it at the same time.

It's pretending to work (commit above)...  Please test thoroughly...

VHDL is a rough language.

I like the puzzle 😄
I'm going to close this and open a PR for the commit above...


Add dither cmd sets and fix nsm cmd_set, etc

Description
This adds dith_on and dith_off command sets. It also updates the nsm command set to include scs107 and dith_off.
Testing

[x] Passes unit tests on MacOS (new tests)
[n/a] Functional testing

Fixes #50

Yes.  Though not sure if it is worth cutting the ska2-compatible bits.

The Ska2 compatibility is not compromising the Ska3 testing, so it can stay.


SideNoder constantly saying drive mount status disconnected even though all my drives are mounted and whenever i click it it keeps staying red after refreshing. I am running MacOS.

@whitewhidow please help ive been trying to fix so many things since the past 4 hours this is the last one i was encountering i think

and yes i reinstalled the app, rebooted, restarted

sounds like an osxfuse issue
you can try manually configuring and mounting an rclone drive, and seeing what the error is.
Other than that, cant help, this is not an issue with sidenoder, but with your mac


Telegram X Android Competition: Round 1. PR: #154

Closing as no longer required & reactions have been merged in the main repository.


Start Process Instance Modal does not have correct label

Describe the Bug
When opening the start instance modal via the option "Start process instance with new configuration", the label of the second modal step is wrong

This is only reproducible when executing the procedure via the "Start process instance with new configuration" toolbar option.
Steps to Reproduce

open a diagram
execute  "Start process instance with new configuration" in toolbar under the run instance action
Go through the first deployment step
Note the wrong label of the second modal step

Expected Behavior
This modal should be displayed:

Environment

OS: macOS 10.15
Camunda Modeler Version: 4.0.0-alpha.1

I would like to work on this if approved as part of #hacktoberfest

Feel free to open a Pull Request.

@pinussilvestrus Can I work on this issue?


init_kaldi_input_stream(is: istream) -> (success: bool, binary: bool): does not return tuple

Hi,
In the process of pythonizing compile-graph.cc I came across the following.
If I understand the documentation correctly, this function should return a tuple of booleans.  However, I only see a single boolean in the result.  So now I don't know whether that is the "success" or the "binary".  I looked at the sources, but that is CLIF and all magic to me.

I think what is returned is binary, so I have a little function to make kaldi.io a little easier to work with:
from kaldi.base import io

def construct(cls, fname):
    istr = io.ifstream().from_file(fname)
    binary = io.init_kaldi_input_stream(istr)
    ret = cls()
    ret.read(istr, binary)
    return ret

so that you can call
ctx_dep = construct(ContextDependency, "exp/chain/tdnn7m23t_sp/tree")
model = construct(TransitionModel, "exp/chain/tdnn7m23t_sp/final.mdl")

Then this issue is really only about the documentation.  It might be that this source file needs to be patched.

Thanks for pointing out the error in the documentation (I am sure its not the only error :P).
In an unrelated question, did you tried using xopen instead of calling init_kaldi_input_stream directly? xopen is the high level pythonic interface. The other one is low level. See for example this line.


Infinite scrolling not working

I'm not 100% confident that this is the case? I upgraded recently, and just noticed it stopped working. There are no errors in my JS console.
I'll test an older version and confirm this when I can.
Specs: Meteor 1.0 &<EMAIL_ADDRESS>

Filtering is an obvious workaround if you know what you're looking for, but right now you can't use Houston to generally browse and edit your data.
@AlexeyMK Do you have any idea where the issue might be? I might take a look depending on how big of a task it seems to be.

I spoke with @shanereustle earlier about the issues - essentially, there's
about a day/half-day's work in terms of getting a fix implemented. I don't
have the bandwidth in the near term, but pull requests are very welcome and
I would be happy to answer any questoins.
On Tue, Apr 7, 2015 at 4:14 AM, Paul Dowman<EMAIL_ADDRESS>wrote:

Filtering is an obvious workaround if you know what you're looking for,
but right now you can't use Houston to generally browse and edit your data.
@AlexeyMK https://github.com/AlexeyMK Do you have any idea where the
issue might be? I might take a look depending on how big of a task it seems
to be.
—
Reply to this email directly or view it on GitHub
https://github.com/gterrono/houston/issues/253#issuecomment-90227162.

I am having the same issue. Has anoyone got a workaround to this? Or is this not useable at the moment?

Fixed by #339. Sorry it took so long. The update is on atmosphere now.


Improve URL presentation in start/restart/describe, fixes #1711, fixes #1685

The Problem/Issue/Bug:
#1711 requested easy access to the http URLs
#1685 requested URLs that could be clickable without possible dangling commas
How this PR Solves The Problem:

ddev start and ddev restart now output space-separated list of URLs on start
ddev describe provides a table of all URLS, including both http and https, even if mkcert is in action.
Improved verbiage around mysql access in ddev describe

ddev start d8git
Starting d8git...
...
Successfully started d8git
Project can be reached at https://a.ddev.site https://d8git.ddev.site https://<IP_ADDRESS>:32773

ddev describe d8git

NAME   TYPE     LOCATION           URL                      STATUS
d8git  drupal8  ~/workspace/d8git  https://d8git.ddev.site  running

Project Information
-------------------
PHP version:   	7.2
MariaDB version	10.2

URLs
----
http://a.ddev.site
http://d8git.ddev.site
http://<IP_ADDRESS>:32774
https://a.ddev.site
https://d8git.ddev.site
https://<IP_ADDRESS>:32773

MySQL/MariaDB Credentials
-------------------------
Username: "db", Password: "db", Default database: "db"

or use root credentials when needed: Username: "root", Password: "root"

Database hostname and port INSIDE container: db:3306
To connect to db server inside container or in project settings files:
mysql --host=db --user=db --password=db --database=db
Database hostname and port from HOST: <IP_ADDRESS>:32770
To connect to mysql from your host machine,
mysql --host=<IP_ADDRESS> --port=32770 --user=db --password=db --database=db

Manual Testing Instructions:

ddev start, make sure output URLs are not encumbered by punctation
ddev describe, make sure all URLs are available and not encumbered by punctuation.

Automated Testing Overview:
Related Issue Link(s):
Release/Deployment notes:

Shouldn't have been closed, typo


Snap Sync Stuck on a Fork

Description
Running a snap sync with bonsai mode on MainNet, the snap sync process completed apparently correctly but then full sync was unable to progress because the common ancestor with peers doesn't have a world state available:
2022-04-20 21:58:53.440+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | FastImportBlocksStep | Completed importing chain segment 10436201 to 10436800 (600 blocks in 11706ms), Peers: 29
2022-04-20 21:58:55.133+00:00 | Timer-0 | INFO  | DNSTimerTask | Refreshing DNS records with<EMAIL_ADDRESS>2022-04-20 21:59:04.953+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | FastImportBlocksStep | Completed importing chain segment 10436801 to 10437800 (1000 blocks in 11510ms), Peers: 29
2022-04-20 21:59:15.857+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | FastImportBlocksStep | Completed importing chain segment 10437801 to 10438800 (1000 blocks in 10901ms), Peers: 29
2022-04-20 21:59:26.179+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | FastImportBlocksStep | Completed importing chain segment 10438801 to 10439800 (1000 blocks in 10319ms), Peers: 29
2022-04-20 21:59:27.539+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | PipelineChainDownloader | PipelineChain download complete
2022-04-20 21:59:27.558+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | DefaultSynchronizer | Fast sync completed successfully with pivot block 14621912
2022-04-20 21:59:27.560+00:00 | EthScheduler-Services-34 (importBlock) | INFO  | FullSyncDownloader | Starting full sync.
2022-04-20 21:59:27.807+00:00 | nioEventLoopGroup-3-6 | INFO  | SyncTargetManager | Found common ancestor with peer Peer 0x92d51b291ae8a1a274... at block 10440000
2022-04-20 21:59:27.859+00:00 | nioEventLoopGroup-3-6 | WARN  | FullSyncTargetManager | Disconnecting Peer 0x92d51b291ae8a1a274... because world state is not available at common ancestor at block 10440000 (0x4982ae2524be172c048b3a143c66cbbbf5765ac7a1813c2f50c40c8a860ce22d)
2022-04-20 21:59:32.877+00:00 | nioEventLoopGroup-3-3 | INFO  | SyncTargetManager | Found common ancestor with peer Peer 0x20e99d394a3b1a0627... at block 10440000
2022-04-20 21:59:32.877+00:00 | nioEventLoopGroup-3-3 | WARN  | FullSyncTargetManager | Disconnecting Peer 0x20e99d394a3b1a0627... because world state is not available at common ancestor at block 10440000 (0x4982ae2524be172c048b3a143c66cbbbf5765ac7a1813c2f50c40c8a860ce22d)

It has then been repeating messages like the one below for many hours.
2022-04-20 21:59:27.859+00:00 | nioEventLoopGroup-3-6 | WARN  | FullSyncTargetManager | Disconnecting Peer 0x92d51b291ae8a1a274... because world state is not available at common ancestor at block 10440000 (0x4982ae2524be172c048b3a143c66cbbbf5765ac7a1813c2f50c40c8a860ce22d)

Worth noting that merge support was enabled, but no TTD is set and --network mainnet is used.

Are you sure it's the snapsync. looking at the log it seems to me that it is the fastsync

Thanks. Could you tell me the version used in this test ?

I think the fact that there is no TTD. Can explain the problem. @fab-10 You have tested the merge part. Do you have an idea ?But it is clear we see that the common ancestor is old compared to the pivot block. So it makes sense not to have the worldstate of this ancestor

This is version:
besu/v22.4.0-RC2-dev-24e417d4/linux-x86_64/corretto-java-17
It seems odd to me that just having --Xmerge-support=true set but using the stock standard mainnet genesis file is enough to break sync.  It very definitely has --sync-mode=X_SNAP --data-storage-format=BONSAI so should be using snap sync from my understanding and is initially printing:
2022-04-21 07:55:43.603+00:00 | EthScheduler-Services-3 (batchPersistAccountData) | INFO  | SnapWorldDownloadState | Retrieved 204734 world state nodes

which strongly suggests snap sync is in use.
It's proving quite repeatable though, a second run wound up stuck with:
2022-04-22 03:17:23.708+00:00 | nioEventLoopGroup-3-4 | INFO  | SyncTargetManager | Found common ancestor with peer Peer 0x33346f7f5a75f0354f... at block 5080000
2022-04-22 03:17:23.708+00:00 | nioEventLoopGroup-3-4 | WARN  | FullSyncTargetManager | Disconnecting Peer 0x33346f7f5a75f0354f... because world state is not available at common ancestor at block 5080000 (0x673c868d88a1781d5615872f03b386f287a2494af1eee16d12048aabc30cb11c)

This is on the dev-teku-besu-ohio-mainnet-shadow-2 if you want to ssh in and look at what it's doing.

According to the configuration this does not seem to be related to the merge, I can take a look at the instance to see what is happening

the problem is we stopped downloading new blocks after 10440000 while the pivot block is at 14621912. So we are checking for a bad state root hash. we have to know why we stopped so soon

@matkt - could you take a look at this again?

Resolved we can close

@matkt in which version is resolved? thank you

normally you no longer have the problem in the last RC2 or in the main


Provide same PASSWORD/USERNAME keyword to all configuration option

Feature Description
Hello
We have an inconsistency about password keyword, it's use PASSWORD or PASSWD without real logic
We can found some trouble about this for example at :

https://github.com/go-gitea/gitea/issues/28335

Could be nice to use full keyword PASSWORD in all case, and accept as workaround PASSWD during transitional version.
Thanks
Screenshots
No response

To complete with have same trouble between USER and USERNAME keyword


Spain Vioscreen Bypass

For THDMI Spain, we made the decision to hide the Vioscreen option to minimize confusion, as it won't work in Spain. This behavior is working correctly on the Source page, as the Vioscreen FFQ button is not displayed for Spanish users. However, during testing, we missed the post-sample page that encourages the user to take the Vioscreen FFQ.
This change mirrors the logic of determining a Spanish user (either their account country or locale matching Spain) and, if it does, bypasses the redirect to the page suggesting they take the Vioscreen FFQ.

@wasade Can you please give this a look when you have a minute? I'd like to either rapid deploy or implement this as a hotfix when we bring the server down to update the postgres module.

+1, good on merge and proposed deploy


Api / create hosts

Hi,
Could you tell me which API pip module you use please ?
Thx

Hi @steevivo
Currently using zabbix-api==0.5.3 Not sure if there is a newer one though, but if so please let me know and I'll use that one.

Hi @dj-wasabi ,
Yes in my pip list I have 0.5.4

Ok, will update it to 0.5.4! Thanks! 👍


Update build property by targetname

Only possible with the help of @erisu

This PR adds a new parameter to make it possible to only update a specific target.
This is needed for https://github.com/apache/cordova-ios/issues/538.
Related:
#79 Another PR for xcode

I finally managed to write tests for this this. If it fits in we could get this and #79 in for the next ios release.
Let me know if the tests make sense.

@NiklasMerz, I see this was added to the 3.0 release. Is this change by itself breaking? Or are the breaking changes in 3.0 related to other parts of the release? Thanks!

This change alone shouldn't be breaking. We've considered #94 and #79 as breaking changes semver wise.


add JOBOWNERS entry for new CWS e2e tests

What does this PR do?
Those jobs were missing ownership, so we were not receiving the slack message when those fails (they do not no worries).

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


fix contentinset bug

hey @dylanNew!
please leave some description what exactly your PR fixes
these changes looks important and could impact existing users

@rnkyr I think that's because the following lines check offset against 0, but we could be setting the offset to start with an inset, so the result won't be right.
A side issue is that the .initial state is never called, and when I pull half way then release there's no call back - how do you deal with cancelled state?


Is this UTF8-friendly?

Was wondering if this will work with UTF8 (and other Unicode encoding)

It depends on what you are going to achieve. The two likely most common tasks about Unicode are making a given sequence to be string-safe by removing the quote characters and the other one is encoding binary data as a Unicode string. To be efficient, the latter requires an encoding specifically aimed to deal with Unicode, I believe, which is not the case with the escapeless encodings. And for the first case, some generalization of the algorithm would be needed to make sure the quote characters are not mapped to a byte that would result in invalid UTF-8 sequences.

@kosarev So escapeless is not a Python/JS affair then? (If it is so Unicode-unsafe)?
See https://github.com/rinick/base2e15 https://github.com/grandchild/base32k https://github.com/qntm/base32768

Yes, comparing to these Unicode-specific encodings mentioned, escapeless is a different animal. It is most efficient when you need to strip certain characters/bytes from a stream by the cost of a low fixed-size overhead.

@kosarev so is it possible to create a compatibility format than can be converted from Unicode-safe to Escapeless? without the need for a python-like bytes format?

If I take the idea right, sure, there should be no problem to use escapeless in the middle of a chain of Unicode-specific encodings. As to representation of binary data, I guess you mean JS, in which case an array of bytes sounds like a good replacement for the Python's byte strings, with likely no changes in the algorithms themselves.

@kosarev so basically data => escapeless => Unicode or JSON compatible string => escapeless => data

Yes, given by Unicode or JSON compatible string you mean a Unicode-safe binary-to-text and text-to-binary encodings, and not just emitting raw binary data to strings.

@kosarev I mean the JSON spec does allow certain "special characters" to slip through, right?
{"string": "<as many types of characters as possible>"}
The angle bracket only disallow whitespace characters I think. What else can you think of?

Well, escapeless wouldn't allow you to exclude those special characters, if that's what you mean, because it has to be in the middle of the encoding chain, that is, it processes purely binary data and so has to be surrounded with Unicode-specific encodings on both the ends of the chain. By removing certain characters from that binary data in the middle we can't generally affect which characters will appear in the encoded JSON string as it depends on that Unicode-specific encoding used.

@kosarev but escapeless can have down to 225 characters, so surely some of the forbidden code space can be stripped off right?

It can strip off even more characters, it just won't be efficient comparing to other approaches. Answering your question, the thing is that removing certain characters in binary data doesn't mean these or some other characters will disappear from their Unicode-encoded version, because most likely there will be no 1-to-1 correspondence.


How to set Organisation default Rule with PowerShell?

Can only set User policies with powershell, and can't set Organisation default policy

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

ID: 923dc552-f943-e043-165d-9ed5fb734c6c
Version Independent ID: fe62e834-2cb1-0a15-0d93-14194ca0e33a
Content: Set-SafeLinksPolicy (exchange)
Content Source: exchange/exchange-ps/exchange/advanced-threat-protection/Set-SafeLinksPolicy.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@officedocsbot assign @yogkumgit

Hi @aavdberg, thank you for your feedback.
I think this is what you are looking for:
https://docs.microsoft.com/powershell/module/exchange/advanced-threat-protection/set-atppolicyforo365

@dariomws  Thank you very much for the contribution and sharing this explanation. @aavdberg
Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


nixos-container: re-enable nixpkgs option

This PR is superseded by #106767.
Since the introduction (https://github.com/NixOS/nixpkgs/pull/85570) of option containers.<name>.pkgs, the option nixpkgs (including nixpkgs.pkgs, nixpkgs.config, ...) was always ignored in container configs.
This option is now honored again if pkgs == null.
The default behavior (including its performance benefits by re-using pkgs) is unchanged.
Edit: The fixup commit reverts to the default behavior of 20.03/20.09 to fix existing container configs broken by https://github.com/NixOS/nixpkgs/pull/85570.
Also, remove the redundant definition of baseModules, which is identical to the one in eval-config.nix.
Reproduce
The following config was broken before and is fixed by this PR:
nix-build --no-out-link - <<'EOF'
let
  configuration = {
    containers.mycontainer = {
      pkgs = null;
      config = { pkgs, ... }: {
        nixpkgs.overlays = [ (self: super: {
          myval = "hello";
        }) ];
        networking.hostName = pkgs.myval;
      };
    };
  };
in
(import <nixpkgs/nixos> { inherit configuration; }).vm
EOF

# error: attribute 'myval' missing, at (string):9:31

Fixes #88621.
cc @adisbladis

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/20-09-unable-to-use-overlay-in-containers/10442/2

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/20-09-unable-to-use-overlay-in-containers/10442/3

I'm not too familiar with containers: I don't understand the original change in #85570, if you could already use containers.<name>.config.nixpkgs.pkgs, what's the point of having containers.<name>.pkgs?

@rnhmjoj, thanks for looking into this.
I've created an improved and simpler version of this PR that should exactly address your question.
This PR is now superseded by #106767.


Unable to install on proxmox

This is an awesome tool but having issues with a VM creation on proxmox
Followed this and it gets to the part of installing windows 11 - may restart several times.
Then finishes that part, shuts down and then does nothing.
Try to restart the VM and go in circles. I have selected the choose disk interactively and auto options, tried various options on your iso but still no luck unfortunately.
Any ideas?
https://schneegans.de/windows/unattend-generator/usage/
I also follow this
https://molware.org/blog/installing_windows_11_on_proxmox/
I have other windows VM's running fine on proxmox so quite familiar with it. even the tiny and hacked lite versions.
Maybe the boot order on the vm options?
Thanks

I have no Proxmox environment available right now, but I have setup up VMs in Promox through the autounattend.xml process successfully in the past.
For testing purposes, I would omit the virtio-win-*.iso image. Windows does not strictly need it, but you probably have to configure a basic SATA hard disk in your VM.

Almost daily for the past few weeks, I've successfully used the generated (not)autounattend.xml to install Windows 11 Pro and Pro N on Proxmox VMs.  I just use a USB to provide the xml file.  I have not tried the xml in ISO technique.


pythonhosted.org mentions abandoned domain

Hi,
https://pythonhosted.org/ mentions https://www.pypi-mirrors.org/, which is abandoned and squatted by some advertisement.
Expected behavior
No reference to an abandoned website or no landing page and redirection to another PyPA website.
To Reproduce

Go to https://pythonhosted.org/ or https://files.pythonhosted.org/
Follow the url supposed to list PyPI mirrors

My Platform
Firefox 70, Kubuntu 19.10

Thank you for flagging this! It has been updated.


Multiline block comments formatted incorrectly

Tell us about your environment

Nitpik JavaScript Version: 0.3.2
Node Version: 12.10.0
npm Version:

Please show your full configuration:

Configuration

What did you do? Please include the actual source code causing the issue.
Had a multiline block comment that was not indented.

/**
 *
 * @param {string} configFilePath The full path to the config file.
 * @returns {NitpikConfigArray} The unnormalized configuration information from
 *  the config file.
 */

What did you expect to happen?
The block comment would not change formatting.
What actually happened? Please include the actual formatted code or console error.
/**
	 *
	 * @param {string} configFilePath The full path to the config file.
	 * @returns {NitpikConfigArray} The unnormalized configuration information from
	 *  the config file.
	 */

Are you willing to submit a pull request to fix this bug?
Yes

I could reproduce in an isolated test using the issue details. More investigation needed.

The problem happens when the block comment follows an object literal with an indented property, like this:
const x = {
   y: 'z'
}

/*
 * Hello
 */


[CT-2849] [Bug] Giving key error snowflake

Is this a new bug in dbt-core?

[X] I believe this is a new bug in dbt-core
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
Throws key error snowflake in adapters, its not registering adapters as it do in previous versions
Expected Behavior
it should run smoothly
Steps To Reproduce
macOS with dbt 1.5
from dbt.config import RuntimeConfig
after importing RuntimeConfig i used this in one of my own package
==>running this (RuntimeConfig.from_args(args)<==) from my own package built on the top of dbt
Relevant log output
No response
Environment
- OS:mac os ventura 13.2.1
- Python:3.8.17
- dbt: 1.5.2

Which database adapter are you using with dbt?
snowflake
Additional Context

In previous version of dbt first register adapters in task/basy.py file but in dbt 1.5 they dont i beleive this might be the reason, as i did test it locally and it runs fine in dbt 1.5 as well if i register adapters in tasks/base.py first

Thanks for reaching out @abdulrafey38!
The code you mentioned is a private implementation detail (changed in https://github.com/dbt-labs/dbt-core/pull/6565) that we don't intend to be a public interface.
Have you given our programmatic invocations entry points a try yet?
The intent is to expose the existing dbt CLI via a Python entry point, such that top-level commands are callable from within a Python script or application.

@dbeatty10 thank you issue resolved 🥳


clean up tags for analytics closes #76

@skcain I mostly want your thoughts on if there's any interaction we want to track that's not already tracked.


Set that local IP as the base_url in ./config/config.json.

You can get this IP yourself :wink:

Can you create a PR @gngeorgiev ?


Incorrect MTL-reprocessing of four tiles

During the September-November 2021 CTE issues we MTL-reprocessed multiple tiles for which we decided the redshifts needed to be corrected. This was almost entirely successful, but a corner case is situations where we lost an entire petal (in the zmtl files) after reprocessing by the spectroscopic pipeline.
This corner case led to problems on four tiles corresponding to, e.g., these files:
'/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/6369/20211122/zmtl-4-6369-thru20210930.fits'
'/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/7402/20211123/zmtl-4-7402-thru20211002.fits'
'/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/23960/20211122/zmtl-4-23960-thru20210921.fits'
'/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/26173/20211122/zmtl-4-26173-thru20210921.fits'

The problem, here, is that these petals don't exist at all in the re-archiving (the files are missing) but they did exist in the original archiving:
/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/6369/20211001/zmtl-4-6369-thru20210930.fits
/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/7402/20211004/zmtl-4-7402-thru20211002.fits
/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/23960/20210924/zmtl-4-23960-thru20210921.fits
/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/26173/20210927/zmtl-4-26173-thru20210921.fits

In fact, we identified these four cases purely because the files exist in the original archiving but are missing in the re-archiving.
As an example of why this is likely wrong, here's what happens to a target on tile 6369 after re-archiving and MTL-reprocessing:
more /global/cfs/cdirs/desi/survey/ops/surveyops/trunk/mtl/main/dark/mtl-dark-hp-4441.ecsv | grep<PHONE_NUMBER>4594408 | awk '{print $18, $19, $20, $21, $22, $23, $24}'
-1.0 -1 -1 -1.0 -1 -1.0 QSO|UNOBS
0.2725044744258378 0 6369 2.001432429104902 1 82.13470605574548 QSO|MORE_MIDZQSO

So, here we have an unobserved QSO with a state that is updated by a good observation on tile 6369. But, the QSO stays in that "original" state because no new information is included for the target when petal 4 of tile 6369 is re-archived.
This contrasts, for example, with a target for which we took the "correct" approach of setting the entirety of petal 4 to BAD_PETALQA in the re-archiving. For example:
more /global/cfs/cdirs/desi/survey/ops/surveyops/trunk/mtl/main/dark/mtl-dark-hp-4413.ecsv | grep<PHONE_NUMBER>4556827 | awk '{print $18, $19, $20, $21, $22, $23, $24}'
-1.0 -1 -1 -1.0 -1 -1.0 QSO|UNOBS
1.6715542476640988 0 4317 1.6751628955377766 1<PHONE_NUMBER>411262 QSO|MORE_MIDZQSO
1.671985369011397<PHONE_NUMBER> 1.6773043418019986 1<PHONE_NUMBER>270999 QSO|UNOBS
1.6744277501658869 0 2764 1.6929402563567568 1<PHONE_NUMBER>6067857 QSO|MORE_MIDZQSO

Here the unobserved QSO target (QSO|UNOBS) turns into a QSO|MORE_MIDZQSO on tile 4317, then turns back into an unobserved QSO target on tile 4317 because of an observation with ZWARN of 524288 (which corresponds to BAD_PETALQA). The QSO target is then subsequently successfully observed on tile 2764.
The progression tracks correctly for target<PHONE_NUMBER>4556827 because BAD_PETALQA was set for every fiber on petal 4 when tile 4317 was re-archived (e.g., see the file '/global/cfs/cdirs/desi/spectro/redux/daily/tiles/archive/4317/20211122/zmtl-4-4317-thru20211007.fits').

The good news here is that I think we decided that those Sep 2021 events could be fixed in software and didn't affect QSO identification.  So we might not have wanted to reprocess those tiles in the way we did at all.
But I think we still have those CCDs that were affected by CTE marked bad in iron.  I think we want to turn that off in the next round of reductions.

I have re-re-archived these tiles with the commands below.  Let's close this ticket after @geordie666 completely closes the loop with an MTL update of these tiles.  Tiles 6369,7402,23960,26173 now have a latest ARCHIVEDATE of 20230821.
source $HOME/bin/desi_daily_env.sh

cd $DESI_ROOT/survey/ops/surveyops/trunk/ops/
svn update .

desi_archive_tilenight -t 6369  -n 20210930 --rearchive --badpetals 4
desi_archive_tilenight -t 7402  -n 20211002 --rearchive --badpetals 4
desi_archive_tilenight -t 23960 -n 20210921 --rearchive --badpetals 4
desi_archive_tilenight -t 26173 -n 20210921 --rearchive --badpetals 4

# there was a bug that left this in a writeable state; fix with
chmod u-w $DESI_ROOT/spectro/redux/daily/tiles/archive/6369/20230821/zmtl-4-6369-thru20210930.fits
# for other tiles, I fixed code before running desi_archive_tilenight

svn commit -m "re-re-archiving tiles 6369,7402,23960,26173 for missing petal 4" $DESI_ROOT/survey/ops/surveyops/trunk/ops/tiles-specstatus.ecsv


Add GTFS: Figure out why network drives don't work

You can't store the network dataset on a network drive.  The evaluator doesn't like it.  Why?

I do not plan to fix this as the Add GTFS to a Network Dataset tool will be deprecated when ArcGIS Pro 2.4 is released.


Clean up extra spaces

Although these errors are not important, they affect the code specification.

Thanks for your pull request, we discussed it during our bug scrub.
This space is mandatory in OpenMetric 1.0, as discussed in #10258. We can't just remove it.


add my details

I have included my personal details to the community.

In my second commit I have change the code for default language select as the English , after logging to the system users can change the language according to the needs.

PR MERGED!
Thanks for Contributing and making the project better :)


Separate coding style config into fixable and unfixable rules

Separating the configs will improve how existing codebases can be adapted to use the coding style.

Finally decided that this is just too much splitting to get a very small bonus - the rules are even now split quite a lot. Closing.


Removed errant double quotes character in the title

Removed errant double quotes character in the title

Docs Build status updates of commit ee78f5b:
:clock10: Full build: the average full build time is 11 min(s) 47 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit ee78f5b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/docs-conceptual/exchange-online/exchange-online-powershell-v2/exchange-online-powershell-v2.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Accidentally fixed the same thing in different (earlier) PR. Closing


Inconsistent behavior with React/HMR after splitting & saving file

Describe the bug
When I do this:
App.tsx:
import React from 'react';

export default function App() {
  return (
    <>
      <ExampleRoot>
        <ExampleChild />
      </ExampleRoot>
    </>
  );
}

type ExampleRootProps = {
  children: React.ReactNode;
};

export function ExampleRoot({ children }: ExampleRootProps) {
  let hasExampleChild = false;

  React.Children.forEach(children, (child) => {
    if (React.isValidElement(child) && child.type === ExampleChild) {
      hasExampleChild = true;
    }
  });

  if (!hasExampleChild) {
    // Not thrown.
    throw new Error('<ExampleChild/> is required');
  }

  return
{children}
;
}

export function ExampleChild() {
  return
Example Child
;
}

Everything works as expected. No error is thrown because <ExampleRoot/> is given <ExampleChild/>. The same is true when I save the file.
When I split <ExampleRoot/> and <ExampleChild/> into a separate Ui.tsx file, the initial render works as expected (no error thrown). However, when I save Ui.tsx, it throws the error:
App.tsx:
import { ExampleRoot, ExampleChild } from './Ui';

export default function App() {
  return (
    <>
      <ExampleRoot>
        <ExampleChild />
      </ExampleRoot>
    </>
  );
}

Ui.tsx:
import React from 'react';

type ExampleRootProps = {
  children: React.ReactNode;
};

export function ExampleRoot({ children }: ExampleRootProps) {
  let hasExampleChild = false;

  React.Children.forEach(children, (child) => {
    if (React.isValidElement(child) && child.type === ExampleChild) {
      hasExampleChild = true;
    }
  });

  if (!hasExampleChild) {
    // Thrown.
    throw new Error('<ExampleChild/> is required');
  }

  return
{children}
;
}

export function ExampleChild() {
  return
Example Child
;
}

Reproduction
https://github.com/ShaneAtJag/vite-react-bug
Steps to reproduce

pnpm install
pnpm dev
No error thrown in browser.
Open Ui.tsx, save it.
Error thrown in browser.

System Info
System:
    OS: Linux 5.15 Ubuntu 20.04.4 LTS (Focal Fossa)
    CPU: (8) x64 Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
    Memory: 2.88 GB / 7.65 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 16.15.1 - ~/.nvm/versions/node/v16.15.1/bin/node
    npm: 8.11.0 - ~/.nvm/versions/node/v16.15.1/bin/npm
  Browsers:
    Firefox: 112.0.2
  npmPackages:
    @vitejs/plugin-react-swc: ^3.0.0 => 3.3.0
    vite: ^4.3.2 => 4.3.5

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Yeah probably something to do with how React internals works. The ExampleRoot is given an instance of the previous ExampleChild on rerender and the reference comparison fails. Not sure there is anything actionnable here.
My advice would be to use the name/displayName of the component as a check

@ArnaudBarre That helps. Thank you. I figured it was something along those lines, but wanted to verify because my research returned nothing. A type-safe solution per your advice using displayName:
Ui.tsx:
import React from 'react';

type ExampleRootProps = {
  children: React.ReactNode;
};

const ExampleRoot = ({ children }: ExampleRootProps) => {
  let hasExampleChild = false;

  React.Children.toArray(children).forEach((child) => {
    if (
      React.isValidElement(child) &&
      typeof child.type !== 'string' &&
      'displayName' in child.type &&
      child.type.displayName === 'ExampleChild'
    ) {
      hasExampleChild = true;
    }
  });

  if (!hasExampleChild) {
    throw new Error('<ExampleChild/> is required');
  }

  return
{children}
;
};

ExampleRoot.displayName = 'ExampleRoot';

export { ExampleRoot };

const ExampleChild = () => {
  return
Example Child
;
};

ExampleChild.displayName = 'ExampleChild';

export { ExampleChild };


Linebreaks after inline-blocks

Describe the bug
When the RichtTextField contains some inline elements like <em> <strong> or <u> it will adds a <br> before and after the element. How can i avoid this behaviour?
To Reproduce
Steps to reproduce the behavior:

Add some Text to RichtText-Field in Contentful
Select a text sequence an make it "strong" for example

Expected behavior
The strong element should appear in the text without linebreaks.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: MacOS
Browser chrome
Version 100.0.4896.127

Maybe you can add something like this in line 65:
let fragments = node.value.split(/\n/g);

if (fragments.length > 1) {
  fragments.forEach((item, index) => {
    handledValue.push(item);
    if (index !== fragments.length - 1) {
      handledValue.push(h("br"));
    }
  });
} else {
  handledValue.push(node.value);
}

Hi @LrMiLoef,
Thank you for submitting this bug for our review. We've actually stopped actively working on this project, so we aren't going to be able to work to research/resolve your issue. I've spoken with our team, and we will try to add a tag saying that this project is archived.
My suggestion would be that you either create a workaround to resolve your issue, or if you want to submit a PR, we might be able to take a look. Realistically, since this isn't really in our scope of work anymore, it may or may not be accepted.
All in all, we really appreciate your input and feedback.
Thank you,
Skyler @Anivive


cosign verify fails randomly when we have multiple signatures attached to image

Description
Use case impacted: An organization uses cosign to sign the software images using its own PKI infrastructure using its Root Certificate, Intermediate Certificate and Leaf Certificate.
The software is delivered to the client. Now client want to apply its own signatures using client PKI infra using clients Root cert, Intermediate cert and Leaf cert before client can use the software.
So once client apply its signature we have now two signatures attached to the image.
Signature 1: Is signed with cert chain  CompanyRootCA.crt -> CompanyIntermediate.crt -> CompanyLeaf.crt
Signature 2:  Is signed with cert chain ClientRootCA.crt -> ClientIntermediate.crt -> ClientLeaf.crt
Now if we verify the image using cosign verify using  Root certificate in the certChain argument the verification fails.
Like in the above case if we verify the image using Company root cert or Client root cert the verification fails some time and sometime it get success.
cosign verify ttl.sh/cosign-ci/tarball/5772530a@sha256:1d4b70ca7693a3357edb48d492bee7c4aedeb6e7a74557fd47871a81d507bfdc --certificate-identity-regexp='.' --certificate-oidc-issuer-regexp='.' --insecure-ignore-sct --insecure-ignore-tlog --cert-chain=CompanyRootCA.crt
After analysis of the code following root cause was found.
In this case as we are just passing rootCA.crt in the certChain argument following thing will happen.
showing the function stack for the issue flow

cli/verify/verify.go (cosign.VerifyImageSignatures) will be called
 	verified, bundleVerified, err := cosign.VerifyImageSignatures(ctx, ref, co)
 	if err != nil {
 		return cosignError.WrapError(err)
 	}

https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/cmd/cosign/cli/verify/verify.go#L305

pkg/cosign/verify.go (VerifyImageSignatures)
this will call verifySignatures function
return verifySignatures(ctx, sigs, h, co)
https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L527C2-L527C43

pkg/cosign/verify.go (verifySignatures)
in this function multiple worker threads are spawned to verify signatures. The same checkOps reference is now available with each worker thread.
t := throttler.New(workers, len(sl))
for i, sig := range sl {
go func(sig oci.Signature, index int) {
sig, err := static.Copy(sig)
if err != nil {
t.Done(err)
return
}
 	verified, err := VerifyImageSignature(ctx, sig, h, co)
 	bundlesVerified[index] = verified
 	if err != nil {
 		t.Done(err)
 		return
 	}
 	signatures[index] = sig

 	t.Done(nil)
 }(sig, i)

 // wait till workers are available
 t.Throttle()

}

https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L598C1-L620C3

pkg/cosign/verify.go (VerifyImageSignature)
// VerifyImageSignature verifies a signature
func VerifyImageSignature(ctx context.Context, sig oci.Signature, h v1.Hash, co *CheckOpts) (bundleVerified bool, err error) {
return verifyInternal(ctx, sig, h, verifyOCISignature, co)
}
https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L817C1-L820C2

pkg/cosign/verify.go (verifyInternal)
in this function if co.IntermediateCerts is NULL as we have only passed the root certificate only. So each thread update
co.IntermediateCerts with intermediateCert pool fetched from signature it is verifying. The problem is that this can be set by any
of the threads which get scheduled and than the remaining thread will not set it again as they will notice the intermediates have
been set already. this will can corrupt the verification chain if different signatures have different intermediates.
 // If there is no chain annotation present, we preserve the pools set in the CheckOpts.
 if len(chain) > 0 {
 	if len(chain) == 1 {
 		co.IntermediateCerts = nil
 	} else if co.IntermediateCerts == nil {
 		// If the intermediate certs have not been loaded in by TUF
 		pool := x509.NewCertPool()
 		for _, cert := range chain[:len(chain)-1] {
 			pool.AddCert(cert)
 		}
 		co.IntermediateCerts = pool
 	}
 }
 verifier, err = ValidateAndUnpackCert(cert, co)
 if err != nil {
 	return false, err
 }

https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L723C1-L739C4
6. pkg/cosign/verify.go (ValidateAndUnpackCert)
chains, err := TrustedCert(cert, co.RootCerts, co.IntermediateCerts)
if err != nil {
return nil, err
}
https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L242C1-L245C3
7. pkg/cosign/verify.go (TrustedCert)
this function fails some time as the parallel thread which ever get first change to set the co.Intermediatecerts can set it own signature Intermediate certs which may not match to the rootCert passed in the CLI argument and due to which all verification fails.
func TrustedCert(cert *x509.Certificate, roots *x509.CertPool, intermediates *x509.CertPool) ([][]*x509.Certificate, error) {
chains, err := cert.Verify(x509.VerifyOptions{
// THIS IS IMPORTANT: WE DO NOT CHECK TIMES HERE
// THE CERTIFICATE IS TREATED AS TRUSTED FOREVER
// WE CHECK THAT THE SIGNATURES WERE CREATED DURING THIS WINDOW
CurrentTime:   cert.NotBefore,
Roots:         roots,
Intermediates: intermediates,
KeyUsages: []x509.ExtKeyUsage{
x509.ExtKeyUsageCodeSigning,
},
})
if err != nil {
return nil, fmt.Errorf("cert verification failed: %w. Check your TUF root (see cosign initialize) or set a custom root with env var SIGSTORE_ROOT_FILE", err)
}
return chains, nil
}
https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L1319C1-L1335C2
So main issue is that
function verifySignatures: https://github.com/sigstore/cosign/blob/402820d97997f3a29f06b99c6fc7b7d78067ce62/pkg/cosign/verify.go#L579
invokes parallel thread but passes a common checkOpts pointer to each thread.
Now in the given case where co.IntermediateCerts is Null each thread try to set the Intermediate certs from the signature it is handling. This can corrupt the verification chain.
Solution: I am proposing following solution to the issue.
changes in func verifyInternal:
instead of modifying the co.intermediatecerts we should use a local variable of *x509.CertPool to fetch the Intermediate certs from Signature and pass this as a separate argument to function ValidateAndUnpackCert
Change in func ValidateAndUnpackCert we should pass Intermediatecerts fetched from Signature as separate argument and use it if co.intermediatecerts is nil.
Version
Issue is visible in 2.2.2 release and also in previous releases

@haydentherapper  if you agree with the bug than i can propose a PR to fix it.
following are the changes i propose.
Function : ValidateAndUnpackCert

we should pass the intermediate cert as a separate argument so new signature of the function is
func ValidateAndUnpackCert(cert *x509.Certificate, co *CheckOpts, intermediateCerts *x509.CertPool) (signature.Verifier, error) {
if the new argument passed is not null than we use it else we use co.intermediatecert only
if intermediateCerts == nil {
intermediateCerts = co.IntermediateCerts
}
chains, err := TrustedCert(cert, co.RootCerts, intermediateCerts)

Function: verifyInternal(ctx context.Context, sig oci.Signature, h v1.Hash,

we remove the logic of setting the co.intermediatecerts but instead pass the pool as separate argument
so new logic is mentioned as follows
        var pool = (*x509.CertPool)(nil)
         if len(chain) > 0 {
                 if len(chain) == 1 {
                         co.IntermediateCerts = nil
                 } else if co.IntermediateCerts == nil {
                         // If the intermediate certs have not been loaded in by TUF
                         pool = x509.NewCertPool()
                         for _, cert := range chain[:len(chain)-1] {
                                 pool.AddCert(cert)
                         }
                 }
         }
         verifier, err = ValidateAndUnpackCert(cert, co, pool)
         if err != nil {
                 return false, err
         }

since the signature of function ValidateAndUnpackCert is changed following files need modification
cmd/cosign/cli/verify/verify_attestation.go
cmd/cosign/cli/verify/verify.go
pkg/cosign/verify_sct_test.go
pkg/cosign/verify_test.go
by passing new argument as nill
err = cosign.ValidateAndUnpackCert(cert, co, nil)
i have done local testing with these changes and they seems to work.

Sorry for the delayed response. Nice catch on this bug! Just to make sure I understand, summarizing the issue: We're passing a shared CheckOpts object that is mutated by a downstream function. This object is used in parallel invocations, so one invocation can overwrite another's changes.
I'd like to avoid breaking changes to the API. Looking around GitHub, this function is called in a number of libraries. Can we instead create another function, ValidateAndUnpackCertWithIntermediates, that has your proposed API? This function will then be called by verifyInternal. We can also modify ValidateAndUnpackCert to call this new function by passing in co.IntermediateCerts (this is to reduce duplicated code while preserving the public API).
Note, I did look at making a deep copy of CheckOpts, but this is not straightforward in Golang. Another option would be to create another options struct, but this is a riskier change because there are so many places that the CheckOpts struct is used downstream of ValidateAndUnpackCerts.

One other thing to note, the CheckOpts object was not designed to be thread-safe, even if it's only used in a read-only way, so I'm not sure if there's other bugs. Worth following up.

Hi @haydentherapper yes your understanding is correct on the issue shared the CheckOpts is not thread safe and in the given flow it get mulated by downstream function.
i agree with your proposal to create a separate function ValidateAndUnpackCertWithIntermediates having intermediatecerts as a separate argument.
your second suggestion to call this new function inside ValidateAndUnpackCert will not be possible as because we dont have signature reference passed as argument to  this function so we would not be able to fetch intermediate certs inside ValidateAndUnpackCert to pass to ValidateAndUnpackCertWithIntermediates
so i think we should create a new function ValidateAndUnpackCertWithIntermediates  and call it inside verifyInternal this should solve the issue.
i will proceed ahead with creating a PR based on these suggestions. thanks.

@haydentherapper i have done the required changes and tested it locally on my setup but  when i am trying to push the changes to cosign i am getting following error
musharma@N-20S1PF2LWWHM MINGW64 ~/cosign (Fix-Issue-3476)
$ git push -u origin Fix-Issue-3476
remote: Permission to sigstore/cosign.git denied to Mukuls77.
fatal: unable to access 'https://github.com/sigstore/cosign.git/': The requested URL returned error: 403
I have also created a fresh ssh key and attached to my account. can you pls guide what could be the issue.

@haydentherapper i have done the changes as discussed before and tested it on my local setup. But when i try to push the changes to cosign git repository i am getting following error
$ git push -u origin Fix-Issue-3476
remote: Permission to sigstore/cosign.git denied to Mukuls77.
fatal: unable to access 'https://github.com/sigstore/cosign.git/': The requested URL returned error: 403
I have tried the steps from github page and stackexchange to resolve this issue like

clearing the old stored copy of credential in windows credential manager
creating a new ssh key adding it to my git account.
creating a fresh clone and doing the changes.

but when i try to push the changes git ask for authentication using browser, i give the credentials in browser it become success in browser but still my git push fails.
can you pls guide what i am missing here.

Are your remotes set up properly? Look at git remote -v and confirm that you are pushing to your fork, not sigstore/cosign. Otherwise I'm not sure, this is an issue with your git setup.

@haydentherapper many thanks it was the issue i corrected the git remote to my fork and it worked now i will proceed with the pull request.

@haydentherapper i have created the PR to fix this issue
https://github.com/sigstore/cosign/pull/3486
kindly review


Add Sort command and parser tests

Added tests for SortTaskCommand and SortTaskCommandParser.

Codecov Report

Merging #257 (a86481f) into master (137f736) will increase coverage by 2.19%.
The diff coverage is 63.15%.

@@             Coverage Diff              @@
##             master     #257      +/-   ##
============================================
+ Coverage     53.36%   55.55%   +2.19%
- Complexity      755      800      +45
============================================
  Files           161      161
  Lines          3225     3238      +13
  Branches        432      441       +9
============================================
+ Hits           1721     1799      +78
+ Misses         1394     1325      -69
- Partials        110      114       +4

Impacted Files
Coverage Δ

...u/address/logic/parser/DeleteTagCommandParser.java
85.71% <ø> (ø)

...edu/address/logic/parser/EditTagCommandParser.java
95.00% <ø> (ø)

...in/java/seedu/address/model/module/ModuleCode.java
90.00% <ø> (+10.00%)
:arrow_up:

src/main/java/seedu/address/model/task/Task.java
63.80% <25.00%> (-3.87%)
:arrow_down:

...ain/java/seedu/address/model/commons/Criteria.java
92.30% <50.00%> (+92.30%)
:arrow_up:

.../seedu/address/logic/commands/LinkExamCommand.java
100.00% <100.00%> (+36.36%)
:arrow_up:

.../seedu/address/logic/commands/SortTaskCommand.java
100.00% <100.00%> (+100.00%)
:arrow_up:

...du/address/logic/parser/LinkExamCommandParser.java
93.33% <100.00%> (+93.33%)
:arrow_up:

...du/address/logic/parser/SortTaskCommandParser.java
88.88% <100.00%> (+88.88%)
:arrow_up:

...c/main/java/seedu/address/model/module/Module.java
62.29% <0.00%> (+1.63%)
:arrow_up:

... and 11 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Need in "id" attribute specified on autogenerated "input" element

In case of multiple boxes Select2 creates  element just right after <select>. That span contains <input> element within. Due to absence of "id" attribute on that element focus in input element might be lost in case of using Apache Wicket web framework (I guess, others are also effected) which can update initial element by ajax.
Is there a way to define "id" attribute for autogenerated <input> element?
If no: is it possible to make transparent refocus on input element if focus was  set to <select> in JS?

This is actually a duplicate of https://github.com/select2/select2/issues/3876, the problem is that Select2 doesn't respond to the focus event in 4.0.x.


Configuring npm CLI to use new registry URL

The README says to do this:
npm update --registry http://urltomyregistry

But npm help update says:

This command will update all the packages listed to the latest version (specified by the tag config), respecting semver.

Shouldn't the command be something like this instead?
npm config set registry https://my-thing.herokuapp.com

Yeah I think that's a mistake in the README

Both are valid, we could add the other one to the README though


Input group breaking changes

There has been breaking changes since beta 3 regarding input groups.
See https://getbootstrap.com/docs/4.0/migration/#input-groups

We have the same issue since the upgrade to the latest version:


[AMBARI-24465] Warnings during ambari-agent, ambari-server upgrade (dgrinenko)

cherry pick of #2046

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3581/
Test PASSed.


[task] Trace storage model and ITraceStorage interface definition

Determine the storage model for trace data
Ability to efficiently query corresponding span data using trace IDs
Ability to filter and query trace lists using service name, operation, or tags, as shown below

@liuhaoyang What is  OperationName？

@liuhaoyang What is OperationName？

OperationName is another name for Span Name.

什么是操作名称？

OperationName是 的另一个名称。Span Name

OK


Webpack::Rails::Manifest::ManifestLoadError in Auth::Registrations#new

Hi everyone,
After checkout latest Portus version, I followed the basic steps to configure with command bellow.
./compose-setup.sh -e <my_domain>
Everything works fine, but, when I access the url http://<my_domain>:3000, I get the error bellow.
Webpack::Rails::Manifest::ManifestLoadError in Auth::Registrations#new
Showing /portus/app/views/layouts/authentication.html.slim where line #6 raised:

Could not load compiled manifest from /portus/public/assets/webpack/manifest.json - have you run `rake webpack:compile`? (original error No such file or directory @ rb_sysopen - /portus/public/assets/webpack/manifest.json)

@rodrigozc You need to run yarn install and then webpack --watch --config config/webpack.js. Not sure if restarting the web container is necessary.
This steps are still missing on docs. Sorry for that.
/cc @mssola

That is correct. I need to update the docker-compose setup for this.

Thanks @vitoravelino and @mssola

Could you please clarify where/how to install webpack.js? I tried execing into the web container and running the npm command, and it failed to resolve the problem.

@lukeshaughnessy try executing from outside the web container.

As @vitoravelino points out, running this outside of the container should work because the source code is shared in a volume. That being said, I'll add documentation and all that asap.

docker exec -it  portus_web_1 /usr/bin/npm install webpack -g
docker restart portus_web_1
Issue persists. Perhaps I am misunderstanding?

There's no difference between docker exec and entering the container and running the command. When we meant outside we mean not related to docker.

I assume then that you mean running npm install webpack -g on the host operating system? This also does not work. I am quite confused. How does running this outside the container provide whatever files are needed in the volume? Could you please provide more specific details for this workaround?

@rodrigozc     Hi, solved yet?

I think having local webpack is better https://github.com/SUSE/Portus/pull/1256
especially when you already have it in node_modules

Facing the same issue. Tried it today running on Google Cloud Instance running Ubuntu 16.10.
npm i webpack -g looks to be incompatible and not getting installed.
npm WARN optional Skipping failed optional dependency /webpack/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture<EMAIL_ADDRESS>root@my-swarm-manager:~# npm i webpack -g

Fixed the issue using the below steps:

echo -e 'http://dl-cdn.alpinelinux.org/alpine/edge/main\nhttp://dl-cdn.alpinelinux.org/alpine/edge/community\nhttp://dl-cdn.alpinelinux.org/alpine/edge/testing' > /etc/apk/repositories
apk add --no-cache nodejs-current yarn
yarn install

$ yarn install
yarn install v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
warning<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it f
rom installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 33.76s.
[node1] (local<EMAIL_ADDRESS>~/Portus
I executed this command on Alpine Linux :)

I had to execute the following steps on Ubuntu 16.04 to fix the issue (after installing node/npm using this tutorial).
npm install -g webpack yarn
yarn install
webpack --watch --config config/webpack.js

Another quickie for zealous folks:
cd Portus/; docker run -it --rm -v "$PWD":/usr/src/app -w /usr/src/app --entrypoint sh node:alpine -c 'npm install -g webpack yarn && yarn install && webpack --watch --config config/webpack.js'

@kvalev on which container are you running those lines ?

@vagharsh I did that on the host machine before executing compose-setup.sh.

@andrey01 Thanks. The command that you wrote helps me to run. But could not get the compose file. Should I merge this to the docke-compose inside the Portus folder? If I add it at the bottom, it still is not working.

Hi, just downloaded portus to try it and I have the same problem, When the developers will upgrade the repository??
They are loosing the oportunity with a bad demo code from more than 1 moth ago.

I have just updated the code and the documentation:

The portus web page will tell you how to manage containerized setups after merging #1312.
The wiki has been updated with a new page, explaining how to build the frontend assets.
The PR #1254 has been merged. This brings lots of changes, but most importantly: it allows the docker-compose setup to automatically call webpack, so this issue is resolved; and it adds some examples both for development and production. Note that quite a lot of things changed (mainly because of the new image). I've also updated the documentation to reflect on this.

Hopefully with this the situation has been improved. Sorry for the delay.
I'm closing this issue, since it has already been fixed, but feel free to leave comments if you have any further doubts.


Re-align dummy GK APIs with new son-cli tools (son-access)

Should not be too much effort.
Should be started after son-access is finalized.

I just noticed son-push is not any more included in the install of son-cli, the source code folder has also been romved from the repo,
so any integration test that uses son-push will fail now :-(

Exactly. I am only aware of the int-6-emu... test so far. Will modify it to use son-access this morning.


MGDCTRS-205 - Set default for CPU and Memory - Messaging Connectors

Thanks @oscerd

Is this a good average?
"trait.camel.apache.org/container.request-cpu" : "0.20",
"trait.camel.apache.org/container.request-memory" : "256m",

Yes, I discussed with @lburgazzoli for the CPU and also I'm looking at some test I'm doing for the memory side.

Error is not related.


sr-only--up / sr-only--down utility classes for accessibility

The most common use case for me when using the hidden-*-down and -up classes is to hide button labels on phone screens and similar use-cases. This is a sensible thing to do, and would result in markup like follows:

   Go to google

The issue here, is that for accessibility features on the phone (like VoiceOver), the text of the button will now be hidden, and it will simply read "Button". This is fixed right now by using the aria-label tag on the button element:

   Go to google

This will be read correctly even on mobile screens. However, this result in needless repetition in the HTML, when the same effect could be acheived if we had a sr-only-sm-down utility class, like follows:

   Go to google

This will correctly read in VoiceOver on the iPhone, remaining universally accessible. I suggest these classes should be added to standard bootstrap 4. To make it easier to create accessible websites

The most common use case for me when using the ,!

CC: @patrickhlauke

@hjnilsson I like this idea,.. but if it doesn't make it to core you could roll your own: CodePen

seems sensible to me

After some deliberation, I believe only sr-only-*-down is necessary. I have never had need for the reverse (ie. hide elements from display but not for screen readers on desktop). The use case for hidden-xs-up is where a more complex element would be shown for desktop, and a simpler version for mobile phones.

Hi,
In fact : i think .hidden--down and .hidden--up must NEVER be hidden to screen reader. Maybe restrict to @media screen, or use another css.
And the !important is .... difficult.

We don't do the hidden up/down classes anymore. Would .sr-only-{sm|md|lg|xl} work still?

Late reply @mdo - what would the effect of, say, .sr-only-md be? for viewport sizes smaller than and up to  (but not including) lg have the thing act as .sr-only, and noop on lg and xl ? If so, then yes, this would still be useful.

++ this would be super handy

Closing as stale.