mirror of
https://github.com/avinal/avinal.github.io.git
synced 2026-07-04 07:40:09 +05:30
fix markdown error and 404
This commit is contained in:
@@ -1,31 +1,12 @@
|
||||
---
|
||||
title: Google Summer of Code 2021
|
||||
date: 2021-08-19 23:07
|
||||
tags: gsoc, FOSSology
|
||||
tags: [gsoc, FOSSology]
|
||||
category: development
|
||||
description: This is the final report of my Google Summer of Code 2021 at The FOSSology Project.
|
||||
---
|
||||
# Google Summer of Code 2021
|
||||
|
||||
date
|
||||
2021-08-19 23:07
|
||||
|
||||
tags
|
||||
gsoc, FOSSology
|
||||
|
||||
category
|
||||
report
|
||||
|
||||
summary
|
||||
This is the final report of my Google Summer of Code 2021 at The
|
||||
FOSSology Project.
|
||||
|
||||
slug
|
||||
final-evaluation
|
||||
|
||||
status
|
||||
published
|
||||
|
||||
<style>
|
||||
.rd {color:red;font-weight:bold}
|
||||
.gr{color:green;font-weight:bold}
|
||||
@@ -57,7 +38,7 @@ Since the FOSSology project moved on Github, it has used only the free
|
||||
Travis CI service for OSS projects. At the time of writing Travis CI has
|
||||
reduced its free tier CI services. GitHub Actions provides faster
|
||||
builds. Since GitHub Actions is a fully managed service by GitHub, we
|
||||
don’t need to know how to scale and operate the infrastructure to run
|
||||
don't need to know how to scale and operate the infrastructure to run
|
||||
it.
|
||||
|
||||
It is straightforward to use with GitHub because when we fork a
|
||||
@@ -508,7 +489,7 @@ The list below describes them.
|
||||
|
||||
### GitHub Actions CI Tasks
|
||||
|
||||
| \# | CI Tasks | Status |
|
||||
| # | CI Tasks | Status |
|
||||
|-----|-----------------------------------------|----------------------------------------------------------|
|
||||
| 1 | <span class="gr">build</span> | Added Ubuntu 20.04 GCC 8, 9 and Clang, GCC 7 not working |
|
||||
| 2 | <span class="gr">c/cpp unit test</span> | Added, delagent, scheduler and ununpack not working |
|
||||
@@ -580,10 +561,10 @@ described below.
|
||||
|
||||
1. Since the new build system is still in review. You must fork
|
||||
FOSSology and pull the
|
||||
[\#2075](https://github.com/fossology/fossology/pull/2075) pull
|
||||
[#2075](https://github.com/fossology/fossology/pull/2075) pull
|
||||
request branch. Once you are in FOSSology root, run these commands.
|
||||
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> git fetch https://github.com/avinal/fossology avinal/feat/buildsystem:buildsystem
|
||||
> git checkout buildsystem
|
||||
> ```
|
||||
@@ -593,7 +574,7 @@ described below.
|
||||
use a directory named `build`, but you can use any name. (**NOTE:
|
||||
For testing do not use other names**)
|
||||
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> mkdir build
|
||||
> cd build
|
||||
> ```
|
||||
@@ -672,7 +653,7 @@ described below.
|
||||
> Once you have chosen your flags we can now configure the project
|
||||
> using the following commands.
|
||||
>
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> # From build folder
|
||||
> cd <name-of-build-directory>
|
||||
> cmake <flags> ..
|
||||
@@ -682,7 +663,7 @@ described below.
|
||||
build faster. For more options you can type `cmake --help` or
|
||||
`make --help` or `ninja --help`.
|
||||
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> # Common build command for all generators,
|
||||
> # Default number of parallel builds depends on generator used
|
||||
> cmake --build . --parallel <no-of-processes>
|
||||
@@ -699,7 +680,7 @@ described below.
|
||||
you directly invoke the install command without building the
|
||||
project, it will automatically build the project first.
|
||||
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> # For Unix Makefiles
|
||||
> make install
|
||||
>
|
||||
@@ -713,7 +694,7 @@ described below.
|
||||
want to test one agent only. See `ctest --help` for controlling test
|
||||
runs.
|
||||
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> # Common testing command
|
||||
> ctest --parallel <no-of-processes>
|
||||
>
|
||||
@@ -730,7 +711,7 @@ described below.
|
||||
without building the project, it will automatically build the
|
||||
project first. See `cpack --help` for more packaging options.
|
||||
|
||||
> ``` bash
|
||||
> ```bash
|
||||
> # Common testing command
|
||||
> cpack
|
||||
>
|
||||
@@ -768,14 +749,14 @@ width="350" alt="A Bug Meme" />
|
||||
- Packages don't contain copyright, readme, and license files. CMake
|
||||
doesn't provide a way to include these files. This is being tracked by
|
||||
issue
|
||||
[\#21832](https://gitlab.kitware.com/cmake/cmake/-/issues/21832).
|
||||
[#21832](https://gitlab.kitware.com/cmake/cmake/-/issues/21832).
|
||||
- While packaging the symbolic links may or may not be dereferenced and
|
||||
hence results in copying the folder too in the target directory.
|
||||
- Running tests locally may require switching to `fossy` user.
|
||||
- While configured for testing, it may give permission errors.
|
||||
- Scheduler, Ununpack, and Delagent unit and functional tests are not
|
||||
working. I have added an issue
|
||||
[\#2084](https://github.com/fossology/fossology/issues/2084) to track
|
||||
[#2084](https://github.com/fossology/fossology/issues/2084) to track
|
||||
the progress on fixing these tests.
|
||||
- CMake doesn't generate uninstall targets. The closest thing to
|
||||
uninstall is [this
|
||||
@@ -807,12 +788,12 @@ new build system.
|
||||
## Related Resources and Links
|
||||
|
||||
- Fix FOSSology agent tests issue
|
||||
[\#2084](https://github.com/fossology/fossology/issues/2084)
|
||||
[#2084](https://github.com/fossology/fossology/issues/2084)
|
||||
- feat(CI): Migrate API docs generation and deployment to GitHub Actions
|
||||
pull request
|
||||
[\#1917](https://github.com/fossology/fossology/pull/1917)
|
||||
[#1917](https://github.com/fossology/fossology/pull/1917)
|
||||
- feat(CI): Migrate Static Checks and Analysis to GitHub Actions from
|
||||
Travis CI [\#1919](https://github.com/fossology/fossology/pull/1919)
|
||||
Travis CI [#1919](https://github.com/fossology/fossology/pull/1919)
|
||||
|
||||
## Future Development Plans
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: I am loving it! RedHat
|
||||
date: 2022-02-25 20:47
|
||||
category: development
|
||||
tags: kubernetes, redhat, docker, golang, tekton, openshift, intern
|
||||
tags: [kubernetes, redhat, docker, golang, tekton, openshift, intern]
|
||||
description: I made it to the Red Hat as a DevTools intern. This post is about onboarding and how I prepared myself for working on the actual project.
|
||||
---
|
||||
# My internship at Red Hat
|
||||
@@ -50,10 +50,10 @@ with their category.
|
||||
class="float-md-right rounded ml-3 float-md-right rounded ml-3"
|
||||
style="height:20em" alt="Gopher on the ladder" />
|
||||
|
||||
One of Golang’s biggest advantages is that it offers the clarity and
|
||||
ease of use that other languages lack. Golang’s advantages make it easy
|
||||
One of Golang's biggest advantages is that it offers the clarity and
|
||||
ease of use that other languages lack. Golang's advantages make it easy
|
||||
for new programmers to quickly understand the language and for seasoned
|
||||
veterans to easily read each other’s code.
|
||||
veterans to easily read each other's code.
|
||||
|
||||
- [Official Go Documentation](https://go.dev/doc/) - *Start from here*
|
||||
- [Go by Example](https://gobyexample.com/) - *bite-size examples for
|
||||
@@ -67,7 +67,7 @@ veterans to easily read each other’s code.
|
||||
ide*
|
||||
- [The Go Programming Language - Book](https://www.gopl.io/) *for
|
||||
learning advanced level golang*
|
||||
- [Golang Tutorial for Beginners \| Full Go Course - TechWorld with
|
||||
- [Golang Tutorial for Beginners | Full Go Course - TechWorld with
|
||||
Nana](https://youtu.be/yyUHQIec83I) *if you prefer video tutorials, I
|
||||
don't :)*
|
||||
|
||||
@@ -75,7 +75,7 @@ veterans to easily read each other’s code.
|
||||
|
||||
Docker takes away repetitive, mundane configuration tasks and is used
|
||||
throughout the development lifecycle for fast, easy, and portable
|
||||
application development - desktop and cloud. Docker’s comprehensive
|
||||
application development - desktop and cloud. Docker's comprehensive
|
||||
end-to-end platform includes UIs, CLIs, APIs, and security that are
|
||||
engineered to work together across the entire application delivery
|
||||
lifecycle.
|
||||
@@ -88,7 +88,7 @@ alt="The Docker Architecture" />
|
||||
Katacoda](https://www.katacoda.com/courses/docker) *interactive
|
||||
lessons on docker and containers*
|
||||
- [Docker for beginners](https://docker-curriculum.com/)
|
||||
- [Docker Tutorial for Beginners \| TechWorld with
|
||||
- [Docker Tutorial for Beginners | TechWorld with
|
||||
Nana](https://youtu.be/3c-iBn73dDE) *video tutorial*
|
||||
|
||||
### [Kubernetes](https://kubernetes.io/)
|
||||
@@ -97,7 +97,7 @@ alt="The Docker Architecture" />
|
||||
class="float-md-left border mr-3 float-md-left border mr-3" width="200"
|
||||
alt="Kubernetes tech" />
|
||||
|
||||
**Kubernetes** is the Greek word for a ship’s captain. We get the words
|
||||
**Kubernetes** is the Greek word for a ship's captain. We get the words
|
||||
Cybernetic and Gubernatorial from it. The Kubernetes project focuses on
|
||||
building a robust platform for running thousands of containers in
|
||||
production.
|
||||
|
||||
@@ -102,7 +102,7 @@ rules? Hell no! But this time, let us go step-by-step.
|
||||
resource. Let us define a CRD called `spacetime`. To do this you can write a
|
||||
YAML file like below.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
# file: spacetime-crd.yaml
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
@@ -148,7 +148,7 @@ The CRD that we defined above corresponds to the `CustomResource` given
|
||||
below. Once you apply the above file you will be able to see the
|
||||
`spacetime` custom resource on your Kubernetes/OpenShift cluster.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
# file: spacetime-cr.yaml
|
||||
apiVersion: spacetimes.example.com/v1alpha1
|
||||
kind: SpaceTime
|
||||
@@ -160,7 +160,7 @@ spec:
|
||||
|
||||
Apply them using the following commands:
|
||||
|
||||
``` bash
|
||||
```bash
|
||||
kubectl apply -f spacetime-crd.yaml
|
||||
kubectl apply -f spacetime-cr.yaml
|
||||
```
|
||||
@@ -172,14 +172,14 @@ kubectl apply -f spacetime-cr.yaml
|
||||
now you know. Create a package structure for a golang project and
|
||||
add the definition of the type as given below.
|
||||
|
||||
``` bash
|
||||
```bash
|
||||
mkdir -p pkg/api/spacetime/v1alpha1
|
||||
touch pkg/api/spacetime/v1alpha1/{spacetime_types,register,doc}.go pkg/api/spacetime/register.go
|
||||
```
|
||||
|
||||
Add the following content to the corresponding files.
|
||||
|
||||
``` go
|
||||
```go
|
||||
// file: /pkg/api/spacetime/v1alpha1/spacetime_types.go
|
||||
package v1alpha1
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
---
|
||||
title: How I implemented WakaTime embeddable Coding Graph GHA?
|
||||
date: 2021-02-02 21:47
|
||||
tags: wakatime, github-action, coding
|
||||
tags: [wakatime, github-action, coding]
|
||||
category: development
|
||||
description: if you use WakaTime to track your coding activity. You can add that to
|
||||
description: 'If you use WakaTime to track your coding activity. You can add that to
|
||||
your README as a bar graph or embed it in your blog/portfolio. Just add this
|
||||
action to any of your repositories and there you have it.
|
||||
action to any of your repositories and there you have it.'
|
||||
---
|
||||
|
||||
# How I implemented WakaTime embeddable Coding Graph GHA?
|
||||
|
||||
<a href="https://github.com/avinal/Profile-Readme-WakaTime"><img src="https://raw.githubusercontent.com/avinal/Profile-Readme-WakaTime/b281d074ee75f9626b39d10e2e518c6a297208a3/waka.png" class="img-fluid"></a>
|
||||

|
||||
|
||||
## Implementation Details
|
||||
|
||||
@@ -24,7 +24,7 @@ into technical details. Three parts are as below.
|
||||
- [Getting JSON data file via WakaTime
|
||||
API](https://github.com/avinal/Profile-Readme-WakaTime/blob/master/main.py#L52)
|
||||
|
||||
``` python
|
||||
```python
|
||||
def get_stats() -> list:
|
||||
...
|
||||
return data_list
|
||||
@@ -39,7 +39,7 @@ into technical details. Three parts are as below.
|
||||
- [Setting the
|
||||
Timeline](https://github.com/avinal/Profile-Readme-WakaTime/blob/master/main.py#L13)
|
||||
|
||||
``` python
|
||||
```python
|
||||
def this_week(dates: list) -> str:
|
||||
...
|
||||
return f"Coding Activity During: {week_start.strftime('%d %B, %Y')} to {week_end.strftime('%d %B, %Y')}"
|
||||
@@ -49,7 +49,7 @@ into technical details. Three parts are as below.
|
||||
to set the timeline. Because date in JSON is provided in UTC as below
|
||||
:
|
||||
|
||||
``` json
|
||||
```json
|
||||
date: "YYYY-MM-DDTHH:MM:SSZ"
|
||||
```
|
||||
|
||||
@@ -61,7 +61,7 @@ into technical details. Three parts are as below.
|
||||
- [Creating a bar
|
||||
graph](https://github.com/avinal/Profile-Readme-WakaTime/blob/master/main.py#L21)
|
||||
|
||||
``` python
|
||||
```python
|
||||
def make_graph(data: list):
|
||||
...
|
||||
savefig(...)
|
||||
@@ -87,7 +87,7 @@ into technical details. Three parts are as below.
|
||||
doesn't allow to commit without a username and email. So I used
|
||||
**github-actions** bot email.
|
||||
|
||||
``` bash
|
||||
```bash
|
||||
remote_repo-"https://${GITHUB_ACTOR}:${INPUT_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git config user.name "GitHub Actions"
|
||||
@@ -97,13 +97,12 @@ into technical details. Three parts are as below.
|
||||
where I found them 🙂.
|
||||
|
||||
Another problem was to separate repository name from combined
|
||||
*username/repository-name* provided by <span
|
||||
class="title-ref">\${GITHUB_REPOSITORY}</span>. GitHub doesn't
|
||||
*username/repository-name* provided by `${GITHUB_REPOSITORY}`. GitHub doesn't
|
||||
provides a direct way to get just the repo name. We used *Internal
|
||||
Field Separator*. It returns an array and works similar to `split()`
|
||||
command in Python and Java.
|
||||
|
||||
``` bash
|
||||
```bash
|
||||
# '/' is the seperator
|
||||
IFS-'/' read -ra reponame <<< "${GITHUB_REPOSITORY}"
|
||||
# returned {username, repository}
|
||||
@@ -130,7 +129,7 @@ into technical details. Three parts are as below.
|
||||
clubbed process. I did that by combining the python script run and shell
|
||||
script run.
|
||||
|
||||
``` dockerfile
|
||||
```dockerfile
|
||||
CMD python3 /main.py && /entrypoint.sh
|
||||
```
|
||||
|
||||
@@ -140,7 +139,7 @@ into technical details. Three parts are as below.
|
||||
## How to use this GitHub Actions?
|
||||
|
||||
1. First get your WakaTime API Key. You can get it from your
|
||||
\[WakaTime\](<https://wakatime.com>) account settings.
|
||||
[WakaTime](<https://wakatime.com>) account settings.
|
||||
|
||||
2. Save WakaTime API Key to Repository Secret. Find that by clicking
|
||||
the Settings tab. Keep the name of the secret as
|
||||
@@ -148,9 +147,9 @@ into technical details. Three parts are as below.
|
||||
|
||||
3. Add the following line in your README.md of your repo.
|
||||
|
||||
``` html
|
||||
<img src-"https://github.com/<username>/<repository-name>/blob/<branch-name>/images/stat.svg" alt-"Alternative Text"/>
|
||||
Example: <img src-"https://github.com/avinal/avinal/blob/main/images/stat.svg" alt-"Avinal WakaTime Activity"/>
|
||||
```html
|
||||
<img src="https://github.com/<username>/<repository-name>/blob/<branch-name>/images/stat.svg" alt="Alternative Text"/>
|
||||
Example: <img src="https://github.com/avinal/avinal/blob/main/images/stat.svg" alt="Avinal WakaTime Activity"/>
|
||||
```
|
||||
|
||||
> You can use this method to embed in web pages too. **Do not use the
|
||||
@@ -162,7 +161,7 @@ into technical details. Three parts are as below.
|
||||
5. Copy the following code into the opened file, you can search for
|
||||
**WakaTime Stat** in the marketplace tab for assistance.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
name: WakaTime status update
|
||||
|
||||
on:
|
||||
@@ -192,11 +191,11 @@ into technical details. Three parts are as below.
|
||||
|
||||
6. Please wait till 12 AM UTC to run this workflow automatically. Or
|
||||
you can force run it by going to the Actions tab. Or you can add the
|
||||
following lines under <span class="title-ref">on:</span> to run with
|
||||
following lines under `on:` to run with
|
||||
every push. Search for 12 AM UTC to find the equivalent time in your
|
||||
time zone.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
@@ -206,4 +205,4 @@ into technical details. Three parts are as below.
|
||||
|
||||
## My Coding Activity
|
||||
|
||||
<img class="img-fluid" src="https://raw.githubusercontent.com/avinal/avinal/main/images/stat.svg">
|
||||

|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
title: Move WSL 2 Safely to another Drive
|
||||
date: 2020-12-31 19:07
|
||||
tags: wsl, wsl2
|
||||
tags: [wsl, wsl2]
|
||||
category: development
|
||||
description: It is real pain when you have small SSD and Windows Subsystem for Linux
|
||||
description: 'It is real pain when you have small SSD and Windows Subsystem for Linux
|
||||
(WSL) is growing exponentially in size. There is no easy way to move the
|
||||
WSL installation to another drive. Here in this blog I will discuss how
|
||||
to tackle this problem with bite size steps.
|
||||
to tackle this problem with bite size steps.'
|
||||
---
|
||||
|
||||
# Move WSL 2 Safely to another Drive
|
||||
@@ -28,9 +28,9 @@ to tackle this problem with bite size steps.
|
||||
2. Check if the WSL 2 installation you are planning to move is is
|
||||
currently running/stopped.
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> wsl -l -v
|
||||
PS C:\Users\Avinal>
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> wsl -l -v
|
||||
PS C:\\Users\\Avinal>
|
||||
NAME STATE VERSION
|
||||
* Ubuntu Running 2
|
||||
Kali Stopped 2
|
||||
@@ -39,42 +39,42 @@ to tackle this problem with bite size steps.
|
||||
3. If its running then you must stop the particular WSL distribution.
|
||||
(*Ubuntu* used as example)
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> wsl -t Ubuntu
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> wsl -t Ubuntu
|
||||
```
|
||||
|
||||
4. Export to some folder. (Here exporting *Ubuntu* as *ubuntu-ex.tar*
|
||||
to *Z:wsl2*)
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> wsl --export Ubuntu "Z:\export\ubuntu-ex.tar"
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> wsl --export Ubuntu "Z:\\export\\ubuntu-ex.tar"
|
||||
```
|
||||
|
||||
5. Unregister previous WSL installation
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> wsl --unregister Ubuntu
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> wsl --unregister Ubuntu
|
||||
```
|
||||
|
||||
6. Create a new folder and import your WSL installation to that folder.
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> New-Item -Path "Z:\wsl2" -ItemType Directory
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> New-Item -Path "Z:\\wsl2" -ItemType Directory
|
||||
|
||||
Directory: Z:\
|
||||
Directory: Z:\\
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
d----- 31-12-2020 21:03 wsl2
|
||||
|
||||
PS C:\Users\Avinal> wsl --import Ubuntu "Z:\wsl2" "Z:\export\ubuntu-ex.tar"
|
||||
PS C:\\Users\\Avinal> wsl --import Ubuntu "Z:\\wsl2" "Z:\\export\\ubuntu-ex.tar"
|
||||
```
|
||||
|
||||
7. Check after import is complete
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> wsl -l -v
|
||||
PS C:\Users\Avinal>
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> wsl -l -v
|
||||
PS C:\\Users\\Avinal>
|
||||
NAME STATE VERSION
|
||||
* Ubuntu Running 2
|
||||
Kali Stopped 2
|
||||
@@ -82,16 +82,16 @@ PS C:\Users\Avinal>
|
||||
|
||||
8. Mark one of your WSL distribution as *(default)*.
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> wsl -s Ubuntu
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> wsl -s Ubuntu
|
||||
```
|
||||
|
||||
9. After exporting your default user will be set as
|
||||
<i style="color:red">root</i> , to change it to your desired
|
||||
username, run following command
|
||||
|
||||
``` powershell
|
||||
PS C:\Users\Avinal> ubuntu config --default-user user_name
|
||||
```powershell
|
||||
PS C:\\Users\\Avinal> ubuntu config --default-user user_name
|
||||
```
|
||||
|
||||
10. Finally run `wsl` and you have successfully moved your WSL 2
|
||||
|
||||
Reference in New Issue
Block a user