text:
feat: implement draft records of UIDesignTool

Commit message body

and:
- refactor(ui-design-tool): change status model
- refactor(ui-design-tool): split UIDesignTool class
- refactor(ui-design-tool): fix transaform hooks to explicitly inject target record
- refactor(ui-design-tool): remove dependency on design-system
- rename(ui-design-tool): add prefix to InteractionType and `TransformMethod`
- feat: add utils that wait for async paint
- fix(ui-design-tool): fix `useUIRecordForInteraction` not re-rendering on time
- fix: hide transform handle when record is draft
- fix: fix color format of `UIRecord`
- fix(design-system): fix Select to display content instead of value
- fix: hide draft records in layer explore panel
- format: change lint rules

Description

Fixes #.
How to Test
Environment

OS:
Browser:

Scenario

Checklist

[x] 모든 변경 사항이 스타일 가이드를 따르고, lint·format 스크립트를 통과했습니다.
[x] 변경 사항에 대한 테스트 코드를 작성하고, test 스크립트를 통과했습니다.
[ ] 변경 사항에 관련된 문서를 작성했습니다.

TextLayer input 인터랙션 구현하고 테스트 짜야 해

TextLayer input 인터랙션 구현하고 테스트 짜야 해

TextLayer는 미루고 일단 테스트 작성하게 리팩토링 해보자
개선 방향

이벤트가 발생하면 event 객체와 mode를 확인해 액션 인터페이스 생성
dispatch한 액션을 구독하는 함수(또는 무언가)에서 태스크 관리
액션 기반으로 기능 테스트 작성

아래는 pseudocode라서 안돌아감

Action Types
type ToggleAction =
  | { type: 'TOGGLE'; status: 'idle' }
  | { type: 'TOGGLE'; status: 'selection'; x: number; y: number }
  | { type: 'TOGGLE'; status: 'moving'; x: number; y: number }
  | { type: 'TOGGLE'; status: 'resizing'; handlePlacement: '...' }
  | { type: 'TOGGLE'; status: 'rotating'; handlePlacement: '...' }
  | { type: 'TOGGLE'; status: 'drawing', parentKey: UIRecordKey; x: number; y: number }
  | { type: 'TOGGLE'; status: 'input', handleKey: UIRecordKey; x: number; y: number }
type TriggerAction = { type: 'TRIGGER'; x: number; y: number }

Event Handlers
const onMouseDown = useEvent((event: MouseEvent) => {
  const { clientX: x, clientY: y } = event;
  const interactionType: UIDesignToolInteractionType = (() => {
    return UIDesignToolInteractionType['...'];
  })();
  const transformMethod: UIDesignToolTransformMethod = (() => {
    return UIDesignToolTransformMethod['...'];
  })();
  const status = getStatus({ interactionType, transformMethod });
  dispatch({ type: 'TOGGLE', status, x, y, /* ... */ });
});

const onMouseMove = useEvent((event: MouseEvent) => {
  const { clientX: x, clientY: y } = event;
  dispatch({ type: 'TRIGGER', x, y });
});

const onMouseUp = useEvent((event: MouseEvent) => {
  dispatch({ type: 'TOGGLE', status: 'idle' });
});

Task Manager
interface InteractionTask {
  x: number;
  y: number;
  target?: UIRecordKey;
  status: 'scheduled' | 'running';
  condition?: () => boolean;
  enter?: () => void;
  leave?: () => void;
  clear?: () => void;
}

const interactionTaskManager = (action: ToggleAction | TriggerAction) => {
  const currentTask = useRef<InteractionTask>();

  const pushTask = useCallback((task: InteractionTask) => {
    if (currentTask.current != null) {
      throw new Error('task already exists.');
    }
    setRef(currentTask, task);
  }, []);

  const runTask = useCallback((callback?: (task: InteractionTask) => void) => {
    const { current: task } = currentTask;
    if (task == null) {
      throw new Error('task is undefined.');
    }
    if (task.status === 'scheduled') {
      if (condition?.() ?? true) {
        task.status = 'running';
        task.enter?.();
      }
      return;
    }
    callback?.(task);
  }, []);

  const shiftTask = useCallback((callback?: () => void) => {
    const { current: task } = currentTask;
    if (task == null) {
      return console.error('task is undefined.');
    }
    if (task.status === 'running') {
      task.leave?.();
    } else {
      task.clear?.();
    }
    callback?.();
  }, []);

  if (action.type === 'TOGGLE') {
    uiController.setStatus(action.status);
    switch (action.status) {
      case 'selection': { pushTask({ /* ... */}); break; }
      case 'move': { pushTask({ /* ... */}); break; }
      case 'resize': { pushTask({ /* ... */}); break; }
      case 'rotate': { pushTask({ /* ... */}); break; }
      case 'drawing': { pushTask({ /* ... */}); break; }
      case 'input': { pushTask({ /* ... */}); break; }
      case 'idle': { shiftTask(); break; }
    }
  }

  if (action.type === 'TRIGGER') {
    switch (uiData.status) {
      case 'selection': { runTask({ /* ... */}); break; }
      case 'move': { runTask({ /* ... */}); break; }
      case 'resize': { runTask({ /* ... */}); break; }
      case 'rotate': { runTask({ /* ... */}); break; }
      case 'drawing': { runTask({ /* ... */}); break; }
      case 'input': { runTask({ /* ... */}); break; }
      case 'idle': { break; }
    }
  }
};

export const dispatch = (action: ToggleAction | TriggerAction) => interactionTaskManager(action);

selection
  waitingQueue.push({ event, status: nextStatus, calibrate: 5 });
drawing
  waitingQueue.push({ event, target: record.key, status: nextStatus, enter, leave, clear, calibrate: 5 });
input
  waitingQueue.push({ event, target: record.key, status: nextStatus, calibrate: 5 });
transform
  waitingQueue.push({ event, target: recordKeys[0], status: nextStatus, calibrate: 5 });

repo: choegyumin/pigyuma


text:
Issue with haplotype rescues

It looks the the -z parameter is not functioning properly.  Here's a read out of the .hap.log for a particular individual using a -z 0.05  It appears to be failing at both the initial and rescue portion.
dDocent_Contig_4163: Unique Observed Haps:
$VAR1 = [
          'CGATT',
          'CAATT',
          'CGACC'
        ];
dDocent_Contig_4163: Problem- trying to fix...
dDocent_Contig_4163: Corrected Unique Observed Haps:
$VAR1 = [
          'CGACC',
          'CGATT',
          'CAATT'
        ];
dDocent_Contig_4163: Unable to rescue
dDocent_Contig_4163
$VAR1 = {
          'CGACC' => 9,
          'CGATT' => 9,
          'CGATG' => 1,
          'CAATT' => 1
        };
Expected haplotypes: 2
Observed haplotypes: 3

This should only see 2 haplotypes, no?
Failed, trying to recover...
dDocent_Contig_4163: Observed Haps:
$VAR1 = [
          'CGATT',
          'CAATT',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGATC',
          'CGATT',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGATT',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGATT',
          'CGACC',
          'CGATT',
          'CGATT',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGGTT',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGATT',
          'CGATT',
          'CGATT',
          'CGATT',
          'CAATT',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGATT',
          'CGATT',
          'CGGTT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CAATT',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATT',
          'CGGTT',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGATG',
          'CGACC',
          'CGACC',
          'CGACC',
          'CGACC'
        ];
dDocent_Contig_4163: Unique Observed Haps:
$VAR1 = [
          'CGATT',
          'CAATT',
          'CGACC',
          'CGATC',
          'CGGTT'
        ];
dDocent_Contig_4163: Problem- trying to fix...
dDocent_Contig_4163: Corrected Unique Observed Haps:
$VAR1 = [
          'CGATC',
          'CGACC',
          'CGGTT',
          'CGATT',
          'CAATT'
        ];
dDocent_Contig_4163: Unable to rescue
dDocent_Contig_4163
$VAR1 = {
          'CGATC' => 1,
          'CGACC' => 61,
          'CGGTT' => 3,
          'CGATT' => 30,
          'CGATG' => 1,
          'CAATT' => 3
        };
Expected haplotypes: 2
Observed haplotypes: 5
Failed again...

Again I would only expect to see 2.

Setting an integer value works, but even 0.1 and 0.25 fail.  Perhaps this is an integer vs. float issue?

source: gharchive/issue

license: mit

license_type: permissive

license_source: bigquery


text:
How to contribute to documentation on website?

I've noticed an error on choo.io. Is there a repo I could submit a PR to?

https://github.com/choojs/website

Thank you! Couldn't find that

authors: LudwikJaniuk YerkoPalma

repo: choojs/choo

license: MIT

license_source: github-api


text:
Update the README to reflect changes from #2

:scream: I forgot

omg how dare you
:trollface:

source: gharchive/pull-request

authors: carbonin chrisarcand

repo: chrisarcand/miqversions


text:
Players cannot move abilities from profession to character sheet

Hi Chris
I have set the permissions for my players as "Player" or "Trusted Player" for ALL permissions, but even then, they cannot drag & drop abilities from the Professions or Foci onto their character sheets.  This activity only works if you are a GM or GM Assistant.
Players can Drag & Drop from the compendium, but not from the side loaded professions etc.
I think there is something in the global permissions between GM and PLAYER that is doing this.
THanks
Richard N

Hi @newbyr  - could you try updating to  v1.3.3 and confirming this fixes it? I've tried it and it appears to work.

Hi Chris
This is super and works fine.  Agai , thanks for the rapid turn around.
My players love the module.
Richard
On Wed, 6 Jul 2022, 17:58 Chris Sharp, @.***> wrote:

Hi @newbyr https://github.com/newbyr - could you try updating to v1.3.3
and confirming this fixes it? I've tried it and it appears to work.
—
Reply to this email directly, view it on GitHub
https://github.com/chrisesharp/foundryvtt-dee-sanction/issues/19#issuecomment-1176400113,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZJ3MWWC6Q7TMFUF6NNU3ZDVSWUKFANCNFSM52T53MMQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Its great Chris.  Thank you so much for a quick response. My players love the adaption. Regards Richard   From: Chris SharpSent: 06 July 2022 17:58To: chrisesharp/foundryvtt-dee-sanctionCc: newbyr; MentionSubject: Re: [chrisesharp/foundryvtt-dee-sanction] Players cannot move abilities from profession to character sheet (Issue #19) Hi @newbyr - could you try updating to v1.3.3 and confirming this fixes it? I've tried it and it appears to work.—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
			This email has been checked for viruses by Avast antivirus software.
			www.avast.com

authors: chrisesharp newbyr

repo: chrisesharp/foundryvtt-dee-sanction


text:
[BUG] remove bucket with same name on other filer with clear volume data on both

Version: 2.04
Reproduce steps:

start 2 filer on same master backend.
start object node for each filer.
create bucket on each filer with same bucket name.
upload some files.
delete one of the bucket.

Result:

The volume all cleared.

As of now, there are no plan to officially support multiple filers with their own filer stores on the same object store. Correct me if I am wrong, this seems not a popular use case.

As of now, there are no plan to officially support multiple filers with their own filer stores on the same object store. Correct me if I am wrong, this seems not a popular use case.

But, it might be forbidden to create the duplicated bucket when CreateBucket invoked.

As of now, there are no plan to officially support multiple filers with their own filer stores on the same object store. Correct me if I am wrong, this seems not a popular use case.

If other don't know about this. The whole data will be truncated and ALSO include replication. This should be a problem.

added https://github.com/chrislusf/seaweedfs/commit/ace0ea3d28a7102dee0a0a0c78ffd30d6e068b67 to avoid duplicated collections.
The collection creation is lazy. The bucket's collection will only be created after the bucket has some content. So there could be edge cases when two buckets with the same name are created at the same time before written any content. But that should be rare.

repo: chrislusf/seaweedfs


text:
Chunking large files with Filer service

I've been trying to use the large file / chunking feature. Should this work with the Filer service, or is it only supported when using the direct API?
Thanks!
Mike

Currently only support the direct API.
Let me know your use case, and any suggestions on how the API should look like?

Well, I like how you have set up chunking as it works in the direct API. It seems like with the Filer, the only difference is that instead of passing the Fid for each chunk, you would pass a Path (something like "myfolder/myfile.jpg"):
type ChunkInfo struct {     **Path**    stringjson:"fid"    Offset int64 json:"offset"    Size   int64 json:"size"}
By the way -- in the direct API, what should the Offset property be set to for each chunk?
Thanks,
Mike

The offset should be the number of bytes before this chunk

There is a "weed filer.copy" command added recently, which can take care of chunking. The filer itself does not do chunking for this case.
Let me know whether this helps.

I guess this might work, but it isn't quite what I was looking for. I was hoping to use filer REST API to upload large file and file it with a particular name. For example, I might have a 1GB file called test.iso that I want to file as "http://10.91.100.1:8888/isos/123", or something like that. It looks like the filer.copy command takes a path and appends the filename?

I was thinking you can always rename and then copy, so I removed this feature for simplicity. It should be kind of easy to add it back.

authors: chrislusf mtolman


text:
add options params for the Assign func

This fix is to solve the problem that explicitly specifying the main [dataCenter | rack | dataNode] now is disabled

Thanks for the nice hack! However, this may lead to future API usage confusions. Explicit declaration is better.
Could you please refactor a bit more, so that the API becomes
type VolumeAssignRequest stuct{   count uint64   replication string   collection string   ttl string   dataCenter string   rack string   server string } func Assign(server string, r VolumeAssignRequest) (*AssignResult, error)

Sure!  We should not leave the technical debt for other ones and bring in hidden trouble for future
And pointer type should be better(avoid additional copy and ref count for each struct field), while the object is still on stack space(escape analysis)
And the usage should be:
`
volumeAssignReq := &VolumeAssignRequest{
count : 1,
replication : "001",
}
func Assign(server string, r *VolumeAssignRequest) (*AssignResult, error)
`
I will submit later (by the end of this weekend), I'm working on seaweedfs's online ops work at prod environment with a lot of trivial matter...

Let's add the field one by one to be clear and fast.

authors: chrislusf hxiaodon


text:
Option to only extract text (no table and images)

Does this library provide any options to specify to extract text, we do not want table data or images to be extracted?

Yes, absolutely. It's a core part of the library. The text will be in the returned "content" key of the dictionary that comes back from the parser from_file or from_buffer functions.

authors: chrismattmann karrtikiyerkcm

repo: chrismattmann/tika-python


text:
Wifi Freezing issue

Before submitting your issue or feature request.  DO NOT REQUEST ASSISTANTS FOR PRELOADED IMAGES.  I do not support or condone the use of preloaded ArkOS images.  Preloaded meaning images that come with copyrighted roms preincluded.  Look for support from the creator or supplier of those preloaded images, not from here!  If a ticket is submitted for assistance for such images or if there's an indiciation that a preloaded image is what the support request is for, the issue ticket will be closed with no further response.

This is not Anbernic Stock Emuelec or 351Elec.  ArkOS is a different distribution from those systems and will have differing features.  The only somewhat similarity is that they both use EmulationStation as a frontend.  Even with that, the versions of EmulationStation that's used in between ArkOS and Anbernic Emuelec/351Elec is different with different capabilities.  If there are features you prefer with Anbernic Emuelec/351Elec, just use those distributions instead.  The choice is yours.

Have you reviewed the Frequently Asked Questions available at https://github.com/christianhaitian/arkos/wiki/Frequently-Asked-Questions---RG351P ?

If your issue is related to being able to run certain emulators or ports, have you reviewed the Emulators and Ports section available at https://github.com/christianhaitian/arkos/wiki/ArkOS-Emulators-and-Ports-information for needed bios files and supported rom extensions?

Have you reviewed the known issues section available at https://github.com/christianhaitian/arkos/wiki/Known-issues ?

Describe the Issue (If applicable)
A clear and concise description of what the bug is.
Whenever I try to connect my device to wifi using the wifi dongle that was included with the rg351MP, the entire device freezes completely requiring a full restart, pretty similar to what happened before as you can see here: https://github.com/christianhaitian/arkos/issues/96
In my case, even on the main menu, once I connect the dongle, arkOS gets stuck completely.
How can the issue be reproduced? (If applicable)
Flash and install ArkOS 2.0 in a new RG351MP and try to connect to wifi with the "default" dongle.
What device are you using?
RG351MP
What version of ArkOS are you on?

You can find this during the initial boot process right before the Emulationstation loading screen
2.0

Anything else you'd like to include that may help to review this issue or feature request?
It was working on my first try, I followed the steps to "keep ssh to always remain enabled" and then boom. Stopped working :/

Charging the battery to 100% doesn't fix the issue. I don't have any other dongle so haven't tried "other types" either

You don't state what sd card you're using so I'm assuming it's an authentic Samsung or Sandisk sd card unless you state differently.  It's possible something may have went wrong with the included dongle.  Does work on the stock os without issue?  You can also try a fresh image, then setup your wifi dongle again.  If everything works, make sure to do the OTA updates so you're on the latest updates.  Be sure to do all this with nothing else connected to the otg ports but your wifi dongle.  Not even one of those magnetic charging adapters if you use something like that.

Any update?

Hey Christian! I seem to be running into the same issue that was referenced (96). I'm using a higher quality SanDisk SD card, and I have a dongle and USBC to USB adapter that I'm using to connect to wifi.
The dongle worked perfectly when I used 351elec on my 351p, but if I try to set it up now it freezes. Any thoughts as to why this would be?
I'm at 100% charge, I've reflashed the sd card a handful of times using different softwares on my mac (apple pi baker and balena, but most recent is apple pi baker).

Is this on the 351MP?

This is just the 351p model!

Sorry, I guess it's a slightly wrong channel but the issue is the same 😅

I'm not supporting the 351p so can't help on that one.

repo: christianhaitian/arkos


text:
RG353V Turns on to half chopped white screen

I have 3 RG353's in front of me. I have 3 identical Micro SD cards. 2 of the units boot from any of the 3 SD cards but one will not at all. It does go through the steps of booting with nothing displayed but when it is finished  all I have is a chopped off white screen that eventually turns blue. No text at all is displayed and there is a half inch wide black bar down the side on the left. It will boot from the OE SD card without issue and is fully playable.  it also works in android mode.  also  it never shows the ARKOS splash screen.

Please see here
https://github.com/christianhaitian/arkos/issues/620

Yea sounds like you have a unit with the updated screen.  As RetroGFX posted above, see that issue for how to workaround that issue for now.

It was pinned at the top of the issues page.  Enjoy!

authors: RetroGFX bcantrell427 christianhaitian


text:
Add support for Mantle

The plan is to have Jest support (#2) so we can do full CI/CD pipelines, from linting, to deployment, testing, etc. Mantle covers the deployment element.

Closed by #1


text:
What is the distance score?

Describe the problem
I get the following output:
{'ids': [['id1']], 'distances': [[0.7111215591430664]], 'metadatas': [[{'source': 'my_source'}]], 'embeddings': None, 'documents': [['This is a document']]}

What is this distance? Is it cosine similarity?
Describe the proposed solution
Updated documentation with what the API is returning
Alternatives considered
No response
Importance
i cannot use Chroma without it
Additional Information
No response

By default the distance is L2. We could perhaps amend the api to return a "distance_type". Any other ideas?

Would be great to have distance_type as part of the return.

In the documentation, you'll find three available distance functions: 'L2' (Euclidean Distance), 'Inner Product' (IP), and 'Cosine.' By default, the distance function is set to 'L2.' If you want to change this function, you can do so by specifying it when creating a collection:
 collection = client.create_collection(
        name="collection_name",
        metadata={"hnsw:space": "cosine"} # l2 is the default
    )

Resource : https://docs.trychroma.com/usage-guide#changing-the-distance-function

Hi @HammadB,
I have a question on the same line with this, so I thought to not create another issue.  I used  "hnsw:space": "cosine", in my metadatas dictionary when I created the collection, however, when checking the n_results I can see that n_results are ordered in ascending order where the smallest number comes first. Shouldn't that be done in the reverse order as the results should be ordered with the numbers closest to 1 first? I hope this makes sense. Thanks

The cosine in chroma is 1 - the cosine to preserve the semantic of smaller distance means closer

authors: HammadB georgetanaselea ramsey-coding theHesari

repo: chroma-core/chroma


text:
[ENH]: use ordered writing mode for full-text index creation

Description of changes
The full-text index writer now uses the ordered blockfile mutation mode.
1+ threads call .handle_batch() in parallel, which turns documents into a sorted flat Vec<u128> of encoded token instances. Then, write_to_blockfiles() does a k-merge on the lists of token instances and performs the actual blockfile set() / delete() calls.
Sadly, because we are still fundamentally bottle-necked by the blockfile writer, and because ordered blockfile writing is currently single threaded (possible in theory to make this parallelized in the future as long as the incoming mutations are sorted and larger than the block size), increasing parallelism of handle_batch() doesn't improve throughput that much:

(ignore time/thrpt diffs)
Based on my profiling removing locking from the blockfile writer would give a 10-15% perf bump so it's probably worth doing that in the near future.
Changes:

Removes Chroma's tokenizer abstraction. This was serving no purpose other than adding a layer of indirection and needless clones/buffering. We can add back this layer in the future if necessary, but it seemed unnecessary for now given we are always using Tantivy's ngram tokenizer.
Token frequencies are no longer tracked. I can add them back if necessary, but given that we don't use the frequency data it seemed like an unnecessary perf hit (I think the plan was to use the data to optimize trigram querying? which is no longer necessary in the short-term after my speedups on the querying side).

Test plan
How are these changes tested?

[x] Tests pass locally with pytest for python, yarn test for js, cargo test for rust

Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?
n/a

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#3065  👈
#3043
#3029
#2984
#2961
#2952 : 1 other dependent PR (#2953 )
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @codetheweb and the rest of your teammates on  Graphite

I am little bit hesitant to remove the frequencies, you need them to make the query side more intelligent and if we ever wanted to do that in the future we'd have to special case or backfill.

I am little bit hesitant to remove the frequencies, you need them to make the query side more intelligent and if we ever wanted to do that in the future we'd have to special case or backfill.

Ok, I'll see if there's a way to retain it with minimal perf impact. I think it may be difficult to do so without giving blockfile writers a closure-based writing function like we've discussed before. Without frequencies, there is minimal read IO on the write path. With frequencies, each token requires 1+ binary searches to find a possibly existing value and then needs to perform a write after combining the old and new values.

I am little bit hesitant to remove the frequencies, you need them to make the query side more intelligent and if we ever wanted to do that in the future we'd have to special case or backfill.

Ok, I'll see if there's a way to retain it with minimal perf impact. I think it may be difficult to do so without giving blockfile writers a closure-based writing function like we've discussed before. Without frequencies, there is minimal read IO on the write path. With frequencies, each token requires 1+ binary searches to find a possibly existing value and then needs to perform a write after combining the old and new values. (With a closure API, you could read the old value and perform the update inside a closure on an ordered writer, eliminating the binary searches.)

I think if there is a perf consideration, then lets leave it. We can always special case in the future if we need it and subsequent compactions can rebuild.

authors: HammadB codetheweb


text:
not getting any results back

when I do "curl wttr.in" all I get back is "Follow @igor_chubin for wttr.in updates" and nothing else.
It was working but just now it stopped, and for the last 2 hours it's been like this. Have I broken something?

it will be back in 2 hours 45 minutes (@0:00 UTC).
Out of queries again

authors: christiansacks chubin


text:
Add French translation, first write.

Following #324, here is the French translation I offer :) Please tell me if I missed anything.

Reading your comment in #359, I've added my name so as to fullfil step 5. As for step 4, I am not sure where to find the file translation.py. Is anything missing with this PR?


text:
🛑 17货源 is down

In 4a8d0c2, 17货源 (https://www.17zwd.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 衣联 is back up in 1073df6 after .

repo: chwang-team/status-hao


text:
Split project into library and interface components

In order to improve the ergonomics of integrating DataHarmonizer in downstream projects, I propose making a clearer separation between 1) code for the core components which can be published as a NPM package and 2) the code which builds the interface which users can download and run in their browser locally. Generally speaking this will involve:

Refactoring code to be written using native JS module syntax, eliminating all global variables
Use JS bundling tools to produce the necessary artifacts for the library and the local interface
Use automation tools to perform bundling and publishing as needed

See also: https://github.com/microbiomedata/nmdc-server/issues/623, https://github.com/pkalita-lbl/dh-module-prototype

@ddooley this is just to track the work we talked about with Mark and Brandon yesterday. I don't have permission to assign to myself, but please feel free to set me as the assignee!

Great, you are on!  For the wider audience, we were discussing how to be able to have DataHarmonizer take advantage of ES6 modules, but at the same time have a local file browser (no server) product as part of a build process - something ES6 modules can't do as they require a web server context.  As well, a dev environment that allows more flexibility in calling up user interface components, and in real-time code testing.

authors: ddooley pkalita-lbl

repo: cidgoh/DataHarmonizer


text:
Test reliability: Retry produce on retriable broker errors

This should fix this failure:
ERROR: afkak.test.test_consumer_integration.TestConsumerIntegration.test_consumer_restart
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/internet/defer.py", line 151, in maybeDeferred
    result = f(*args, **kw)
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/internet/utils.py", line 201, in runWithWarningsSuppressed
    reraise(exc_info[1], exc_info[2])
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/internet/utils.py", line 197, in runWithWarningsSuppressed
    result = f(*a, **kw)
  File "/home/travis/build/ciena/afkak/afkak/test/testutil.py", line 88, in wrapper
    return func(self)
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/nose/twistedtools.py", line 143, in errback
    failure.raiseException()
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/python/failure.py", line 491, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/home/travis/build/ciena/afkak/afkak/test/test_consumer_integration.py", line 191, in test_consumer_restart
    sent_messages = yield self.send_messages(self.partition, range(0, 100))
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/internet/defer.py", line 1416, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/python/failure.py", line 491, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/home/travis/build/ciena/afkak/afkak/test/test_consumer_integration.py", line 48, in send_messages
    resp, = yield self.client.send_produce_request([produce])
  File "/home/travis/build/ciena/afkak/.tox/py27-int-snappy-murmur/lib/python2.7/site-packages/twisted/internet/defer.py", line 1418, in _inlineCallbacks
    result = g.send(result)
  File "/home/travis/build/ciena/afkak/afkak/client.py", line 465, in send_produce_request
    returnValue(self._handle_responses(resps, fail_on_error, callback))
  File "/home/travis/build/ciena/afkak/afkak/client.py", line 566, in _handle_responses
    _check_error(resp)
  File "/home/travis/build/ciena/afkak/afkak/common.py", line 774, in _check_error
    raise error
UnknownTopicOrPartitionError

Seen on this build of #46.

repo: ciena/afkak


text:
Check unsafe.Pointer use with go 1.14 -d=checkptr compiler option

The upcoming Go 1.14 release will include -d=checkptr as a compile-time option for adding instrumentation to check that Go code is following unsafe.Pointer safety rules dynamically. This might help in finding problematic uses of unsafe.Pointer in Cilium's code base, e.g. causing memory corruption.
This option should probably not be enabled by default, but could e.g. be run as part of CI.
Also see https://tip.golang.org/doc/go1.14#compiler for details.
/cc @brb

I also started checking our dependencies and sent some PRs already:

vishvananda/netlink#523 (re-vendored by #10138)
fsnotify/fsnotify#325

Probably more to come.

@tklauser Cool, have you already tried compiling with checkptr cilium-agent?

@brb not yet, so far I only ran it with the tests. Will try cilium-agent next.

authors: brb tklauser

repo: cilium/cilium


text:
vxlan + IPsec - can Cilium to integrate with Wireguard instead

since wireguard has entered into Linux kernel v5.6, will cilium integrate it to replace vxlan + IPsec for high security and performance? Wireguard uses public key as identity of tunnel endpoints that allow tunnel-IPs and tunnel-endpoint-IP to change dynamically.
from https://www.wireguard.com/#cryptokey-routing, it says:
when sending packets, the list of allowed IPs behaves as a sort of routing table, and when receiving packets, the list of allowed IPs behaves as a sort of access control list.
This is what we call a Cryptokey Routing Table: the simple association of public keys and allowed IPs.
Any combination of IPv4 and IPv6 can be used, for any of the fields. WireGuard is fully capable of encapsulating one inside the other if necessary.
Because all packets sent on the WireGuard interface are encrypted and authenticated, and because there is such a tight coupling between the identity of a peer and the allowed IP address of a peer, system administrators do not need complicated firewall extensions, such as in the case of IPsec, but rather they can simply match on "is it from this IP? on this interface?", and be assured that it is a secure and authentic packet. This greatly simplifies network management and access control, and provides a great deal more assurance that your iptables rules are actually doing what you intended for them to do.
for example, the orignal config file for node1:
[Interface]
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820 # listen on node1's IP

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 10.192.124.0/24   # Pod IP cidrs
Endpoint = 192.95.5.2:51820 # node2's node IP

[Peer]
PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0=
AllowedIPs = 10.192.125.0/24  # Pod IP cidrs
Endpoint = 192.95.5.3:51820 # node3's node IP

could be changed to:
[Interface]
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820 # listen on node1's IP

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 10.192.124.0/24  # Pod IP cidrs
Endpoint = 10.4.0.1:12345 # clusterIP:port
# cilium to load-balance clusterIP to 192.95.5.2:51820 and 192.95.5.3:51820

[Peer]
PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0=
AllowedIPs = 10.192.125.0/24  # Pod IP cidrs
Endpoint = 10.4.0.1:12345 # clusterIP:port
# cilium to load-balance clusterIP to 192.95.5.2:51820 and 192.95.5.3:51820

Please see #7519. Wireguard support is currently planned for v1.8 or v1.9.

To avoid having many issues tracking the same underlying feature request, I will close this and mark as duplicate. If you have any further insights or even just want to :+1: the issue #7519, please follow up on that thread.

authors: divfor joestringer pchaigno


text:
Inconsistency when adding fromCIDR rule under CiliumClusterwideNetworkPolicy

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
There's an inconsistent behavior when adding fromCIDR rule in combination with other rules e.g. entity-based rules.
Since entries from CIDRs are sources that are not managed by Cilium, when such entries are added, Cilium creates Identities/IP list and labels for those sources that it uses internally for policy matching.
Issue is, when modifying those rules  it goes into inconsistent state where it cannot sync Identities/IPs against all those fromCIDR sources which ultimately halts the whole policy or atleast for those CIDR based rules.
One way to work around this is by recreating the whole policy so is able to re-create those identities.
We have been also able to come over this issue by moving the entity-based at the bottom of the policy and let it sync again.
The issue can be seen if ran cilium identity list  which will be missing all or some CIDR entries.
There is also a "404 not found error" seen when running cilium ip list  which is basically cilium trying to find identity for one of those CIDR that it has some record stuck but cannot be found.
Cilium Version
1.14.0
Kernel Version
4.18.0-372.57.1.el8_6.x86_64
Kubernetes Version
v1.26.3
Sysdump
cilium-sysdump-20230801-104512.zip
Relevant log output
404 error during inconsistent state

root@immense-wasp:/home/cilium# cilium ip list
Error: Cannot get identity for given ID <nil>: [GET /identity/{id}][404] getIdentityIdNotFound

### Anything else?

_No response_

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct

I am actually having this same issue.  I think it may be related to these as well:

https://github.com/cilium/cilium/issues/27210
https://github.com/cilium/cilium/issues/27169

Thanks for the report, I believe that this is the same issue as #27210. I've proposed some next steps to confirm a fix for that issue. Feel free to try these out as well: https://github.com/cilium/cilium/issues/27210#issuecomment-1666958009

authors: joestringer jwitko thunko


text:
CI: v1.12: Suite-k8s-1.20.K8sServicesTest Checks E/W loadbalancing (ClusterIP, NodePort from inside cluster, etc) with L4 policy Tests NodePort with L4 Policy

Test Name
Suite-k8s-1.20.K8sServicesTest Checks E/W loadbalancing (ClusterIP, NodePort from inside cluster, etc) with L4 policy Tests NodePort with L4 Policy

Failure Output
FAIL: Request from testclient-2jng4 pod to service tftp://[fd04::11]:32411/hello failed

Stack Trace
Expected command: kubectl exec -n default testclient-2jng4 -- /bin/bash -c 'fails=""; id=$RANDOM; for i in $(seq 1 10); do if curl --path-as-is -s -D /dev/stderr --fail --connect-timeout 5 --max-time 20 tftp://[fd04::11]:32411/hello -H "User-Agent: cilium-test-$id/$i"; then echo "Test round $id/$i exit code: $?"; else fails=$fails:$id/$i=$?; fi; done; if [ -n "$fails" ]; then echo "failed: $fails"; fi; cnt="${fails//[^:]}"; if [ ${#cnt} -gt 0 ]; then exit 42; fi'
To succeed, but it failed:
Exitcode: 42
Err: exit status 42

Standard Output
Stdout:

	 Hostname: testds-g4wqz

	 Request Information:
	 	client_address=fd04::11
	 	client_port=18413
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/2 exit code: 0

	 Hostname: testds-ts8fl

	 Request Information:
	 	client_address=fd02::175
	 	client_port=45318
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/3 exit code: 0

	 Hostname: testds-g4wqz

	 Request Information:
	 	client_address=fd04::11
	 	client_port=6535
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/4 exit code: 0

	 Hostname: testds-g4wqz

	 Request Information:
	 	client_address=fd04::11
	 	client_port=28647
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/5 exit code: 0

	 Hostname: testds-g4wqz

	 Request Information:
	 	client_address=fd04::11
	 	client_port=54589
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/6 exit code: 0

	 Hostname: testds-ts8fl

	 Request Information:
	 	client_address=fd02::175
	 	client_port=33226
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/7 exit code: 0

	 Hostname: testds-ts8fl

	 Request Information:
	 	client_address=fd02::175
	 	client_port=44629
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/8 exit code: 0

	 Hostname: testds-g4wqz

	 Request Information:
	 	client_address=fd04::11
	 	client_port=57976
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/9 exit code: 0

	 Hostname: testds-ts8fl

	 Request Information:
	 	client_address=fd02::175
	 	client_port=46368
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 3799/10 exit code: 0
	 failed: :3799/1=71

Standard Error
Stderr:
 	 command terminated with exit code 42

Resources

Jenkins URL: https://jenkins.cilium.io/job/Cilium-PR-K8s-1.20-kernel-4.9/324/testReport/junit/Suite-k8s-1/20/K8sServicesTest_Checks_E_W_loadbalancing__ClusterIP__NodePort_from_inside_cluster__etc__with_L4_policy_Tests_NodePort_with_L4_Policy/
ZIP file(s): Uploading dcb25ab5_K8sServicesTest_Checks_E-W_loadbalancing_(ClusterIP,_NodePort_from_inside_cluster,_etc)_with_L4_policy_Tests_NodePort_with_L4_Policy.zip…

Anything else?
No response

Another hit here
K8sDatapathServicesTest Checks N/S loadbalancing With host policy
  Tests NodePort

...

FAIL: Request from testclient-hft7g pod to service tftp://[fd00:10:96::3dba]:10069/hello failed
Expected command: kubectl exec -n default testclient-hft7g -- /usr/bin/env bash -c 'fails=""; id=$RANDOM; for i in $(seq 1 10); do if curl --path-as-is -s -D /dev/stderr --fail --connect-timeout 5 --max-time 20 tftp://[fd00:10:96::3dba]:10069/hello -H "User-Agent: cilium-test-$id/$i"; then echo "Test round $id/$i exit code: $?"; else fails=$fails:$id/$i=$?; fi; done; if [ -n "$fails" ]; then echo "failed: $fails"; fi; cnt="${fails//[^:]}"; if [ ${#cnt} -gt 0 ]; then exit 42; fi'
To succeed, but it failed:
Exitcode: 42
Err: exit status 42
Stdout:

	 Hostname: testds-mr27t

	 Request Information:
	 	client_address=fd02::e
	 	client_port=36751
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/1 exit code: 0

	 Hostname: testds-mr27t

	 Request Information:
	 	client_address=fd02::e
	 	client_port=45577
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/2 exit code: 0

	 Hostname: testds-k8pmk

	 Request Information:
	 	client_address=fd02::e
	 	client_port=55441
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/3 exit code: 0

	 Hostname: testds-k8pmk

	 Request Information:
	 	client_address=fd02::e
	 	client_port=46686
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/4 exit code: 0

	 Hostname: testds-k8pmk

	 Request Information:
	 	client_address=fd02::e
	 	client_port=57444
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/5 exit code: 0

	 Hostname: testds-mr27t

	 Request Information:
	 	client_address=fd02::e
	 	client_port=37049
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/6 exit code: 0

	 Hostname: testds-mr27t

	 Request Information:
	 	client_address=fd02::e
	 	client_port=[572](https://github.com/cilium/cilium/actions/runs/7384604202/job/20087890519#step:16:574)57
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/7 exit code: 0

	 Hostname: testds-mr27t

	 Request Information:
	 	client_address=fd02::e
	 	client_port=33496
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/9 exit code: 0

	 Hostname: testds-mr27t

	 Request Information:
	 	client_address=fd02::e
	 	client_port=45600
	 	real path=/hello
	 	request_scheme=tftp

	 Test round 314/10 exit code: 0
	 failed: :314/8=71

Stderr:
 	 command terminated with exit code 42

Full logs
Sysdump

Another hit from https://github.com/cilium/cilium/pull/31157
Jenkins URL: https://jenkins.cilium.io/job/Cilium-PR-K8s-1.23-kernel-4.19/689/testReport/junit/Suite-k8s-1/23/K8sDatapathServicesTest_Checks_E_W_loadbalancing__ClusterIP__NodePort_from_inside_cluster__etc__with_L4_policy_Tests_NodePort_with_L4_Policy/
ZIP file: d00f5ae7_K8sDatapathServicesTest_Checks_E-W_loadbalancing_(ClusterIP,_NodePort_from_inside_cluster,_etc)_with_L4_policy_Tests_NodePort_with_L4_Policy.zip

Hit this here: https://github.com/cilium/cilium/actions/runs/8330407882/job/22795552306, seems to be happening more recently.
The return code (failed: :314/8=71) means that curl is returning with error CURLE_TFTP_ILLEGAL.

From the output above:

	 Request Information:
	 	client_address=fd02::e
	 	client_port=[572](https://github.com/cilium/cilium/actions/runs/7384604202/job/20087890519#step:16:574)57
	 	real path=/hello
	 	request_scheme=tftp

Very interesting client_port value here 🤔


text:
eBPF policy map representation of allow-all as "reserved:unknown" is confusing

Is there an existing issue for this?

[x] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
If I install Cilium and follow the Getting Started with the Star Wars demo guide, then dump the bpf policy map for an endpoint on the node, it looks something like this:
root@kind-control-plane:/home/cilium# cilium-dbg bpf policy get 112
POLICY   DIRECTION  LABELS (source:key[=value])       PORT/PROTO   PROXY PORT   AUTH TYPE  BYTES  PKTS
Allow    Ingress     reserved:host                     ANY          NONE         disabled    0     0
                      ...
Allow    Ingress     k8s:app.kubernetes.io/name=deathstar 80/TCP    NONE         disabled    0     0
                      ...
Allow    Ingress     k8s:app.kubernetes.io/name=tiefighter 80/TCP   NONE         disabled    2088  2
                    ...
Allow    Egress      reserved:unknown                  ANY          NONE         disabled    0     0

The final rule in this line states that the labels for the egress allow-all entry is reserved:unknown. This is because the underlying data value is 0, and the security identity string representation for this identity is reserved:unknown.
How can we reproduce the issue?

Install Cilium
Follow the star wars demo guide https://docs.cilium.io/en/stable/gettingstarted/demo/#starwars-demo
Use cilium endpoint list to locate the security identity of one of the "empire" Pods
Use cilium bpf policy get ... with the security identity from (3) to list the policies.

Cilium Version
Any
Kernel Version
Any
Kubernetes Version
Any
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
When formatting BPF policymap entries like this, it would be more consistent and clearer to understand if the LABELS column instead said ANY, similar to the PORT/PROTO column.
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

[x] I agree to follow this project's Code of Conduct

I think that the string representation of Security Identity 0 as "unknown" makes a lot of sense for other commands and hubble/monitor output, but for policymaps it doesn't make sense.


text:
Replace k8s client usage with native http client

Should dramatically reduce binary size and build time.

I check the whole code and we use plenty of features and structures the k8s client offers:

*k8s.io/client-go/1.5/pkg/apis/extensions/v1beta1.NetworkPolicy
k8s.io/client-go/1.5/pkg/kubelet/types.KubernetesContainerNameLabel
k8s.io/client-go/1.5/pkg/kubelet/types.GetPodNamespace
k8s.io/client-go/1.5/pkg/kubelet/types.GetPodName
*k8s.io/client-go/1.5/tools/cache.NewInformer
*k8s.io/client-go/1.5/pkg/api/v1

.

contains the k8s NetworkPolicy structure.
contains the label const that is used in the container runtime to identify the container.
Is a function that returns the podnamespace from a list of labels.
Is a function that returns the podname from a list of labels.
Is used to retrieve events from the kube-apiserver whenever a new Network Policy, Service, Endpoints or Ingress is Added, Updated, or Deleted from the kube-apiserver.
Contains all the structures' spec that we list for changes in 5)

The ones marked with * can't be replaced as the work to maintain the code will be higher than just use the go-client libraries.
I've check a kubecon talk about the go-client, and there is 3 ways to listen for object changes:

With your own client
With cache.NewInformer
With k8s go-client and do an infinite for loop for each time you receive a new object change

The 3) was the on used presented in the talk but unfortunately that code had a concurrency  problem since you could lose object changes events between for loops. I talked with the presenter at the end of the talk and he agreed that cache.NewInformer solves that issue.
I'll see if a recent client-go library helps with this issue but I strongly discourage replacing the client-go client with native http client since it could create bugs that bite us in the future.

It may not be required to replace all uses of go-client packages but the current derived dependencies is not acceptable. What are your actual concerns in terms of bugs? The current binding to head of go-client is definitely not a long term solution.

but the current derived dependencies

Which derived dependencies are you talking?

We can try this although it might need to change some of code as the client methods aren't the same.
Although we could do a wrapper so we can easily replace between clients. https://github.com/ericchiang/k8s

authors: aanm tgraf


text:
Add DaoCloud spiderpool & merbridge as Cilium user

Please ensure your pull request adheres to the following guidelines:

[x] For first time contributors, read Submitting a pull request
[x] All code is covered by unit and/or runtime tests where feasible.
[x] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[x] All commits are signed off. See the section Developer’s Certificate of Origin
[x] Provide a title or release-note blurb suitable for the release notes.
[x] Thanks for contributing!

Fixes: NA
None

Hi @pacoxu :wave:
Thanks for the pull request! We'll just need a sign-off as per MLH's message above and we should be good to go.

Hi @pacoxu 👋 Thanks for the pull request! We'll just need a sign-off as per MLH's message above and we should be good to go.

Updated.

Thanks for the addition @pacoxu 🐝 !

authors: pacoxu pchaigno xmulligan


text:
ci: use Ariane to trigger workflows

Ariane is a new GitHub App intended to trigger Cilium CI workflows based on trigger phrases commented in pull requests, in order to replace the existing issue_comment-based workflows and simplify our CI stack.
Ariane uses workflow_dipatch events to trigger workflows based on trigger phrases found in PR comments (e.g. /test). Effectively, this commit reworks all issue_comment-based workflows to use workflow_dipatch instead.
In order to continue testing changes coming from the PR in a secure fashion as we did with issue_comment, workflow_dipatch-based workflows implement a similar principle to what we used to have before:

The workflows run in the context of the PR target branch (e.g. main) and thus are using workflow files from a trusted source while having access to repository secrets.
The PR branch itself is tested by deploying the images built off the PR in ephemeral self-contained environments (e.g. a short-lived cluster).

In effect, from the point of view of external contributors, there will be no change in how the CI works and how they interact with it.
However, this change brings a good number of QoL advantages:

As can be seen in the diffs, most of the boilerplate we used to have for handling triggers and detecting whether or not this specific workflow should run based on the PR changelist is gone, therefore reducing maintenance drag on workflows.
Building up on this, when it is determined that a workflow does not need to be run at all based on the PR changelist, the corresponding PR check will automatically be marked as Skipped, so that the PR is not blocked due to missing a required PR check. (We had some workflows with boilerplate addressing this by manually marking the check as OK, but this is now handled consistently for all workflows and using the proper Skipped status, which wasn't possible with the previous boilerplate.)
For contributors with write privileges to the repository, Ariane will transparently run workflows in the context of the PR branch instead of the context of the PR target branch. This allows easy testing of changes to workflow files directly from a PR without any edit tricks.
Since the GitHub App is able to determine properly in which context to run pipelines, we can store the workflow files directly in the proper branch (e.g. stable workflows will live in stable branches). This will greatly simplify backport duties:

No need to maintain multiple sets of workflows with some being duplicated in main and some living in the appropriate branches, now everything is stored in the same place.
Changes made to backport workflows can be tested without even more cumbersome workflow edit tricks than the ones regular workflows already required.

There is now immediate feedback that "something" is happening when /test is commented, since Ariane will react to the comment to ack on the request.

Additional commit notes:

This refactor standardized commit status reporting at the beginning and end of all workflows using myrotvorets/set-commit-status-action instead of Sibz/github-status-action, since the former allows for less boilerplate. Going forward we plan to find a way to remove that boilerplate as well via the GitHub App.
We had to move back to regular secret-based authentication on AKS as the OIDC subject claims currently available on AKS do not allow for authorizing arbitrary branches. Microsoft is aware of this limitation and a new system is being worked on to allow it (see 1), we will move back to OIDC when it is rolled out.

/ariane-test

/ariane-test

/ariane-test

/ariane-test

/ariane-test

/ariane-test

/ariane-test

All the reworked CI workflows are passing, here is an example to one of the working runs based on the new workflow_dispatch event: https://github.com/cilium/cilium/actions/runs/5414079403
I will now split this PR into multiple PRs:

The current PR will keep all changes to main workflows, as well as the Ariane configuration file for main, and will remove all stable workflows from the main branch.
One PR will be made for each stable branch, with the workflows and Ariane configuration for that stable branch.

/ariane-test

Reviews from @bimmlerd @jschwinger233 have been requested as CODEOWNERS respectively on /.github/ and /.github/workflows/*datapath*.yaml, but these reviews are not actually required since these changes do not make any contributing nor datapath changes. We only make changes relevant for github-sec and ci-structure.

/ariane-test

Do I need any more street cred or am I gucci?

Warning
Important note to merger: this PR and all related backport PRs must be merged at the same time to avoid issues.

https://github.com/cilium/cilium/pull/26578
https://github.com/cilium/cilium/pull/26579
https://github.com/cilium/cilium/pull/26580

I will try to list the implications of merging them:

Required PR checks:

main should not need to be adjusted (except if maybe we want to re-mark ci-aks and ci-gke as required).
All stable branches need to be adjusted. The general idea is that all the existing ci-{foo}-1.XX checks need to be removed, and their corresponding ci-{foo} check need to marked as required instead.

1.11:

Conformance AWS-CNI (ci-awscni)
ConformanceEKS (ci-eks)
External workloads (ci-external-workloads)
ConformanceGKE (ci-gke)
ClusterMesh (ci-multicluster)
Cilium L4LB XDP (ci-l4lb)

1.12:

Same checks as 1.11 above, and also
ConformanceAKS (ci-AKS)

1.13:

Same checks as 1.12 above

Outstanding PRs targeting main:

If PR branch comes from a fork, should not need to rebased to be able to use /test.
If PR branch comes from upstream, will need to be rebased to use /test.

If it's a PR making changes to main workflows, rebasing may induce shenanigans. I'm happy to help.
If it's a PR making changes to stable workflows, rebasing will not be possible. The PR should be closed and instead rebased and re-opened against the appropriate stable branch, which may induce shenanigans again. I'm happy to help as well.

DataStudio test results monitoring:

All workflows will now only use the same workflow file and workflow name on all branches, instead of being split over multiple workflow files with different workflow names based on the branch. The differentiating factor is now the branch triggering the workflow. DataStudio filters should be adjusted accordingly.

I missed suggesting it on the PR, but was reminded by https://github.com/cilium/cilium/pull/26653 - Could/should we document the Ariane setup in the repo?

Yes, the CI documentation is in sore need of an overhaul... 😢 I will try to make some time for it.

authors: bimmlerd nbusseneau


text:
Avoid requiring the latest Go toolchain patch version to build

Forcing developers to change their local toolchain within patch releases
introduces more problems than it's worth. Remove the automatic go.mod
update and don't require newer patch releases of the latest Go version.
Related: https://github.com/cilium/cilium/pull/27820
Related: https://github.com/golang/go/issues/63522

Wild assertion from my side but from the upstream issue it looks like Cilium is the unusual one here in forcing the minimum toolchain version to follow the latest patch release. If we're updating this by patch releases for a specific reason, then please bring those issues up. Otherwise I think we can just manually bump this version when Cilium starts using stdlib features that require a new minor release of Go, rather than tracking patch releases.
As I understand this should only impact developers, as the actual toolchain used to build Cilium is updated through the dockerfiles. As such, any builds from the CI or for release should be up-to-date for the latest Go patch version.

Oh, and if there's some other syntax for Renovate to convince it to only bump for minor versions then I'm open to that as well. It's probably worthwhile to ensure that developer toolchains match the minor version of the toolchain being used to build production images.

/test

/test


text:
debuginfo: run cilium endpoint health for each endpoint

Also removes unneeded per-endpoint calls to some bpf CLI commands.  Calls to cilium bpf endpoint list, cilium bpf lb list, and cilium bpf tunnel list are unnecessary to do per-endpoint, as they unconditionally dump the contents of their corresponding maps regardless of if the endpoint ID is provided as an argument or not. In other words, running the command for each endpoint will result in the same output. Furthermore, these commands are already part of cilium-bugtool, so just remove them from cilium debuginfo.
Signed-off by: Ian Vernon ian@cilium.io
Fixes: #3757

test-me-please


text:
protect bpf.PerfEvent.Read from infinite loop

Supersedes: https://github.com/cilium/cilium/pull/5827
Infinite loop in Read can be caused by corrupted data in perf ring
buffer.
If the timeout in Read loop is reached, perf event is logged for
further debugging.
Signed-off-by: Maciej Kwiek maciej@covalent.io
Fixes: #5826

This change is

test-me-please

@tgraf can you fold this in as well?
diff --git a/pkg/bpf/perf.go b/pkg/bpf/perf.go
index f3841c9..d3372ca 100644
--- a/pkg/bpf/perf.go
+++ b/pkg/bpf/perf.go
@@ -110,6 +110,16 @@ static inline void perf_write_tail(struct perf_event_mmap_page *up,
 	up->data_tail = data_tail;
 }

+void perf_event_reset_tail(void *_page)
+{
+	struct perf_event_mmap_page *up = _page;
+	uint64_t data_head = perf_read_head(up);
+
+	// Reset tail to good known state aka tell kernel we've
+	// consumed all data.
+	perf_write_tail(up, data_head);
+}
+
 int perf_event_read_init(int page_count, int page_size, void *_page,
 			 void *_state)
 {
@@ -443,6 +453,7 @@ read:
 		select {
 		case <-timer:
 			err(e)
+			C.perf_event_reset_tail(unsafe.Pointer(&e.data[0]))
 			break read
 		default:
 		}

test-me-please

test-me-please

authors: borkmann tgraf


text:
cilium: encrypt, wildcard src out policy rules

Encryption policy rules in xfrm are already restricted by the mark
value which is set by BPF program. This ensures we do not have
hits in the table for local traffic, loops, etc. and only encrypt
traffic as expected from the BPF datapath.
However, the policy rules for outgoing traffic for node to node
traffic additionally specify the rule with source IP. This means
only traffic to a remote node with the source node set to the
local node get encrypted. If a pod sends traffic to a remote node
the source IP will be the pod IP and not the node IP so the policy
rule will not match and the packet will not be encrypted.
To fix this wildcard the source IP in the policy rule so any
traffic with the encrypt mark (0xe00) set being sent to the remote
node will be encrypted.
Fixes: 47bd875512770 ("cilium: encrypt, use ipcache to lookup IPsec destination IP")
Signed-off-by: John Fastabend john.fastabend@gmail.com

This change is

Coverage decreased (-0.007%) to 41.854% when pulling ec03377f10d19869aa44f5c0fc66816b47f8e881 on xfrm-default-src-wcard into a03c33a592e3c4a4933f6a951b3b0de3161af8fb on master.

test-me-please

authors: coveralls jrfastab


text:
build(deps): bump golang.org/x/sys from 0.5.0 to 0.6.0

Fixes #790

Apologies for the delay in replying to this, but it seems that renovate already updated this: https://github.com/cilium/tetragon/blob/47fba01fef79a994885306372b833e237f3157e4/go.mod#L41.
I'll close the PR.
Thanks!

authors: YTGhost kkourt

repo: cilium/tetragon


text:
可以做多级菜单吗

抱歉，不明白你的意思。

not yet! 未来也不会支持所谓的无限级。

authors: cipchk zhengyanghuaer

repo: cipchk/ng-alain


text:
Update sbt to 1.9.3

About this PR
📦 Updates org.scala-sbt:sbt from 1.9.2 to 1.9.3
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-sbt", artifactId = "sbt" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, version-scheme:early-semver, commit-count:1

Codecov Report
Patch coverage has no change and project coverage change: -0.08 :warning:

Comparison is base (92fa934) 95.31% compared to head (d774f5a) 95.23%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #388      +/-   ##
==========================================
- Coverage   95.31%   95.23%   -0.08%
==========================================
  Files           6        5       -1
  Lines          64       63       -1
  Branches        4        4
==========================================
- Hits           61       60       -1
  Misses          3        3

Flag
Coverage Δ

2.12.18
95.23% <ø> (ø)

2.13.11
?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

authors: codecov-commenter scala-steward

repo: circe/circe-config


text:
Nodejs programmatic api

Is there an api that I can use to pass some code through and it will minify it via nodejs.

You can use UhlifyJS2 or Babili

license: isc


text:
Python unable to detect lzma in Ubuntu images

I hit an error similar to the following in the Ubuntu 16.04 and Ubuntu 20.04 images: https://github.com/pandas-dev/pandas/issues/27532. I believe this problem occurs because Python is installed prior to the installation of the xz and liblzma-dev packages. The workaround is to run pyenv uninstall -f 3.6.10 and pyenv install 3.6.10 (or whatever the Python version is in the image) in my CI jobs. Would be nice if the ordering could be fixed without causing other problems.
To reproduce the problem:
pyenv global 3.6.10
python3 -m venv /tmp/no-lzma
export PATH=/tmp/no-lzma/bin:${PATH}
pip install torchvision==0.8.1
python -c "import torchvision"

To demonstrate the workaround:
pyenv uninstall -f 3.6.10
pyenv install 3.6.10
pyenv global 3.6.10
python3 -m venv /tmp/no-lzma
export PATH=/tmp/no-lzma/bin:${PATH}
pip install torchvision==0.8.1
python -c "import torchvision"

3.6.10 is the Python version in the Ubuntu 16.04 image. I had the same experience with Python 3.8.5 in an Ubuntu 20.04 image.

I hit an error similar to the following in the Ubuntu 16.04 and Ubuntu 20.04 images

Which images are you referring to? It looks like the Python images are based on Debian.
Are you talking about the machine images? https://circleci.com/docs/2.0/configuration-reference/#available-machine-images

I hit an error similar to the following in the Ubuntu 16.04 and Ubuntu 20.04 images

Which images are you referring to? It looks like the Python images are based on Debian.
Are you talking about the machine images? https://circleci.com/docs/2.0/configuration-reference/#available-machine-images

Yes, sorry, machine images. I've specifically done this with ubuntu-2004:202010-01 and ubuntu-1604:202004-01.

Yes, sorry, machine images. I've specifically done this with ubuntu-2004:202010-01 and ubuntu-1604:202004-01.

fyi, this issue is now resolved in the latest images ubuntu-2004:202101-01
You can verify with this config
version: 2.1

jobs:
  sample:
    machine:
      image: ubuntu-2004:202010-01
    steps:
      - run:
          name: load latest
          command: |
            python3 -c 'import lzma; print(dir(lzma))'
  sample-latest:
    machine:
      image: ubuntu-2004:202101-01
    steps:
      - run:
          name: load latest
          command: |
            python3 -c 'import lzma; print(dir(lzma))'

workflows:
  main:
    jobs:
      - sample  # this one fails
      - sample-latest  # this one passess

authors: dsayling mackrorysd ryanwohara

repo: circleci/circleci-images


text:
Option to split pages in reverse order

Hello, 1st of all thanx for this awesome software, i would like to sugest that the option to split double pages could have a secondary mode, so that the splited pages are ordered with the right half before the left one, to follow asian right to left read order.

Order of split is controlled my manga mode.

authors: AcidWeb lordekeen

repo: ciromattia/kcc

license: ISC


text:
Add frequent partners to config file for Defender 2.3

🗣 Description

Assert that frequent partner domains are added to impersonation protection in both the standard and strict preset policies.
Closing #490
💭 Motivation and context

Defender 2.3 specifies that "frequent partners" should be added to the strict preset EOP policy. By allowing the users to specify these in the config file, we can verify the correct domains are added.
🧪 Testing

Unit Testing

✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All future TODOs are captured in issues, which are referenced
in code comments.
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[x] Tests have been added and/or modified to cover the changes in this PR.
[x] All new and existing tests pass.

✅ Pre-merge checklist

[ ] Revert dependencies to default branches.
[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

@nanda-katikaneni ready to merge

repo: cisagov/ScubaGear


text:
Change tickets query to include newly-created tickets

🗣 Description
This PR modifies the CyHy tickets query to include new tickets opened during the specified time period, in addition to those modified during the time period.

[!NOTE]
Since this repo has not yet been re-skeletonized (see #48) and is not yet using lineage, I added the following commits to get it to successfully pass our linting checks:

e5de9adc6489f67598ad3903e1b895984f63542d
6f5c9457cd3f708ded99e0be304ab293f916efe4
1128380858f6772658b51655bfae168b4d886e60
(more coming soon - stay tuned)

💭 Motivation and context
Before this change, it was possible for a ticket to be created within the time period, but modified shortly after the end of the time period, and thus would not be included in the output.  This change corrects that situation, which was not desired.
Our analysts noticed in Production that a new ticket was missing from the daily extract, which prompted this change.

🧪 Testing
To test this change, I made a modified version of aws_jobs/cyhy-data-extract.py that only ran the old tickets query and the new tickets query and provided a list of tickets that were retrieved by the new query, but not the old one.  I then spot-checked a bunch of those tickets to ensure that they looked as expected (i.e. the ticket was created during the time period, but it's last_modified timestamp was after the time period).  All of the tickets I checked successfully met that criteria, so I believe this change is correctly implemented.

✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All new and existing tests pass.

I think this PR requires some of the changes from cisagov/skeleton-python-library#124 to pass the linter checks.

I think this PR requires some of the changes from cisagov/skeleton-python-library#124 to pass the linter checks.

Yup, working on it (I updated the PR description above to mention this).

I think this PR requires some of the changes from cisagov/skeleton-python-library#124 to pass the linter checks.

Yup, working on it (I updated the PR description above to mention this).

Linting now passes.  @jsf9k, please take another quick look just to make sure all is well.

I manually deployed the updated cyhy-data-extract.py file to production so that we don't have to do a full redeployment of the database instance.  I will review the logs tomorrow morning to look for any unexpected errors in the daily extract process.

repo: cisagov/cyhy-feeds


text:
Connect cyhy customer db to encrypt and embed pdf reports.

💡 Summary
Update the "report_generator.py" scripts to include a function "generate_reports" that coordinates the P&E Report process.
Motivation and context
This is a key feature to securely deliver encrypted reports to Posture and Exposure customers.
Implementation notes
Please provide details for implementation, such as:

Create function "generate_reports" to include the following:
Connect to the cyhy database.
Gathers customer information based on customer ID.
Builds the reports.
Embed raw data into the pdf output.
Encrypts the pdfs.

Acceptance criteria
How do we know when this work is done?

[x] Produce P&E Report with no errors.
[x] Output is encrypted.
[x] Validate report data.
[x] Review and ensure reports can be sent using current mailer scripts.

@elr64 can you verify and make sure that the next set of reports are sent using the mailer script?

@cduhn17 I switched assignments on this one as it will be included to the current PR we are trying to get merged. https://github.com/cisagov/pe-reports/pull/33

@schmelz-ctr ,
Is there any code started from elr64? That we are aware of, is there an encryption method "dev standard" that is recommended?

@schmelz-ctr ,
Is there any code started from elr64? That we are aware of, is there an encryption method "dev standard" that is recommended?

@cduhn17 - It is already in the code leveraging the package fitz the following function in ss-working-test branch.
def embed_and_encrypt()
There is no action on this, just tracking it at this point - gets introduced on that merge.

repo: cisagov/pe-reports


text:
"Snap" log file names to 10 minute boundaries

Right now log file names are based on the moment the sinkhole was started and rotate every 10 minutes after that.  This produces names like:
sinkhole-2017-05-30-22-14-43.log
Instead we should snap logging into files that fall on 10 minute boundaries for the hour like
12:00:00
12:10:00
12:20:00
....
This will require a minor re-work of the timer to instead be a loop checking time.Now() and doing some basic rounding / modular arithmetic.  Then we could just drop seconds from the filename altogether.  The code protected by the mutex that closes the old file and opens a new one doesn't really have to change, just the name creation code needs to change.

Done and committed in 3d414eb7e9b4a497dc91a8a77e2236084165be66

repo: ciscocsirt/netsarlacc


text:
Adding onBlur event next to onChange event

Is your feature request related to a problem? Please describe.
In the previous version I was using validators property of superForm() to add some custom validations for multiple fields where I was setting the errors using i18n.
Now I can't do that anymore on onblur, but only within onChange event, which is not an option.
Basically I need to add custom field validations outside the adapters and I cannot mix the i18n with zod or any other adapter because I cannot use localized string when I create the schema to validate the fields on blur, as it should normally work.
I dont want to use the deprecated superformClient.
Describe the solution you'd like
I would need an onBlur event to have the same destructed event like onChange (or something similar), so I can create custom validations for each field, but onblur.
In the previous version, validators supported adding separate error messages for the fields and I need to keep that.
Describe alternatives you've considered
I have tried using the validationMethod: 'onblur' and validators: zod(createProjectSchema) which works perfectly, but as I said above, I cannot set localized strings in my schema (using the refine method) because I have a more complex logic for validating the fields, where the adapter is not enough.
I checked all the documentation and examples, but I couldn't find such a case where you add custom validations for fields, outside the adapters.

I'm hesitant to add events not related to the submit process, as they are quite error-prone. If you check the API for the validate property of superForm, it can be used to make custom validations with an onblur event handler on the input field.
https://superforms.rocks/api#superform-return-type

Please show me an example based on the docs, how would you set the error messages for fields in a form with multiple fields, using the on:blur event on each input, without manually setting the error.field data.
Remember that you cannot use the schema for it, so validate is not an option.

Combining the validators option and custom validation is problematic, I can't say much about eventual race conditions. Try to use a setTimeout or tick to set the errors after the update?

Combining the validators option and custom validation is problematic, I can't say much about eventual race conditions. Try to use a setTimeout or tick to set the errors after the update?

Yeah, I thought about that using both the custom validation and the validators might create confusion behind the scenes. The issue simply comes from the fact that the blur event happens before validators is being called. Is this a possible issue for the future, shouldn't be the other way around?

Combining the validators option and custom validation is problematic, I can't say much about eventual race conditions. Try to use a setTimeout or tick to set the errors after the update?

Yeah, I thought about that using both the custom validation and the validators might create confusion behind the scenes. The issue simply comes from the fact that the blur event happens before validators is being called. Is this a possible issue for the future, shouldn't be the other way around?

I will give a try with the tick tho :)

You could try setting the validationMethod to onsubmit to 'onsubmit' and see if that helps. Maybe an extra option to turn it off is the solution.

Alright, apparently it works with onsubmit as validationMethod.
Personally I don't like this approach because I have to add a lot of code for this, but ok, that's it.
I hope you'll take into account adjusting the validation or create a relationship between localization and adapters.
Have a good one, thanks!

@ciscoheat  Which adapter would you recommend while working with superforms?
I'm using zod atm but I consider changing it.

I've written some about it here: https://discord.com/channels/1088090866649939990/1088090867723669616/1206540174381817936

authors: ciscoheat holdmybeer30 pauldiacu

repo: ciscoheat/sveltekit-superforms


text:
citrix_adc_nitro_request with count - missing 1 required positional argument: 'success_status' (Traceback)

Dear Developers!
Dear GitHub Community!
I would like to ask for a little support regarding the citrix_adc_nitro_request Ansible module when operation: count is used.
I have been trying to run the following code with Ansible:
      - name: "Count"
        citrix.adc.citrix_adc_nitro_request:

            nsip: "{{ nsip }}"
            nitro_protocol: "{{ nitro_protocol }}"
            validate_certs: "{{ validate_certs }}"
            nitro_user: "{{ nitro_username }}"
            nitro_pass: "{{ nitro_password }}"

            operation: count
            resource: server

        register:  count_nsapp_lb_server_result

Unfortunately, I'm getting the following error message:
TypeError: edit_response_data() missing 1 required positional argument: 'success_status'
Please find below my environment details:
$ ansible --version
ansible [core 2.12.4]
  config file = /home/ansible/.ansible.cfg
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/ansible/lib/python3.9/site-packages/ansible
  ansible collection location = /home/ansible/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/ansible/ansible/bin/ansible
  python version = 3.9.7 (default, Sep 21 2021, 00:13:39) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
  jinja version = 3.0.3
  libyaml = True

Does anybody have the same experience with this?
Thank You very much in advance for the support and help!

@giorgos-nikolopoulos - Pls look into this.

Fixed with #230

authors: Belabacsi giorgos-nikolopoulos vadharm

repo: citrix/citrix-adc-ansible-modules


text:
Add the flask_analytics.providers package to setup.py

Fixes the problems related to providers not being installed in this issue: https://github.com/citruspi/Flask-Analytics/issues/4

Whoo! Thanks for fixing that! :cake:

authors: citruspi jdp

repo: citruspi/Flask-Analytics

license: unlicense


text:
papermerge v2.0.1 manual installation fails with version conflict

Description
papermerge v2.0.1 manual installation fails with version conflict caused by different django version
Expected
papermerge manual installation works, I guess
Actual

git clone https://github.com/ciur/papermerge.git PapermergeDMS
git checkout v2.0.1
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements/base.txt --no-cache-dir
ERROR: Cannot install -r requirements/base.txt (line 2) and django==3.1.8 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested django==3.1.8
papermerge-core 2.0 depends on django==3.1.7

I also checked the Docker files in v2.0.1 but they install Django 3.1.7 as well so I don't understand why they don't fail.
Info:

OS: Debian stable, kernel 5.10
Database: not relevant
Papermerge Version 2.0.1
python version 3.9.2, pip3 20.3.4

You can work around this by editing requirements/base.txt and changing the Django version to 3.1.7

repo: ciur/papermerge


text:
Allow to upload static assets during deployment

During civiform deployment we ask to provide links to two logos. Currently there is no way to upload images during deployment. Instead the images have to be hosted externally somewhere. We should implement a way to provide images as part of deployment. One easy workaround is to host images on S3 or other file storage service alongside civiform deployment.

Once we implement the program images feature (#5676 ), it should be relatively straightforward to also implement a UI for admins to upload their civic entity logo instead of providing a link. Note that this is a slightly new proposal: Instead of providing the image during deployment, we're now proposing to add a page in the admin UI for this image upload so the CiviForm admin can do this at any time.
This will also let us have a much stricter CORS policy because we can restrict the domains that we're allowed to load resources from to just be our own domain and a cloud service provider domain and nothing else.

authors: caitlinshk nbeloglazov

repo: civiform/civiform


text:
WIP migrate application review test

Description
Please explain the changes you made here.
Release notes
Remove this section if the title of the pull request can be used as the default release notes description. If more detail is needed to communicate to partners the scope of the PR's changes, use this release notes section (and remove this placeholder text).
Checklist
General
Read the full guidelines for PRs here

[ ] Added the correct label: < feature | enhancement | bug | under-development | dependencies | infrastructure | ignore-for-release | database >
[ ] Assigned to a specific person, civiform/developers, or a more specific round-robin list
[ ] Added an additional reviewer from outside your organization as FYI (if the primary reviewer is in the same organization as you)
[ ] Removed the release notes section if the title is sufficient for the release notes description, or put more details in that section.
[ ] Created unit and/or browser tests which fail without the change (if possible)
[ ] Performed manual testing (Chrome and Firefox if it includes front-end changes)
[ ] Extended the README / documentation, if necessary. For user-facing features, consider updating the user docs. For "under-the-hood" changes or things more relevant to developers, consider updating the dev wiki.

Database evolutions
Read the guidelines here

[ ] Assigned two reviewers
[ ] Guarded against already existing resources using IF NOT EXISTS and IF EXISTS
[ ] Downs created to undo changes in Ups
[ ] Every comment in script should begin with -- and not # --- unless it denotes Ups or Downs. See here for details.
[ ] Tested both the Downs and the Ups scripts manually (When testing, include all comments from the evolution in your test script to ensure any syntax errors in the comments are caught.)
[ ] Data migrations aren't being done (please use a Durable Job if doing a data migration)

Durable jobs
Read the docs here

[ ] Assigned two reviewers
[ ] Included a rollback plan and a job to undo the data changes if appropriate

User visible changes

[ ] Followed steps to internationalize any new strings

[ ] Added context strings to new messages
[ ] Didn't use a message in applicant facing code that isn't translated yet (unless behind a flag)

[ ] Wrote browser tests using the validateAccessibility method
[ ] Made equivalent changes in Thymeleaf for applicant-facing features and changes (or created an issue in the Northstar epic to track that it's missing from Thymeleaf)
[ ] Tested on mobile view. See mobile device mode
[ ] Manually tested at 200% size
[ ] Manually evaluated tab order
[ ] Manually tested with a screen reader if the feature is applicant-facing. See screen reader testing

New Features

[ ] Add new FeatureFlag env vars to server/conf/helper/feature-flags.conf
[ ] Conditioned new functionality on a FeatureFlag
[ ] Wrote browser tests with the feature flag off and on, etc.

Instructions for manual testing
If instructions are needed for manual testing by reviewers, include them here.
Issue(s) this completes
Fixes #<issue_number>; Fixes #<issue_number>...

#8949  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ssandbekkhaug and the rest of your teammates on  Graphite


text:
BUG Use /tmp for joblib temp files instead of /shm

Instruct joblib to use disk for temporary files. Joblib defaults to /shm when that directory is present. In the Docker container, /shm is present but defaults to 64 MB. That's not enough space to handle even moderate-sized computations. The temporary directory is a bit slower, but has much more space.
https://github.com/joblib/joblib/blob/0.11/joblib/parallel.py#L328L342

@stephen-hoover Let's add a warning to the readme and then merge this.

@beckermr , I added a sub-section to the README about this.

LGTM

authors: beckermr stephen-hoover

repo: civisanalytics/datascience-python


text:
Album title is not sanitized.

This code.
https://github.com/cjcodeproj/musicscan/blob/082b6b626c220aacda554828425f2c770c1d8e30/src/musicscan/xml/builder.py#L251-L263
The album title is not run through the XML sanitization function, sanitize_for_xml.

Commit:
https://github.com/cjcodeproj/musicscan/commit/dd90826868cff048057b1e73d3549c8a0b9331bb

repo: cjcodeproj/musicscan


text:
增加callback 能力，是使得 能够以更多的维度来监控 训练过程

如题

已经增加 callback 能力

repo: cjopengler/easytext


text:
🛑 Portfolio is down

In c0101ff, Portfolio (https://portfolio.cjthedj97.me) was down:

HTTP code: 503
Response time: 105 ms

Resolved: Portfolio is back up in 5dcadbb.


text:
CLI Args

Accept CLI args for the following

port for tracker to listen on
host (IP) for tracker to listen on
redis host to connect to

LGTM

license: WTFPL


text:
spelling mistakes on github.io page

This is the text from the main claassistant.github.io page
"Got to Gist.GitHub.com, save a CLA text file there.
Choose the creted file or copy and paste the URL in CLA assistant. "
First word I assume is "Goto".  Then in the last sentence is should be "created" not "creted".

Thank you for pointing this out, @jeffmcaffer.
We asked a native speaker to look over all our texts and rewrote some texts according to his feedback. Hopefully there no typos anymore :) If you find some again, please, let us know.

authors: KharitonOff jeffmcaffer

repo: cla-assistant/cla-assistant


text:
Use homeassistant cli

Investigate how it could be used. Perhaps disable/enable/hide/rename entitites

If an entity is set to hidden it will not show up on the automatically generated dashboard, thus it would be nice to set every entity to hidden that is in one of the ansible generated dashboards (#46)

Probably easier to just use the api directly since I lostly want to do disable or hide. https://developers.home-assistant.io/docs/api/rest/

Seems to rest api does not have the capability to change the entity registry, but the websocket api has. Can't find any ansible module that uses websockets, so best option is to go with hass-cli. Right now I have to do it using the raw command but I should really make a pull request to add disable and hide as commands (rename already exists so it should be easy....)
hass-cli --server http://localhost:8123 --token TOKEN --output json raw ws config/entity_registry/update --json '{"entity_id":"sensor.xyz", "disabled_by":"user"}'

Roles in placeand used to disable and hide entities

repo: claha/smart-home


text:
💡 clams source --version

New Feature Summary
source --version
Can the CLI include a --version flag to specify a specific mmif version?
Related
No response
Alternatives
No response
Additional context
After clams sourceing an empty mmif, I ran it through app-barsdetection, and it errored with:
"error": {
          "message": "<class 'ValueError'>: Input MMIF file (versioned: 0.5.0 is not compatible with the app targeting at 0.4.0. Make sure apps in the pipeline is all compatible. See https://mmif.clams.ai/versioning/ for information about MMIF compatibility. "

The error no longer occurs since https://github.com/clamsproject/clams-python/pull/130. bardetection app soon will be updated to the latest SDK and the error will be gone with the update.

closing the issue as a "won't fix"

authors: keighrim mrharpo

repo: clamsproject/clams-python


text:
doxygen documentation is shown in hover window with escaped punctiation

I don't know if this is a coc issue or a coc-clangd issue, but when I get hover information about a symbol, the documentation is shown with escaped punctuation making it quite hard to read.  See screenshot.
## versions

vim version: NVIM v0.5.0-dev
node version: v14.1.0
coc.nvim version: 0.0.78-57637bb44c
term: screen-256color
platform: linux

## Output channel: clangd log

I[14:23:11.272] clangd version 9.0.1-8+hrt1hrt9.1

Its fundamentally a coc issue: it requests the markdown version of the hover card, but then doesn't unescape the text per markdown rules.
That said, much escaping is optional and latest clangd should be doing much less (though there are common cases where it can't be avoided)

Yeah... I'm working to get my codebase building with clang-10.  I'm on clang-8 right now, so maybe that's causing a lot of the excess markdown.

well, clangd-10 still has ample excess markdown.

I'm sure that's true, but do you have an example?

Same example, but for clangd-10 rather than 9.

My mistake, the escaping changes didn't make the clangd-10 release :-(
It looks better at trunk, thought there are still a few backslashes we can't easily drop:

(The t%2 typo is bothering me, sorry about that...)

The wrapping is still terrible, we do detect the hard breaks after the colons but this is a good example of where assuming short lines imply hard breaks would be a big win.

Why did you guys stop preserving the line breaks?  Seems like that could at least be an option.

is there a work around for this?.

we've improved escaping recently. you can build clangd at head, or use a binary from our weekly releases

thanks @kadircet  I tested it with the latest snapshot, and saw improvement. attached is the updated screenshot.
I also added screenshot on the snapshot and copied the hover text to an online markdown it displayed correctly there

It looks like they don't want to fix this in coc (neoclide/coc.nvim#2308). I often use markdown in my doc comments so this is really annoying.
Is it possible to tell clangd to do no escaping at all?

@jsholmes You can try Plug “flw-cn/vim-markdown” which is a fork for plasticboy/vim-markdown and it automatically hides the backslash. see PR plasticboy/vim-markdown#515 to see exactly what it does.

coc.nvim has rework document highlights, https://github.com/neoclide/coc.nvim/issues/2497, please upgrade your coc.nvim and try again.

I also have some documentation issue:

I also have some documentation issue:

Latest clangd has improved a lot, close for now.

authors: GopherJ Lythenas fannheyward flw-cn jsholmes kadircet sam-mccall talk2drys

repo: clangd/coc-clangd


text:
How to apply styles to excel file?

When saving to the xlsx format, how do I ensure the same styles are carried over? I've used both inline styling, and external styling and neither seem to work.

This functionality would be awesome 👍

Eventually, I too would like to integrate this feature into the plugin. This sort of customization would need to be done at a very low-level using the js-xlsx parser/writer – unless of course there is an alternative tool to convert css style declarations to compliant OpenXML style declarations. I'll keep this one on the backburner for now, at least until I can look into the minutia of this type of parsing process.

Check this one. it would be helpful.

need this feature too..

+1

Please support this feature

authors: Alplob JazzvyA clarketm k1ll1n nguyenviet2137 pavelvasev rherring

repo: clarketm/TableExport


text:
refactor(docs): track new features and improvements

fixes #143, fixes #122, fixes #30, fixes #20

LGTM, feel free to merge whenever you want.

authors: bsctl prometherion

repo: clastix/kamaji


text:
🛑 livevault is down

In 87cbcf1, livevault (https://livevault.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: livevault is back up in c29cc04.

repo: claytonplong/backup-uptime


text:
🛑 livevault is down

In 6eb168c, livevault (https://livevault.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: livevault is back up in 04c2a7e.


text:
🛑 livevault is down

In bc70592, livevault (https://livevault.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: livevault is back up in 3c59cec.


text:
🛑 livevault is down

In 1237fb5, livevault (https://livevault.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: livevault is back up in bf5ed1b.


text:
TypeError: Bad argument - something w/ phantomjs

[10:27:18] Finished 'test:modules' after 1.62 s
[10:27:18] Finished 'test:compile-scripts' after 1.84 s
[10:27:18] Starting 'test:phantomjs'...
child_process.js:1136
  var err = this._handle.spawn(options);
                         ^
TypeError: Bad argument
    at TypeError (native)
    at ChildProcess.spawn (child_process.js:1136:26)
    at exports.spawn (child_process.js:995:9)
    at Object.<anonymous> (/Users/tomfuertes/sandbox/git-repos/clearhead/node_modules/phantomjs/bin/phantomjs:22:10)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
[10:27:18] 'test:phantomjs' errored after 110 ms
[10:27:18] Error in plugin 'gulp-mocha-phantomjs'
test failed
[10:27:18] 'test:browser' errored after 1.96 s
[10:27:18] Error in plugin 'gulp-mocha-phantomjs'
test failed

I am receiving the exact same error.
I am testing a python/django application using selenium with phantomjs. Everything works fine during first (and sometimes second test), but once running the next, selenium prints:
WebDriverException: Message: Can not connect to GhostDriver on port 59852

If I run phantomjs from console now, I receive the same error as tomfuertes.
child_process.js:1136
  var err = this._handle.spawn(options);
                         ^
TypeError: Bad argument
    at TypeError (native)
    at ChildProcess.spawn (child_process.js:1136:26)
    at exports.spawn (child_process.js:995:9)
    at Object.<anonymous> (/usr/local/lib/node_modules/phantomjs/bin/phantomjs:22:10)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)

I reinstalled phantomjs via npm (both locally and globally) but the behaviour persists.

Don't know if that helps, but I was receiving the exact same error.
I am testing a python/django application using selenium with phantomjs. Everything worked fine during first (and sometimes second test), but once running the next, selenium printed:
WebDriverException: Message: Can not connect to GhostDriver on port 59852
And if I ran phantomjs from console afterwards, I received the same error as you do.
child_process.js:1136 var err = this._handle.spawn(options);
                                             ^

TypeError: Bad argument
       at TypeError (native)
       at ChildProcess.spawn (child_process.js:1136:26)
       at exports.spawn (child_process.js:995:9)
       at Object.<anonymous> (/usr/local/lib/node_modules/phantomjs/bin/phantomjs:22:10)
       at Module._compile (module.js:460:26)
       at Object.Module._extensions..js (module.js:478:10)
       at Module.load (module.js:355:320)
       at Function.Module._load (module.js:310:12)
       at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16)

I tried reinstalling phantomjs via npm (both locally and globally) several times, but the behaviour persisted.
Eventually I downloaded the phantomjs bin from phantomjs.org, put that inside my /usr/local/bin and got rid of the error since!

Worked for me thanks

@firstdayofjune This works fine!

authors: Manre chenchenglong firstdayofjune tomfuertes

repo: clearhead/clearhead


text:
@clerk/react-router using CloudFare Template

Preliminary Checks

[X] I have reviewed the documentation: https://clerk.com/docs

[X] I have searched for existing issues: https://github.com/clerk/javascript/issues

[X] I have not already reached out to Clerk support via email or Discord (if you have, no need to open an issue here)

[X] This issue is not a question, general help request, or anything other than a bug report directly related to Clerk. Please ask questions in our Discord community: https://clerk.com/discord.

Reproduction
https://github.com/lydiaf/importbug
Publishable key

Description
Steps to reproduce:

Open root.tsx, and comment in and out the import rootAuthLoader, you can see app stops loading

Expected behavior:
App loads
Actual behavior:
App does not load with input
--
I am just experiencing this with Cloudflare template, not Vercel template.
Environment
-

Hello, thanks for the issue!
I've ran your reproduction and can confirm that it it fails with require is not defined.
[vite-node-miniflare error]
ReferenceError: require is not defined
    at /Users/lejoe/code/playground/importbug/node_modules/snakecase-keys/index.js:3:13

@clerk/react-router imports @clerk/backend which itself imports snakecase-keys. However, this is a quite common error with Vite bundling. snakecase-keys is CJS and you can't use require in ESM builds. So you'll need to adjust the optimizeDeps.include list.
I've got it working like this:

Change the template by following this PR change: https://github.com/remix-run/react-router-templates/pull/6

Add snakecase-keys and cookie to the list
    optimizeDeps: {
      include: [
        "react",
        "react/jsx-runtime",
        "react/jsx-dev-runtime",
        "react-dom",
        "react-dom/server",
        "react-router",
+       "snakecase-keys",
+       "cookie"
      ],
    },

authors: LekoArts LydiaF

repo: clerk/javascript