upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2024-08-06feat(remote): `fetch` report on progressDanConwayDev
so that user knows what step we are on
2024-08-06feat(remote): `list` includes open proposalsDanConwayDev
and filters out other branches in `prs/*` namespace
2024-08-06test(remote): `list` fix warning copyDanConwayDev
to align with changes in 557a5d98c6ea373db117d6fe19489086b4461aa7
2024-08-05feat(remote): `push` handle out-of-sync serversDanConwayDev
1. don't attempt to push to a remote which is already up-to-date 2. don't attempt to delete branch on remote if it is already deleted 3. only push when out of sync if remote tip is ancestor of pushed commit 4. force push to remote if user force pushed and remote is in sync with nostr
2024-08-05test(remote): remove `async_run_test`DanConwayDev
where it is not needed so code is easier to read
2024-08-05test(remote): run `list for-push` before `push`DanConwayDev
because this is how git uses the git remote helper
2024-08-05test(remote): refactor `push` testsDanConwayDev
to: 1. test helper response (ok printed) seperately 2. make failing tests end and print failure rather than hanging 3. remove `async_run_test` function when it isn't needed
2024-08-02test(remote): warn when out of syncDanConwayDev
update test to refelect warning message
2024-08-02feat(remote): improve warning copyDanConwayDev
so it is more concise and clear
2024-08-01fix(remote): display nostr fetch reportDanConwayDev
use stderr to write lines that get displayed when run as a git-remote-helper
2024-08-01Revert "fix(remote): display nostr fetch report"DanConwayDev
This reverts commit 6b63f150ba9e7c69bf83bcbd24543051c765c9f6.
2024-08-01fix(remote): display nostr fetch reportDanConwayDev
use `stderr` to write lines that get displayed when run as a git-remote-helper
2024-08-01feat(remote): `fetch` fallsback to other serversDanConwayDev
listed in the announcement `clone` tag
2024-08-01feat(remote): `push` to all `clone` serversDanConwayDev
initially we push to the first server, if successful update the state event, then siliently push to the others and silently fail
2024-08-01feat(remote): `fetch` uses state eventDanConwayDev
and falls back to git server is state event cant be found
2024-08-01test(remote): `push` delete branch updates stateDanConwayDev
in nostr state event
2024-07-31fix(remote): updating `push` state eventDanConwayDev
ensure refs are included in state event use `HashMap` to improve `RepoState` struct
2024-07-31feat(remote): `push` issues state eventDanConwayDev
if no previous state events can be found it replicates git server otherwise it just updates pushed value
2024-07-31test(remote): `push` deletes branchDanConwayDev
on the git server and in local remote refs
2024-07-31test(remote): push updates remote refsDanConwayDev
in the local git repository
2024-07-31test(remote): `push`updates ref on git serverDanConwayDev
for multiple branches send in a batch
2024-07-31test(remote): `fetch` downloads commitsDanConwayDev
from git server specified in announcement
2024-07-31test(remote): add second branch to `list`DanConwayDev
and ignore the branch ordering
2024-07-31test(remote): `list` returns HEAD and mainDanConwayDev
returns head and main branch head
2024-07-31test(remote): test helpers and basic fetchDanConwayDev
create test helpers and setup basic test to verifiy fetch was ran
2024-07-25fix(init): add missing identifier to yamlDanConwayDev
add missing or updated identifier to maintainers.yaml as we were not checking whether it has changed or added also update if relays do not match
2024-07-24refactor: use nip34 kinds from rust-nostrDanConwayDev
instead of Kind::Custom(u16) as v33 of rust-nostr introduced them
2024-07-24test: remove old proposal rev amended locallyDanConwayDev
`pull` test. It's failing and only tests for different copy in an obscure scenario
2024-07-24test: abstract `list` and `pull` test codeDanConwayDev
to enable improved debugging
2024-07-24feat(push): `--force` tries non-interactivelyDanConwayDev
if branch is ahead of main or master
2024-07-24test: fix `pull` testsDanConwayDev
it was so much clearer what the problem was after abstracting reused test code
2024-07-24test: refactor `list` and `pull` to abstract codeDanConwayDev
into lib which makes reading and maintaining tests easier
2024-07-24test: refactor `pull` and `push` to abstract codeDanConwayDev
into lib which makes reading and maintaining tests easier
2024-07-23feat(list): unique proposal branch namesDanConwayDev
to prevent accidental name conflicts. also moved to prs/* namespace `pull` and `push` integration tests are intermitantly failing to end at least for `push` they work when run individually but not when run together
2024-07-22fix: typos and improve copyDanConwayDev
when finding repo announcements add a hint to find naddr on gitworkshop.dev
2024-07-19feat: integrate `fetch` into `list`DanConwayDev
as part of a project to use fetch and the stored cache everywhere
2024-07-19feat: integrate `fetch` into `pull`DanConwayDev
the last set of pull integration test fails: when_latest_event_rebases_branch we are planning on replacing pull so I'm not sure whether it is worth fixing
2024-07-19feat: integrate `fetch` into `push`DanConwayDev
as part of a project to use `fetch` and the stored cache everywhere
2024-07-19feat: intergrate `fetch` into `send`DanConwayDev
reworking the tests and test suite as appropriate
2024-07-17feat(init): set repo pointer in git configDanConwayDev
set repo.nostr to naddr reflecting the announcement just issued
2024-07-17feat(login): use fetch to get user profileDanConwayDev
fetch automatically gets updates to logged in user profile / relays fetching without specifying repo pointers will just fetch user profiles so that can be used during login, if user profile isn't in cache login now uses fetch
2024-07-15feat(fetch): fetch events and save to cacheDanConwayDev
enabler to add simplicity, efficency and offline capability to other functions improve repo announcement selection
2024-07-02feat(send): tag each maintainer's repo eventDanConwayDev
instead of just tagging the first maintainer's repo event and each maintainer with a p tag This allows for easier discoverability of the proposal when: * the first maintainer hasn't issued a repo event * the maintainers change over time and the single tagged repo event is no listed as a maintainer in anyone elses repo event
2024-06-28feat(login): login with nostr address via nip46DanConwayDev
currently using patched version of rust-nostr with function to fetch nip46 relays from nip05 providers. this patch has been merged so it will make it into the next rust-nostr release.
2024-06-28test: increase timeout for expensive testDanConwayDev
as it is failing intermitantly since it is being run in parellel
2024-06-28feat(login): login with nip46 remote signerDanConwayDev
and save details in git config
2024-06-26refactor: remove fresh test configDanConwayDev
as config is now stored using git config and cache is conditionally stored in local ./git folder under test conditions
2024-06-24feat(login): store in git config and use cacheDanConwayDev
replace ngit yaml file config with: * nsec / ncryptsec / npub in git config in nostr.* namespace * sql database cache for metadata and relay events allow different logins to be used for different git repositories by storing login in local git config
2024-06-13feat(init): add euc marker to commit referenceDanConwayDev
based on nip34 update. see nip repository commit 8fe6e062254b37f77540088cccff60fa8615751
2024-06-13chore: bump rust-nostr to v0.32.0DanConwayDev
both nostr and nostr-sdk packages and also in test_utils fix the many breaking changes fix: ignore trailing slash when depuplicate relays for send events. this was picked up as TagStandard::RelayMetadata has started adding a traling slash. refactor cli output test function `expect_send_with_progress` so that relays can succeed / fail in a random order
2024-06-11refactor: bump rust-nostr to v0.30 use ncryptsecDanConwayDev
bump nostr and nostr-sdk packages and also in test_utils remove custom ncryptsec implementation and use the newly added implementation nip49 version in rust-nostr note a patched v0.30 is used so that log_n is exposed so that user can be warned it might take a few seconds to decrypt. this has now been merged into the library. note that this will no longer decrypt existing ncryptsec values as it is uses a longer string. this should therefore be bundled with the upcoming change to storing nsec and ncryptsec in git config.
2024-05-23feat: add NIP-31 alt tagsDanConwayDev
to repo announcements, patches and cover letters
2024-05-07feat(send): `in-reply-to` tags npubs and eventsDanConwayDev
in addition to being used to create a new proposal revision, in-reply-to can now be used to reference other events and npubs. for example an issues or kind 1 threads where the proposal is relevant the proposal will only be marked as a revision if the first parameter is a reference to an existing proposal root
2024-04-22feat(send): print link to proposal rootDanConwayDev
after a new root proposal has been sent link directly to gitworkshop.dev as well as njump.me until gitworkshop is added to njump
2024-03-28test: fix intermittent test failuresDanConwayDev
caused by test proposals with the same timestamp listed in an inconsistant list order; by ensuring test proposals have a different timestamps
2024-03-27replace blocking client in tests with asyncDanConwayDev
as it has been removed from nostr_sdk
2024-03-25update tag generationDanConwayDev
to reflect changes in rust-nostr
2024-03-22chore: cargo updateDanConwayDev
update dependancies to latest version stated in cargo.toml
2024-03-08feat(send): select commits from a listDanConwayDev
when since_or_range isn't specified adds resilience as assuming master..HEAD can cause some issues eg when master is not up-to-date with origin/master
2024-03-04test: ensure failed tests timeoutDanConwayDev
resolve a long standing test issue where failures to output the correct message in the cli would result in the test never ending rather than failing the many test cases updated in this change are to ensure failures are caught rather than ignored some of them are just refactored to remove calling an extra function, which is no longer needed note: this doesn't fix the intermittent issue, most commonly experienced under the nix configuration, where tests that should pass occationally never end preventing the rest of the suite from running
2024-03-01feat(send): fix grammar in cli outputDanConwayDev
refer to a single patch as patch rather than patches
2024-03-01feat(send): when on main default to sending 1 patchDanConwayDev
based on feedback from santos: nostr:31c085a584cbd30f71a44a70eaf828c2c8c5f6e3efb7942547edb37cf4a632cf
2024-02-29feat(send): add proposal revision cli msgDanConwayDev
before cover letter prompt primarily this is to make it clearer that a proposal update is being sent when using `ngit push --force` instead of a new proposal
2024-02-28fix: branch-name specified as main or masterDanConwayDev
branch-name should be ommitted or ignored if patches created on main or master instead it should be infered based on commit msg
2024-02-23feat(list): newest proposals firstsDanConwayDev
show proposals in order newest first
2024-02-23feat(init): improve copy orderDanConwayDev
move instruction to commit and push maintainers.yaml to end of file
2024-02-23feat(init): add customisation and defaultsDanConwayDev
- allow more cli input options - allow customisation of more fields in interface - change default identifer from shorthand root commit to short name - defaults to existing repo event (users or other) or maintainers.yaml
2024-02-23fix(push): remove force push bugDanConwayDev
introduced in b931b37e26486e4e6d15f302e87141dcf2f596ba
2024-02-23refactor: remove confusing options, improve helpDanConwayDev
from_branch and to_branch have been replaced by specifying revision ranges
2024-02-23feat(push): add `--force` to issue revisionDanConwayDev
wrapping `send --in-reply-to` unless branch up-to-date
2024-02-22refactor: fix spellingDanConwayDev
ammended should read amended
2024-02-22test(list): local proposal amendedDanConwayDev
added test to cover local propsal being amended this should catch error for rebased proposals as well
2024-02-22refactor: simplifed ammendments and rebasesDanConwayDev
to align with changes done to pull c5dfd1b7e509eedc33de75343de8659e3c9e0b2a also improved copy
2024-02-22test(pull): local commits on uptodate proposalDanConwayDev
add test for scenario
2024-02-22test(list): local commits on uptodate proposalDanConwayDev
add test for scenario and tweak copy
2024-02-22feat(pull): support `--in-reply-to` revisionsDanConwayDev
added tests to cover one of these rebase scenarios
2024-02-22fix(list): support `--in-reply-to` latest revisionDanConwayDev
update list to support rebases via proposal revisions as created by `ngit send --in-reply-to` or upcoming change `ngit push --force`
2024-02-21feat(send): in-reply-to arg for revised proposalDanConwayDev
send a revised version of a proposal using the new in-replyto argument suppliments existing 'root' tag with 'root-revision' e 'reply' tag to the original proposal
2024-02-21feat(send): specify commits eg HEAD~2DanConwayDev
specifiy commits or commit ranges in the same way that `git format-patch` allows
2024-02-20feat(list): set checkout branch as default choiceDanConwayDev
instead of no default. note: I spent hours trying to get CliTester to support default choices and gave up. I have a stashed the attempt and am moving on...
2024-02-20refactor: tweak error wordingDanConwayDev
remove the word nostr for consistency and as its a bit confusing
2024-02-20feat(list): download or apply with git amDanConwayDev
add the option to download patches or apply them with git am give more granular messages about the state of proposals. add support for replacing old proposal version with a new one
2024-02-16test: fix wording in cli testDanConwayDev
broken in 701668b02d999af42f51d8bd25fffb2a8692c3c8
2024-02-16refactor: rename PR to proposalDanConwayDev
PR is a problematic term when it ambiguous whether the set of patches are PR-like or email-patch like.
2024-02-15fix: improve 'searching for profile updates' msgDanConwayDev
it wasn't clear why no results were coming back from relays or why it is needs (added reference to relay updates)
2024-02-14feat: find repo event by nevent or naddrDanConwayDev
if repo event cannot be found using unique commit the user can find it via a nevent or naddr also handle no PRs found
2024-02-14feat: send to default relays, blast repo eventDanConwayDev
improve the distribution of events by sending to default relays in addition to user and repo relays. for better discoverability of repo events, this is also blasted. a temporary fix to blast everything was removed. the less reliable purplepages.es relay is moved to more_fallback_relays that currently isn't used
2024-02-14feat!: move `claim` > `init`DanConwayDev
this aligns with gitstr and is more intuative the idea behind using claim to indicate that it is only for maintainersto do is valid but its too confusing
2024-02-14feat!: move `prs create`>`send`, `prs list`>`list`DanConwayDev
remove unnecessary hierachy of `prs` which is also a troublesome term replace the concept of `create` which aligns more to the PR github model to `send` which aligns more with the git patch model
2024-02-13feat!: nip34 set pr kind to patch kindDanConwayDev
this enables consistancy of display with simple clients that are just taking the output of `git format-patch`
2024-02-13feat!: nip34 make pr event optionalDanConwayDev
use first patch as thread root if pr event isn't present. begin renaming pr event to cover letter. fix patch ordering upon creation. patches were in youngest first order which caused: - `PATCH n/t`to be in reverse order - the youngest patch was the marked root - oldest patch replied to the youngest fix finding most recent patch event. when a patch in a set is the most recent it will share a created_at with other patches. previously the first patch recieved from relay in the set would be used. now it finds the first patch with that created_at which isn't also a parent of another patch with the same created_at.
2024-02-13feat(prs-create)!: pr to nip34-like cover letterDanConwayDev
up the pr event type to a nip34-like cover letter format this sets the building blocks in place to enable simplier clients to use the 'cover letter' feature in `git format-patch` to create the experience as a pr event
2024-02-09refactor(git): find root commit from headDanConwayDev
this is simpler there is no need to check whether main or master exist because one does 99+% of the time the root commit wil be te same for head as master 99+% of the time
2024-02-09feat(prs-create): add `PATCH n/n` to contentDanConwayDev
format patch as a series in the patch event content unless it is 1/1 and there is no pr (cover letter) event
2024-02-02test: replace block_on with tokio::testsjk
This is intended to improve the reliabilty of the tests. there have been particular issues with random tests never ending when run in the nix configuration see discussion here https://github.com/DanConwayDev/ngit-cli/issues/ 6#issuecomment-1918971239 and: https://github.com/DanConwayDev/ngit-cli/pull/7
2024-02-02feat(prs-create)!: use nip34 patch kind and tagsDanConwayDev
- change kind number - remove "r-" prefix from unique commit id r tag - rename tag commit-sig to commit-pgp-sig - a tag for repo identifer and pubkey. this serves as a vote for this pubkey being a maintainer - add relay hints - change format of committer tag - remove r references to parent commit id - tag parent patch event if its part of change request author and commit-message tags still need to be removed but they are required to apply patches with gitlib2. we will need to fallback to running the git client to apply patches. BREAKING CHANGE: change patch/commit event kind and tags to reflect nip34 draft. events with the older kind will no longer be found and will not be in a valid format
2024-02-02feat(repo_ref)!: align maintainers tag to nip34 styleDanConwayDev
nip34 specifies that repo event tags with multiple values wuch as "relays" and "web" use theformat: `["tag", "item", "item"...]` instead of: ``` ["tag", "item"], ["tag", "item"], ``` this update also adds clarity. it is not obvious that using a p tag is intended to make the pubkey a co-maintainer. BREAKING CHANGE: format of maintainers tags in repo events has changed to reflect nip34 style and ngit will not detect the old format
2024-02-02feat(repo_ref)!: use nip34 kind and tagsDanConwayDev
- change kind number - do not rely on d identifiers for unique commit id. set it as default to unique commit id shorthand. - remove "r-" prefix from unique commit id r tag and instead add checks for SHA1 validity - rename tag git_server to clone - add web tag - use single relays tag instead of multiple relay tags BREAKING CHANGE: change repo event kind and tags to reflect nip34 draft. events with the older kind will no longer be found and will not be in a valid format
2024-01-27fix(login): stop bailing when no name in metadataDanConwayDev
now falls back to displayName, display_name or npub test pass when loggined printed to the cli in e0f543e8adb144f6deff6ff7ea0c412c9fcac5b4 are commented out
2024-01-26chore: upgrade rust-nostr v0.27.0v0.1.1DanConwayDev
this is a contribution from jk (sectore) that I rebased and squashed into this commit. the tests were broken in the last few commits to rush out some fixes. this change may introduce more issues because of Relay.respond_standard_req.