Cloning a TFS project whose first changeset is a rename fails when --gitignore option is used

When running git-tfs v0.32.45 to clone a TFS project whose first TFS changeset is a rename (don't ask me how that happened, because it happened before my time), if you supply the --gitignore option, then git-tfs stops after fetching the first changeset. Git-tfs does not display any error messages, but the repository is devoid of user files and none of the TFS changesets (including the first) are committed.
I encountered this issue in a production TFS system, but for reproducibility I created the following two unit tests:
public void CloneWithFirstTFSChangesetIsRename()
{
    h.SetupFake(r =>
    {
        r.Changeset(1, "First TFS changeset: rename the top-level folder", DateTime.Parse("2012-01-01 12:12:12 -05:00"))
            .Change(TfsChangeType.Rename, TfsItemType.Folder, "$/MyProject");
        r.Changeset(2, "Second TFS changeset: one folder and two files added", DateTime.Parse("2012-01-02 12:12:12 -05:00"))
            .Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject/Folder")
            .Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/Folder/File.txt", "File contents")
            .Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/README", "tldr");
    });
    h.Run("clone", h.TfsUrl, "$/MyProject", "MyProject");
    h.AssertCommitMessage("MyProject", "HEAD", "Second TFS changeset: one folder and two files added", "", "git-tfs-id: [" + h.TfsUrl + "]$/MyProject;C2");
    h.AssertFileInWorkspace("MyProject", "Folder/File.txt", "File contents");
    h.AssertFileInWorkspace("MyProject", "README", "tldr");
    AssertNewClone("MyProject", new[] { "HEAD", "refs/heads/master", "refs/remotes/tfs/default" },
        commit: "726e937beab54f17fae545744497d68aa7c36507",
        tree: "41ab05d8f2a0f7f7f3a39c623e94fee68f64797e");
}

public void CloneWithFirstTFSChangesetIsRenameAndGitignoreGiven()
{
    string gitignoreFile = Path.Combine(h.Workdir, "gitignore");
    string gitignoreContent = "*.exe\r\n*.com\r\n";
    File.WriteAllText(gitignoreFile, gitignoreContent);

    h.SetupFake(r =>
    {
        r.Changeset(1, "First TFS changeset: rename the top-level folder", DateTime.Parse("2012-01-01 12:12:12 -05:00"))
            .Change(TfsChangeType.Rename, TfsItemType.Folder, "$/MyProject");
        r.Changeset(2, "Second TFS changeset: one folder and two files added", DateTime.Parse("2012-01-02 12:12:12 -05:00"))
            .Change(TfsChangeType.Add, TfsItemType.Folder, "$/MyProject/Folder")
            .Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/Folder/File.txt", "File contents")
            .Change(TfsChangeType.Add, TfsItemType.File, "$/MyProject/README", "tldr");
    });
    h.Run("clone", h.TfsUrl, "$/MyProject", "MyProject", $"--gitignore={gitignoreFile}");
    h.AssertCommitMessage("MyProject", "HEAD", "Second TFS changeset: one folder and two files added", "", "git-tfs-id: [" + h.TfsUrl + "]$/MyProject;C2");
    h.AssertFileInWorkspace("MyProject", "Folder/File.txt", "File contents");
    h.AssertFileInWorkspace("MyProject", "README", "tldr");
    AssertNewClone("MyProject", new[] { "HEAD", "refs/heads/master", "refs/remotes/tfs/default" },
        commit: "d1802bd0cee53f20ed69f182d1835e93697762a1",
        tree: "2ef92a065910b3cc3a1379e41a034e90f2e610ec");
}

Here is what the repository created via the CloneWithFirstTFSChangesetIsRename unit test looks like. Everything is as expected:
$ ls -a
./  ../  .git/  Folder/  README

$ git ls-files
Folder/File.txt
README

 $ git log --oneline
726e937 (HEAD -> master, tfs/default) Second TFS changeset: one folder and two files added
7c4693b First TFS changeset: rename the top-level folder

Here is what the repository created via the CloneWithFirstTFSChangesetIsRenameAndGitignoreGiven unit test looks like. Notice that the commits and files corresponding to the two TFS changesets are missing. Only the .gitignore file and its commit are present:
$ ls -a
./  ../  .git/  .gitignore

$ git ls-files
.gitignore

$ git log --oneline
077fd68 (HEAD -> master, tfs/default) .gitignore

Here is what I expect the repository created via the CloneWithFirstTFSChangesetIsRenameAndGitignoreGiven unit test to look like:
$ ls -a
./  ../  .git/  .gitignore  Folder/  README

$ git ls-files
.gitignore
Folder/File.txt
README

$ git log --oneline
d1802bd (HEAD -> master, tfs/default) Second TFS changeset: one folder and two files added
4f417c9 First TFS changeset: rename the top-level folder
077fd68 .gitignore

Lines 388-401 of the FetchWithMerge method in GitTfsRemote.cs contain special case logic for handling the case when the first TFS changeset is a rename:
var parentSha = (renameResult != null && renameResult.IsProcessingRenameChangeset) ? renameResult.LastParentCommitBeforeRename
var isFirstCommitInRepository = (parentSha == null);
var log = Apply(parentSha, changeset, objects);
if (changeset.IsRenameChangeset && !isFirstCommitInRepository)
{
    if (renameResult == null || !renameResult.IsProcessingRenameChangeset)
    {
        fetchResult.IsProcessingRenameChangeset = true;
        fetchResult.LastParentCommitBeforeRename = MaxCommitHash;
        return fetchResult;
    }
    renameResult.IsProcessingRenameChangeset = false;
    renameResult.LastParentCommitBeforeRename = null;
}

The problem is with the isFirstCommitInRepository variable. When a .gitignore file is supplied, git-tfs commits it before the cloning begins, making isFirstCommitInRepository false the first time FetchWithMerge runs when processing the actual TFS changesets and incorrectly bypassing the special-case logic. The isFirstCommitInRepository variable should be set based on whether a commit is the first TFS changeset being committed, not whether it is the first commit at all in the cloned repository.
I plan to submit a pull request with a proposed solution.

I have to admit, I am not familiar with this code.
I just noticed that there seems to be code  trying to handle that case, but according to your findings, not successfully.

The code you linked works in conjunction with the code I linked to handle the case of "first TFS changeset is a rename" case correctly, as long as that changeset is the first commit in the git repository. But it isn't enough when git-tfs's --gitignore feature is used, because the special case is triggered based on first git commit when it should be triggered based on first TFS changeset.
It's easier for me to show you the problem with a PR that fixes it than to try to explain it in words. But I'd like to base this PR on PR #1405, which hasn't been accepted yet.

It's easier for me to show you the problem with a PR that fixes it than to try to explain it in words. But I'd like to base this PR on PR #1405, which hasn't been accepted yet.

FYI, that's not really a problem to base a PR (i.e. a branch) on another PR (i.e. another branch).
You just have to be clear in the PR comment that it should be merged after. And you will just have to rebase you branch once the first PR will be merged...

pmiossec wrote:

FYI, that's not really a problem to base a PR (i.e. a branch) on another PR (i.e. another branch).

Thank you for the information. As it turns out siprbaum accepted #1405 before I got around to submitting my pull request, so the issue became moot.
siprbaum wrote:

I just noticed that there seems to be code trying to handle that case, but according to your findings, not successfully.

In #1412 you can see that my fix uses the code you referenced, but instead of checking MaxCommitHash it needs to check MaxChangesetId.


KeepAliveTimeeTriggersFloodProtection flaky on coverage

https://dev.azure.com/cncf/4684fb3d-0389-4e0b-8251-221942316e06/_apis/build/builds/106879/logs/292

https://dev.azure.com/cncf/4684fb3d-0389-4e0b-8251-221942316e06/_apis/build/builds/107028/logs/265

Sounds good. I will be working on it tomorrow.


React Native support?

Is this expected to work with React Native when it is released? If not, are there plans for it?

It should work out of the box since it's just analysing your JS. :)


[1.3.0-RC4] Error when launching sbt on AdoptOpenJDK OpenJ9

steps
sbt version: 1.3.0-RC4
Start sbt using AdoptOpenJDK J9 on Linux
problem
When starting sbt 1.3.0-RC4 on Ubuntu or WSL (Debian) with AdoptOpenJDK J9, a stacktrace is printed almost right away: https://gist.github.com/hugo-vrijswijk/c49fbbdc613a088efb7819a02957c36f
3 files are also written to disk:
https://gist.github.com/hugo-vrijswijk/e284188579cf729ce80389792f79e4d9
And a binary file with the name Snap.20190824.112919.24863.0003.trc I could upload somewhere else if needed.
expectation
Sbt starts normally.
notes
WSL:

Java versions: AdoptOpenJDK J9 8.0.222 or 11.0.4
Used latest sbt-extras script
Distro: Debian 10
Windows version 1903

Ubuntu:

Java version: AdoptOpenJDK J9 11.0.4
Used latest sbt-extras script
Distro: Ubuntu 18.0.4

Works fine when in the following cases:

OpenJDK 11 WSL
AdoptOpenJDK 11 HotSpot on WSL
AdoptOpenJDK OpenJ9 11 on Windows.

Did sbt 1.2.8 work?

Yes. 1.2.8 and 1.3.0-RC3 work

I can confirm I am no longer running into the issue. Thanks a lot!!

@hugo-vrijswijk FYI I reported this upstream - https://github.com/eclipse/openj9/issues/6940


Large file in Online Code Editor causes massive slowdowns.

Describe the bug
The whole assessment page becomes quite unresponsive if the student submission contains a file that has either a large line count (previously observed with 5000+ Lines) or a large file size (currently observed with 89MB of text).
To Reproduce

Upload a large text file (according to the description above) to a submission repository.
Open the assessment view for that submission.
Observe slowdown of the whole page.

Expected behavior
The code editor should not have that much of a performance impact when working with large files (preferably by not loading the file at all until it is actually opened).
Environment

 - OS: Manjaro Linux
 - Browser: Firefox, but also confirmed on Chromium
 - Version: Firefox 85 / Chromium 88

I don't think the online Code editor can easily support such long and large files. A normal code file with 5000 lines should be possible, but 89MB text is clearly out of scope and does not make sense in the context of Artemis.
We are using an external framework for the online code editor called Ace, we have not implemented it on our own.

I don't disagree that a 89MB text file  (in this case it is a collection of testing inputs, and therefore not necessarily essential for grading or meant to be edited, much less online) is out of scope for the editor itself, and I can also understand if the editor doesn't work as expected performance-wise if it's trying to render a file with 5000 lines (although I'm quite sure that the latter doesn't even come close to the performance impact that the 89MB-file has).
The problem is that the editor (or whatever provides the implementation for loading files) apparently tries to load/process the file even if I haven't opened it, and as a result slows down the entire page. This means that I'm unable to properly grade the submission, since every mouse click takes 5+ seconds and/or multiple tries to register and typing properly seems to be entirely impossible.
Looking at the Ace project page, they do claim support for files up to four million lines, and they don't seem to provide an implementation for switching between multiple files (just the editor frame itself), so I believe that it's reasonable to think that the issue is (at least partially) caused by Artemis.

The reason could be that the editor tries to show the differences of the student solution compared to the template repository (which is a nice feature for tutors to immediately see where they need to look at).
To be honest, I would consider it as bad practice to store a 89MB file in a git repository that is copied for multiple students, especially if this file is not changed. I think git and Bitbucket will also have performance issues with such large files. I don't think that 89MB are necessary for a small university exercise. Keep in mind that - while we have a good infrastructure - we should not push it to the limits, if we can avoid it.
Does this issue occur in just one repository or in multiple ones? Can you send me the link to the exercise so that I can investigate this issue in more detail?
@fde312 could you have a look if we could limit the mentioned comparison to smaller files as a quick fix to the mentioned issue.

That file has been uploaded by a student, for his submission only. The task this week was to write JUnit-Tests so that improperly implemented file-based text-processing-utilities can be differentiated from the one that is properly implemented. Uploading a text file that includes all the possible characters multiple times to check for inconsistencies with certain characters wasn't something we thought the students would do.
Since the student uploaded that file by himself, this is the only submission that is affected.

Interesting, the complaint response that I have already submitted (as far as I could tell) has vanished and the complaint is now open again and locked by "krusche" (the lock appears to have been set this morning).
@krusche, was this a deliberate action during testing or has the response been removed by accident? I'm quite sure that I have clicked "update assessment", although I admit I haven't double-checked the list afterwards.


Update README.md

[x] Video	2min video of new functionality, showing a significant delta from prior.
[x] DOI badge: exists. To get a Digitial Object Indentifier, regiser the project at Zenodo.
[x] Badges showing your style checkers	config files in GH showing your config, badges in README
[x] Badges showing your code formatters.	config files in GH showing your this formatter’s config, badges in README
[x] Badges showing your syntax checkers.	config files iin GH showing this checker’s config, badges in README
[x] Badges showing your code coverage tools	config files in GH, badges in README
[x] Badges showing any other Other automated analysis tools	config files in GH, badges in README
[x] Include videos in README

Closing because all tasks are complete and all PRs have been merged


Updates to chapter on Probability

Support for direct use of LaTeX is also enabled via extension amsmath.

These changes have been published: https://ds1.datascience.uchicago.edu/11/Probability.html


Debug automatically opens [libraryname].ino instead of [libraryname].cpp

If you are editing a copied library, the error bar will mistake the .cpp file you are editing for a .ino file, and will link to a nonexistent .ino if you click the error to see where the problem is.

and now with more gifs:

I just released Particle Dev v0.1.21 package which should fix this issue. Could you try to update it (or install it in Atom if you're using standalone Particle Dev App) and see if it helped?


Blob data instead a pdf file

like this:
var file = new Blob([data_from_some_api], { type: "application/pdf" });
var fileUrl = URL.createObjectURL(file);

This works.

I guess this issue is ok now? I'm closing this. Feel free to reopen with a pull request or other suggestions.


Copy Protection: Dogs Of War

Dogs Of War T00.1 looks like unformatted, but is part of the copy protection. I think the game waits for the index (by reading CIAICR FLG) and than reads 14200 words. Later the game scans the raw MFM data for the bit pattern<PHONE_NUMBER>010100. It's OK if the bit sequence is not found at all - or, if found, a second match has to be at least 6700 words away. If the copy protection check fails ($023A(A5=0).l <= 0), the player joystick data is filled with random values (you cannot control your movement).
Is there already a way to describe something like this in the formats file, or do we have to implement another sector format for this?
0039E4: clr.w   $01E4(A5)
0039E8: clr.w   $01E6(A5)
0039EC: bsr.w   dow_dsk_motor_on
0039F0: bsr.w   dow_seek_track0
0039F4: move.l  #20000,D7
0039FA: bsr.w   dow_wait_cycles_d7
0039FE: bclr.b  CIAB_DSKSIDE,(_ciab.ciaprb).l
003A06: bsr.w   dow_wait_icrflg
003A0A: move.w  #INTF_DSKBLK,(_custom.intreq).l
003A12: move.l  #$0006154C,(_custom.dskpt).l
003A1C: move.w  #~ADKF_SETCLR,(_custom.adkcon).l
003A24: move.w  #ADKF_SETCLR|ADKF_FAST,(_custom.adkcon).l
003A2C: move.w  #DMAF_SETCLR|DMAF_MASTER|DMAF_DISK,(_custom.dmacon).l
003A34: move.w  #DSKDMAOFF,(_custom.dsklen).l
003A3C: move.w  #$8000|14200,(_custom.dsklen).l
003A44: move.w  #$8000|14200,(_custom.dsklen).l
003A4C: bra.w   dow_wait_dskblk

004C5A: lea     ($0004F54C).l,A0
004C60: move.l  #14200,D3
004C66: adda.l  #$00012000,A0
004C6C: move.l  (A0),D0
004C6E: addq.l  #2,A0
004C70: moveq   #16-1,D2
004C72: move.l  D0,D1
004C74: swap    D1
004C76: cmp.w   #%0100010001010100,D1
004C7A: beq.b   004C88
004C7C: lsl.l   #1,D0
004C7E: dbf     D2,004C72
004C82: dbf     D3,004C6C
004C86: bra.b   004CA6
004C88: clr.l   D5
004C8A: move.l  (A0),D0
004C8C: addq.l  #2,A0
004C8E: moveq   #16-1,D2
004C90: move.l  D0,D1
004C92: swap    D1
004C94: cmp.w   #%0100010001010100,D1
004C98: beq.b   004CAC
004C9A: lsl.l   #1,D0
004C9C: dbf     D2,004C90
004CA0: addq.l  #1,D5
004CA2: dbf     D3,004C8A
004CA6: st      $023A(A5)
004CAA: rts
004CAC: subi.l  #6700,D5
004CB2: move.l  D5,$023A(A5)
004CB6: rts

ps: I recommend to test this game on a plain 68000, it often uses instruction loops for 'timed' waiting (also for disk reading - you might have to umount and insert your image again to continue).

You'll need a new format, as you must see the 4454 pattern. If you don't you end up at 4CA6 and set the longword there negative. 6700*16 == 107200 bitcells. So you need a 110000-bit longtrack with 4454 appearing once. The rest could be all AAAA... which isn't a faithful repro of the original track but will pass the protection check. If you want to be more faithful then most of the track needs to be written MFM all zeroes. But the AAAA pattern is surely more deterministic and safer.

You'll need a new format, as you must see the 4454 pattern

OK, thank you. My hope was that it could be somehow possible to create a valid standard track format without this pattern (as far as I know, the st <ea> instruction is similar to move.b $FF,<ea> (byte-sized) and the check is long-sized signed - so the pattern could be missing).
Most of the time I'm just reading code to answer questions, but it seems I have to get used to on-disk formats and the encodings. I'll start with getting used to the capsimage library to actually dump the original MFM data...

Regarding the ST.b instruction, remember 68000 is big endian. So this instruction does also make the longword negative!
What do you have for dumping disks? I can send you a greaseweazle if you like; you can email me your details.

Regarding the ST.b instruction, remember 68000 is big endian. So this instruction does also make the longword negative!

Mistake on my site, you are right :)

What do you have for dumping disks? I can send you a greaseweazle if you like; you can email me your details.

I'm just helping analyze/convert the mission data for an open source remake of the game. Since most of my original disks are modified or the bits faded, I'm using the IPF as a reference (I'm not interested in analyzing Suxxess' and others' ADF conversions, even if they include some fixes).

You'll need a new format, as you must see the 4454 pattern. If you don't you end up at 4CA6 and set the longword there negative. 6700*16 == 107200 bitcells. So you need a 110000-bit longtrack with 4454 appearing once.

Seems like the existing protec_longtrack exactly implements this (even detecting/using the fill byte).
With this config I converted it from IPF to HFE, and it works (besides the mentioned timing issues with the original track loader on my A500 with a 68010 on an external Gotek with a simple DF0/1-switch):
#
# This config is intended to be used with the config/format options of
# Keir Fraser's disk-analyse utility (build with CAPS/SPS IPF support),
# for more details browse to <https://github.com/keirf/disk-utilities>.
#
# Expamples:
#
#   # convert to HxC/FlashFloppy Emulator image
#   disk-analyse --format='Dogs of War' --config=./DogsOfWar-ipf.format \
#     --end-cyl=79 \
#     ./DogsOfWar.ipf ./DogsOfWar.hfe
#
#   # extract 'MAINGRAF.PRG' track data blocks
#   disk-analyse --format='Dogs of War' --config=./DogsOfWar-ipf.format \
#     --ss=1 --start-cyl=1 --end-cyl=15 \
#     ./DogsOfWar.ipf ./h1c01-15.img
#
"Dogs of War"
    0 amigados
    1 protec_longtrack
    2-76/2 ibm_pc_dd_10sec
    3-77/2 ibm_pc_dd_10sec
    78-83 amigados
    84-158/2 ibm_pc_dd_10sec
    85-159/2 ibm_pc_dd_10sec
    * ignore

BTW, the --end-cyl=79 did not what I expected and the HFE still has more than 80 tracks/side :)
However, in the long term someone/me would have to write a special format handler for T79.0 (highscore). The game's track writer does not fill the ID fields and CRCs correctly, and even writes too few words if my math is correct :)
#
# Index field: 50/146 words
#                                       # GAP 4A (0/80 0x4E)
#                                       # SYNC 1 (0/12 0x00)
#                                       # IAM    (0/3 0xC2*, 0xFC)
mfm_bytes(0x4E, 50)                     # GAP 1  (50 0x4E)
# (10*614/9*654 words)
for(i = 0; i < 10; ++i) {
  # ID field: 44/44 words
  mfm_bytes(0x00, 12)                   # SYNC 2 (12 0x00)
  0x44894489,0x4489,mfm_bytes(0xFE, 1)  # IDAM   (3 0xA1*, 0xFE)
  mfm_bytes(0x00, 6)                    # C, H, S, B, CRC
  mfm_bytes(0x4E, 22)                   # GAP 2  (22 0x4E)
  # DATA field: 570/610 words
  mfm_bytes(0x00, 12)                   # SYNC 3 (12 0x00)
  0x44894489,0x4489,mfm_bytes(0xFB, 1)  # DAM    (3 0xA1*, 0xFB)
  for(j = 0; j < 512; ++j) {
    mfm_byte(data[j])                   # DATA   (512 words)
  }
  # 6144 words written - last 4 DATA words, CRC, and GAP 3 missing
  mfm_bytes(0x01, 2)                    # CRC
  mfm_bytes(0x4E, 40)                   # GAP 3  (40/80 0x4E)
}

If you want to have a look at the code and have Ghidra installed, there is an 'openDOW' with anonymous read-only access at ghidra.nicode.net

Maybe the protection code at least is protec. It rings a bell actually.
I've never used ghidra is it good?
And yes you'll need a new format for high scores.

I've never used ghidra is it good?

There are still a lot of issues to solve/implement for easier/correct analysis - but it helps a lot to have an interactive tool with all the auromatic references. The more code to review the more effective you can answer questions with it (not intended/ready to re-source an app, even if this has already been done with custom plug-in). The nice thing, it's free and with a server you can work together on a project.

support added with #106


Python Transformer - Some Tests are flaky

Some of the python tests fail in the docker container.
When duplicating the same test, the first fails and the second runs successfully.
Affected Tests:

Lambda Identity
Add Neutral

These have not much in common - one is for strings one is for integers. Maybe there are side-effects in place.
To Reproduce
Steps to reproduce the behavior:

Go to the Python Transformer repository
Run docker build .

optionally, the python pytest ./tests also produces the same error.
Expected behavior
The tests should run regardless of their order.
The test pipeline should be succeeding.
Desktop (please complete the following information):
Happens in the Docker.
Does not happen when the test is run in PyCharm.

Ok, so this has been figured out by now.
The tests were not flaky, but the actual program was.
The issue was in the literal collector visitor, which was collecting the literals in a class attribute;
These class attributes were then read to use in the later transformer, like foo(literal_collector.seen_literals).
However, these attributes persisted over multiple instances of the literal_collector,
which meant that with ongoing test-suite there were more and more variables collected,
and then "phantom" variables were given to the transformer.
The solution was to (properly) use scoped class-variables, by only putting them in init and not as class-variables.
This is very weird behavior.
As a side-note, I extracted the literal collection into a shared method, that is not necessary and the fix would work anyway, but I decided that it's nicer to be tested and less code overall.
Tested in a570dec60cf5e6ff0e4919c121fc85fad5acda50
Fix in 59b87be254bb8d804803c6e542dd7d5a3f467cc0
Fully closed in 38193d1ddb0c05072c51b6b82bad47b32f5fa363


update index.html

Try to make web page more attractive using different size of font and change background to space because you are found of it so hope you like it .

Try to make web page more attractive using different size of font and change background to space because you are found of it so hope you like it .

Will surely do thanks for the suggestion 😃


bump version to 0.3.0

Coverage remained the same at 93.591% when pulling c4fd8ac0d80f63379c8db0462987bb4da7a7e5df on hendrikmuhs:bump-0.3.0 into 267c6c6e9adbdd95bfb433ff03f478f295a38382 on KeyviDev:master.


Passing context

How can I pass a context when I generate a hash this way?

# File A

class MyDecorator < Representable::Decorator
  include Representable::Hash

  property :needcontext, :getter => -> (*) { #user context here }

end

# File B
context = {:foo => :bar}
MyDecorator.represent(obj).to_hash(context # pass somehow)

I'd like to be able to use context in my decorator.

I'd say RTFM! but my twitter bio says "Don't be a dick", so here we go :grinning: https://github.com/apotonick/representable#passing-options

I read the README 3 times and I missed this 3 times.
Sorry, and thanks.

No problem, buddy. I am gonna discuss this in my book as well! https://leanpub.com/trailblazer hint


Enable dev controllers in staging

Description
Allow file upload to be tested with a real S3 bucket.
Checklist

[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Related #684, just linking.


Wrong event date for coinmarketcal events

Hi there,
We're a big fan of your bot but encounter one small issue: when using the cal utility the coinmarketcal events are returned with an incorrect date (one month ahead).
See screenshot:

Best regards,
Brando

Hey Brandon,
Thanks for letting me know about this. I'm honestly surprised no one has pointed that out through the many weeks this bot has been up for..Will fix this ASAP.

Should be fixed as of https://github.com/kodycode/CoinMarketBot/pull/77


Container doesnt start

In the logs i see :
[emerg] 12#12: socket() [::]:80 failed (97: Address family not supported by protocol)
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

ipv6 is disabled on the host..

Hello please retry with the latest version. Note that the port exposed by the container was changed to 8080.
If your problem is related to IPv6, please try the following:
Create your own nginx.conf. Start with the one from inside the container:
docker exec -it mediawiki_wiki cat /etc/nginx/nginx.conf
In your nginx.conf file remove the following line:
listen [::]:8080;
Mount your own nginx.conf file into the container:
-v /var/mediawiki/nginx.conf:/etc/nginx/nginx.conf


chore(release): Add a postbump lifecycle method to update the version…

… numbers in the .openshiftio/application.yaml during the release process

Pull Request Test Coverage Report for Build 54

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.85%

Totals

Change from base Build 53:
0.0%

Covered Lines:
97

Relevant Lines:
100

💛  - Coveralls

Pull Request Test Coverage Report for Build 54

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.85%

Totals

Change from base Build 53:
0.0%

Covered Lines:
97

Relevant Lines:
100

💛  - Coveralls


Missing Accunetix report on upload section

Issue Type

[ ] Bug
[x] Enhancement

Description
The dfectdojo currently not supporting accunetix scanners report, which are highly used in market. It would be great to have the support of accunetix tool in defectdojo.

@itsgauravjain22 I believe this has been added in dev. If you would like to confirm it works.


Error: Repository access blocked when running the script

Here's the full log:
$ npx hacktoberfest-hunt

Need to install the following packages:
<EMAIL_ADDRESS>Ok to proceed? (y)
Personal access token auth for Github.
Enter a 40 character personal access token generated at
https://github.com/settings/tokens (no scopes necessary)
PAT: ✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔✔

✔ Authorized for oscard0m
Wrote access token to "/Users/XXX/Library/Application Support/hacktoberfest-hunt/config.json"
✓ Retrieved your starred repositories.
✖ Error occurred!
Repository access blocked

The token generated is with no scopes, as suggested.

Mhh maybe one of your started repositories is private now. I'll take a look

Mhh maybe one of your started repositories is private now. I'll take a look

I have limited time to take a look into it these days but if you need help on this ping me

closing because there is a workaround see #9


Starting point for TidierText.jl

If we decide to make a TidierText.jl package, here are two great resources as a starting point:

https://gist.github.com/atantos/8b306b800a5a23fb9b9ebfecde6219d2

https://youtu.be/CwQLa2_ljpI

Over the last week or so, I have building on the above work to get this draft of TidierText.jl. I thought i would share it here, any/all are welcome to join in/share thoughts.
bind_tf_idf, most of the unnest_*, and anti_join are implemented with some optional arguments and basic macros to work with TidierData.jl as below:
@chain sentences begin
    #@unnest_tokens(word, text, to_lower = true)
    @unnest_regex(word, text, "\\.? ")
    @group_by(doc_id, word)
    @summarize(n = n())
    @ungroup()
    @arrange(doc_id)
    @antijoin(get_stopwords())
    @bind_tf_idf(word, doc_id, n)
end

This looks amazing, @drizk1! Do you want to transfer this repo into TidierOrg? Then we can work together to get this in shape for release.

Sounds good! I'll get it transferred over shortly

Now that TidierText.jl is up and off to the races, will close this issue.


Parser improvements related to line break stripping

Changes

strip line breaks at the beginning and the end of the text
strip extra line breaks after the blockquote

Small demo:

Testing:

unit tests
manual

Fix #131


Night ritual causes crash

Describe the bug
Using the night time ritual the game crashes, with cast error (Here)
To Reproduce
Steps to reproduce the behavior:

Perform the Dusk Spirit ritual
Wait as the spirit does its thing
Crash

Expected behavior
It should become night, not crash
Screenshots
If applicable, add screenshots to help explain your problem.
System (please complete the following information):

Occultism Version: 1.16.5-1.18.0
OS: Windows
Minecraft Version: 1.16.5
Modpack Link and Version, or list of mods: Create Above and Beyond

Additional context
Daytime spirit works

Many thanks for testing day and night! Apparently I forgot to apply the fix to this one.


Update privileges, scope and nomination processes

Addresses #3

A general question. Are all the CI/CD pipelines ready to run for forks?

A general question. Are all the CI/CD pipelines ready to run for forks?

I cannot say for sure whether all of them are ready to run for forks but generally yes, CICD is performed for forks 👍

@honnix yes, CI is prepared to work with forks. Any particular concern you may have on this? Happy to help


DO NOT MERGE! Fast Forward stable to 228338f654228b11060551f29cd6fb9f78aba6c6.

This PR will be merged automatically once checks are successful.

This change is

Jenkins job mixer/postsubmit passed

Jenkins job mixer/postsubmit passed


jsonpb: add benchmarks

Running on my late-2012 MacBook, jsonpb is 4x - 10x slower than encoding/json.
$ go test -bench=. -benchmem
BenchmarkSimpleMarshalPB-4         30000         41738 ns/op        8064 B/op        145 allocs/op
BenchmarkSimpleMarshalJSON-4      300000          4903 ns/op         632 B/op          5 allocs/op
BenchmarkSimpleUnmarshalPB-4       30000         49350 ns/op        6695 B/op        113 allocs/op
BenchmarkSimpleUnmarshalJSON-4    100000         16748 ns/op        1312 B/op         68 allocs/op

I don't think this needs to be fixed right now, but I do think it's a good idea to have the benchmarks in the codebase.

@dsymonds what is the status of this PR?

I apologize for the great delay; we're working through the backlog of protobuf issues. I appreciate you contributing this benchmarks, but we have some refactoring of the jsonpb planned, which will incorporate a more comprehensive benchmark suite.


Combobox does not render correctly and does not function

Steps to replicate:

Create a Laravel app, use Vite & tailwind css.
Install the package composer require sertxudeveloper/livewire-combobox
Create a combobox php artisan combobox:make ApplicationsCombobox -m Application
Use the combobox

<x-form.group label="Application" required class="mb-4">
        <livewire:applications-combobox />

        <x-form.error name="form.application_id"></x-form.error>
</x-form.group>

The combobox will not render properly, nor will it function.

Verified:

A model named Application exists, and it has a name property.
Tailwind css is installed.
PHP version 8.3
"livewire/livewire": "^3.5.12",
"laravel/framework": "^11.31",

Thanks for the heads up @sertxudev. I've decided to create my own component since it better fit my needs. Perhaps the repository should indeed be archived if the Livewire version is outdated and no active maintenance is being performed.


Move boot environments to ${BASE}/environments/

It's only a matter of time until a pool name conflicts with a file that we create in /zfsbootmenu. Moving the pool/dataset directory layout to /zfsbootmenu/environments puts them in a directory free of potential conflicts. A helper function, be_location has been added that returns the on-disk path for where a filesystem should be mounted/live. This avoids having to manually construct this string when mount_zfs isn't in use.

This has been minimally tested - it's possible that I've missed some uses where ${BASE}/${fs}/... was crafted directly, but a quick and dirty grep doesn't show anything.