Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fixes path issues on windows #829

Merged
merged 49 commits into from Feb 5, 2024

Conversation

Monirzadeh
Copy link
Collaborator

@Monirzadeh Monirzadeh commented Jan 28, 2024

This PR try to fix failed test in windows and fix #822
TODO:

  • thumb path fix
  • serve frontend files in windows and pass style css test in frontpage_test.go for windows.
  • failed to create destination dir file does not exist.
    • everywhere we us WriteFile this test failed in windows. core test failed because of that.
    • maybe this is a false negative. i can pass that with some change and manual testing work fine in windows too. i should be sure about that. (pass a not absolute path for temp in unit test and it work fine)
      for example change this two line
      tempDir := t.TempDir()
      dstDir := t.TempDir()

      to this and test will pass
  • The process cannot access the file because it is being used by another process.
tempDir := "tmpdir"
dstDir := "dstdir"
  • cleanup the code and unify variable names

Fixes #829
Fixes #824
Fixes #823
Close #827
Close #822

Copy link

codecov bot commented Jan 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (15b2a1e) 25.49% compared to head (ffe6f26) 25.49%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #829   +/-   ##
=======================================
  Coverage   25.49%   25.49%           
=======================================
  Files          47       47           
  Lines        5632     5632           
=======================================
  Hits         1436     1436           
+ Misses       3999     3997    -2     
- Partials      197      199    +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@fmartingr
Copy link
Member

Try this changes to the database tests:
dbtest.patch

@fmartingr
Copy link
Member

fmartingr commented Feb 2, 2024 via email

@Monirzadeh
Copy link
Collaborator Author

Monirzadeh commented Feb 2, 2024

Could be a permissions issue on Windows maybe?

maybe but i am not sure how should solve that
i think something wrong with TempDir itself.
lots of same error report for TempDir in golang repository. you can just search error in golang.

The process cannot access the file because it is being used by another process.

@Monirzadeh
Copy link
Collaborator Author

Monirzadeh commented Feb 2, 2024

i manualy create directory in C:\Users\myusesrname\AppData\Local\Temp\ name test
and pass path to test and, .env created in there and test pass.
is should check how can i should change permission for t.TempDir()

Update

			tmpDir := t.TempDir()
			os.Chmod(tmpDir, 0777)
			os.Chdir(tmpDir)

not work :(

Copy link
Member

@fmartingr fmartingr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for researching into this, I've left a few comments around, mostly around path generation (we should use filepath.Join or path.Join where appropiate), and to remove some other temporary things.

internal/config/config_test.go Outdated Show resolved Hide resolved
internal/config/config_test.go Outdated Show resolved Hide resolved
internal/core/ebook_test.go Outdated Show resolved Hide resolved
internal/core/ebook_test.go Outdated Show resolved Hide resolved
internal/core/ebook_test.go Outdated Show resolved Hide resolved
internal/core/processing_test.go Outdated Show resolved Hide resolved
internal/core/processing_test.go Outdated Show resolved Hide resolved
.github/workflows/_test.yml Show resolved Hide resolved
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
@Monirzadeh
Copy link
Collaborator Author

i think everything's work fine now.

Note: i am not sure that env is in correct location.

@fmartingr
Copy link
Member

I have pushed a commit to your branch with the env change.

Can you check the test change for these lines: https://app.codecov.io/gh/go-shiori/shiori/pull/829/indirect-changes#79a7897873ac5d4fcc5ba2f5c3b3e482-R138

It seems we have stopped testing part of the happy path. I'm not concerned about the if err != nil not being tested, but the if err == nil should be covered be tests, more so if tests were covering those lines before.

@Monirzadeh
Copy link
Collaborator Author

Monirzadeh commented Feb 4, 2024

@fmartingr i fix that.
the problem is that serve file from local disk not working correctly in windows in test
ProcessRequest sucssesful with multipleimage included favicon and Thumbnai. for now, i serve them from shiori repository until i can find a solution to fix file server in windows (test some of them but not working in windows yet) and send another PR for that later if it is ok for you.
what do you think?

Update: add one more check to be sure thumbnail exist on disk :)

Copy link
Member

@fmartingr fmartingr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. just the log issue in the test, everything seems ready to go. Again, awesome work, thanks a lot for digging into this in windows :)

@fmartingr fmartingr added this to the 1.6.0 milestone Feb 5, 2024
@fmartingr fmartingr merged commit 82aa1e5 into go-shiori:master Feb 5, 2024
10 checks passed
@Monirzadeh Monirzadeh deleted the fix-test-in-windows branch February 5, 2024 09:30
truecharts-admin added a commit to truecharts/charts that referenced this pull request Mar 17, 2024
…0@628826c by renovate (#19427)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/go-shiori/shiori](https://togithub.com/go-shiori/shiori) |
minor | `v1.5.5` -> `v1.6.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>go-shiori/shiori (ghcr.io/go-shiori/shiori)</summary>

###
[`v1.6.0`](https://togithub.com/go-shiori/shiori/releases/tag/v1.6.0)

[Compare
Source](https://togithub.com/go-shiori/shiori/compare/v1.5.5...v1.6.0)

It's finally here! After some work we have started moving towards **a
more usable and open API** for others to consume, with **proper session
handling** (no more random logouts on server shutdowns!), improvements
to **ePubs**, UX and some more!

See details below for more information (important notes are the breaking
changes) and please fill an issue if you see anything weird, better be
safe than sorry!

#### Breaking changes

- The `serve` command is considered deprecated and will be removed in a
future release. Right now just proxies to a new `server` command that is
the one that should be used from now on.
- The **server** command uses a new http backend. This **should be
transparent to users** and all things should keep working as usual, but
that meant refactoring some of the underlying systems too, so
experiences may vary between deployments and operating systems. Please
fill an issue if you see that something is not working as expected.
- We are moving the API to a more stable, documented and with a proper
code structure. Right now there's a mix between old and new endpoints
until migration is completed. Check [the
documentation](https://togithub.com/go-shiori/shiori/blob/master/docs/APIv1.md)
for more information on the new API and [this roadmap
filter](https://togithub.com/orgs/go-shiori/projects/2/views/11) to see
progress on the API migration.
- Authentication to the API now uses JWTs instead of session tokens and
the **endpoint has changed to a new one**, please check the
documentation mentioned above. This means that there's no longer logout
issues when the server is restarted or when you log in in other
computer/browser.
- The `--webroot` flag **no longer modifies the routes internally**, is
up to the user to proxy the routes properly to Shiori without the prefix
used to serve it.
That means that if you want to serve Shiori under `domain.com/shiori`
you need to send the path back to Shiori without the `/shiori` prefix so
routes keep working. This can be done in most reverse proxies that we're
aware of. We provided [a sample configuration for
Nginx](https://togithub.com/go-shiori/shiori/blob/master/docs/Configuration.md#reverse-proxies-and-the-webroot-path).
PRs are welcome for other reverse proxies.
- The `shiori/gopher` initial user is a full fledged user instead of
being hardcoded into Shiori. If you want a new user you need to create a
new owner user and then remove the `shiori` user.

#### Release cadence

Right now the release cadence has been slow because we made too many
changes at once and we had to test and finish everything before doing
this release. Plan moving forward is to iterate and release faster so
we're planning smaller milestones to provide new features and fixes
faster to you.

I will post an update announcement when [the
roadmap](https://togithub.com/orgs/go-shiori/projects/2/views/4) is
reviewed.

#### What's Changed

- APIv1: Start working on new REST API. Refactor logic in domains. by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#497
- Run legacy API and new API at the same time. by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#648
- fix: docker buildx tags by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#650
- Allow JWT authentication into legacy APIs by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#651
- Show version in login page by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#652
- fix: package-name in cleanup tag by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#655
- fix: pr tag prune using other action by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#656
- fix: title is never retrieved when adding bookmark by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#664
- Show Shiori version on server command by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#669
- chore: remove irc badge from README by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#674
- fix: title overwritten if user has defined it by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#684
- Proper SQLite default database and warn SHIORI_DBMS users by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#667
- chore: remove verbose logger by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#685
- Fix CI incorrectly tagging RC releases and disables docker builds on
forks by [@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#686
- preserve fragment in URLs
([#&#8203;315](https://togithub.com/go-shiori/shiori/issues/315)) by
[@&#8203;arakimo](https://togithub.com/arakimo) in
[go-shiori/shiori#687
- Swagger improvements by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#666
- fix: Ensure bookmark files are correctly downloaded before deleting
current ones by [@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#683
- fix(db): handle usage of special characters in searches by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#721
- fix: properly parse mysql connection string, docs update by
[@&#8203;rutkai](https://togithub.com/rutkai) in
[go-shiori/shiori#730
- deps: upgrade to Go 1.21 by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#698
- deps: upgrade github.com/gofrs/uuid to v5 by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#736
- feat: build css from less files locally by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#735
- refactor: Migrate ePub generation to go-epub by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#679
- chore(deps): bump the all group with 6 updates by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#738
- chore(deps): bump the all group with 1 update by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#740
- feat: use new JWT auth in all frontend API calls by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#743
- chore(deps): bump the all group with 1 update by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#746
- fix: styles-check and swag-check monitor just needed directory not
project root by [@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#747
- feat: allow resize the dialogbox for bigger/hidpi screens by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#732
- feat: allow per-user settings and store them in database by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#639
- fix: Remove unneeded variable and unify the way send token in header
by [@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#763
- add create ebook by default in settings by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#761
- fix: Actions in overlays on mobile hard to press by
[@&#8203;cbe](https://togithub.com/cbe) in
[go-shiori/shiori#759
- fix: Use webp as thumbnail by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#758
- Update documentation for add links to shiori in android devices from
share menu by [@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#757
- Fix typos by [@&#8203;shirayu](https://togithub.com/shirayu) in
[go-shiori/shiori#756
- chore(deps): bump the all group with 1 update by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#767
- refactor: migrate ebook routes by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#742
- Make suggestions tapable/clickable by
[@&#8203;cbe](https://togithub.com/cbe) in
[go-shiori/shiori#765
- chore: frontend formatting by [@&#8203;cbe](https://togithub.com/cbe)
in
[go-shiori/shiori#764
- ci: add codecov reporting by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#776
- deps: update go dependencies by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#777
- fix typo by [@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#778
- docs: example deployment for kubernetes by
[@&#8203;JPFrancoia](https://togithub.com/JPFrancoia) in
[go-shiori/shiori#754
- Add Documentation>CLI>Add bookmark by
[@&#8203;LLKoder](https://togithub.com/LLKoder) in
[go-shiori/shiori#794
- fix: generate coverage profile by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#797
- fix: use noreferer to prevent exposing shiori instance url to archived
websites by [@&#8203;istiak101](https://togithub.com/istiak101) in
[go-shiori/shiori#802
- deps: upgrade by [@&#8203;fmartingr](https://togithub.com/fmartingr)
in
[go-shiori/shiori#804
- refactor: migrate bookmark static pages to new http server by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#775
- Fixed lint errors after refactor by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#806
- docs: updated configuration page by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#808
- fix: force usage of shiori prefix for environment variables in
configuration by [@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#807
- deps: updated docker image versions by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#809
- chore(deps): bump the all group with 3 updates by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#812
- chore(deps): bump the all group with 3 updates by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#815
- chore(deps): bump the all group with 3 updates by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[go-shiori/shiori#830
- fix: fixes path issues on windows by
[@&#8203;Monirzadeh](https://togithub.com/Monirzadeh) in
[go-shiori/shiori#829
- fix: regressions and documentation from 1.5.5 upgrade by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#837
- fix: update go-epub to latest version to avoid filename errors on
windows by [@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#840
- fix: point go-epub go correct repository by
[@&#8203;fmartingr](https://togithub.com/fmartingr) in
[go-shiori/shiori#842
- feat: allow authentication using proxy request header by
[@&#8203;PterX](https://togithub.com/PterX) in
[go-shiori/shiori#836

#### New Contributors

- [@&#8203;arakimo](https://togithub.com/arakimo) made their first
contribution in
[go-shiori/shiori#687
- [@&#8203;rutkai](https://togithub.com/rutkai) made their first
contribution in
[go-shiori/shiori#730
- [@&#8203;cbe](https://togithub.com/cbe) made their first contribution
in
[go-shiori/shiori#759
- [@&#8203;shirayu](https://togithub.com/shirayu) made their first
contribution in
[go-shiori/shiori#756
- [@&#8203;JPFrancoia](https://togithub.com/JPFrancoia) made their first
contribution in
[go-shiori/shiori#754
- [@&#8203;LLKoder](https://togithub.com/LLKoder) made their first
contribution in
[go-shiori/shiori#794
- [@&#8203;istiak101](https://togithub.com/istiak101) made their first
contribution in
[go-shiori/shiori#802
- [@&#8203;PterX](https://togithub.com/PterX) made their first
contribution in
[go-shiori/shiori#836

**Full Changelog**:
go-shiori/shiori@v1.5.5...v1.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI1Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

No web interface on Shiori 1.6.0 RC 6
2 participants